管理服務範圍

本頁面說明如何在 VPC Service Controls 中管理服務範圍。如要進一步瞭解如何建立新的服務範圍,請參閱「建立服務範圍」一文。

本頁面包含以下各節:

事前準備

列出服務範圍並取得服務範圍說明

如何列出機構中的所有服務範圍:

控制台

  1. 在 Google Cloud 控制台導覽選單中,依序點選「Security」(安全性) 和「VPC Service Controls」

    前往「VPC Service Controls」頁面

  2. 在「VPC Service Controls」頁面的資料表中,按一下您要查看的服務範圍名稱。

gcloud

如要列出貴機構的服務範圍,請使用 list 指令

gcloud access-context-manager perimeters list 

您會看到貴機構的服務範圍清單,例如:

 NAME           TITLE                 ETAG ProdPerimeter  Production Perimeter  abcdefg123456789 

如要查看某個服務範圍的詳細資料,請使用 describe 指令

gcloud access-context-manager perimeters \   describe PERIMETER_ID 

更改下列內容:

  • PERIMETER_ID 是您要取得詳細資料的服務範圍 ID。

您會看到該服務範圍的詳細資料,例如:

 etag: abcdefg123456789 name: accessPolicies/626111171578/servicePerimeters/ProdPerimeter status:   accessLevels:   - accessPolicies/626111171578/accessLevels/corpAccess   resources:   - projects/111584792408   restrictedServices:   - bigquery.googleapis.com   - storage.googleapis.com title: Production Perimeter 

列出服務範圍 (格式化)

您可以使用 gcloud 指令列工具,以 YAML 或 JSON 格式取得服務範圍清單。

如要取得格式化的範圍清單,請使用 list 指令

gcloud access-context-manager perimeters list \   --format=FORMAT

更改下列內容:

  • FORMAT 是下列其中一個值:

    • list (YAML 格式)

    • json (JSON 格式)

以下輸出內容為 YAML 格式的範例清單:

- etag: abcdefg123456789   name: accessPolicies/165717541651/servicePerimeters/On_Prem   status: {'resources': ['projects/167410821371'], 'restrictedServices': ['bigquery.googleapis.com', 'storage.googleapis.com']}   title: On Prem - etag: hijklmn987654321   name: accessPolicies/165717541651/servicePerimeters/Private   spec: {'resources': ['projects/136109111311'], 'restrictedServices': ['bigquery.googleapis.com', 'storage.googleapis.com', 'logging.googleapis.com']}   status: {'resources': ['projects/136109111311', 'projects/401921913171'], 'restrictedServices': ['bigquery.googleapis.com']}   title: Private   useExplicitDryRunSpec: True - etag: pqrstuv123456789   name: accessPolicies/165717541651/servicePerimeters/OnpremBridge   perimeterType: PERIMETER_TYPE_BRIDGE   status: {'resources': ['projects/167410821371']}   title: OnpremBridge

以下是 JSON 格式的清單範例:

[   {     "etag": "abcdefg123456789",     "name": "accessPolicies/165717541651/servicePerimeters/On_Prem",     "status": {       "resources": [         "projects/167410821371"       ],       "restrictedServices": [         "bigquery.googleapis.com",         "storage.googleapis.com"       ]     },     "title": "On Prem"   },   {     "etag": "hijklmn987654321",     "name": "accessPolicies/165717541651/servicePerimeters/Private",     "spec": {       "resources": [         "projects/136109111311"       ],       "restrictedServices": [         "bigquery.googleapis.com",         "storage.googleapis.com",         "logging.googleapis.com"       ]     },     "status": {       "resources": [         "projects/136109111311",         "projects/401921913171"       ],       "restrictedServices": [         "bigquery.googleapis.com"       ]     },     "title": "Private",     "useExplicitDryRunSpec": true   },   {     "etag": "pqrstuv123456789",     "name": "accessPolicies/165717541651/servicePerimeters/OnpremBridge",     "perimeterType": "PERIMETER_TYPE_BRIDGE",     "status": {       "resources": [         "projects/167410821371"       ]     },     "title": "OnpremBridge"   } ]

更新服務範圍

本節將說明如何更新個別服務範圍。如要在單一作業中更新貴機構的所有服務範圍,請參閱「對服務範圍進行大量變更」。

您可以執行下列工作來更新服務範圍:

更新服務範圍後,變更最多可能需要 30 分鐘才會生效。在此期間,Perimeter 可能會封鎖要求,並顯示以下錯誤訊息:Error 403: Request is prohibited by organization's policy.

控制台

  1. 在 Google Cloud 控制台導覽選單中,依序點選「Security」(安全性) 和「VPC Service Controls」

    前往「VPC Service Controls」頁面

  2. 在「VPC Service Controls」頁面的資料表中,按一下您要修改的服務範圍名稱。

  3. 在「服務範圍詳細資料」頁面中,按一下「編輯」

  4. 在「Edit service perimeter」頁面中,更新服務範圍。

  5. 按一下 [儲存]

gcloud

如要在範圍中新增資源,請使用 update 指令,並指定要新增的資源:

gcloud access-context-manager perimeters update PERIMETER_ID \   --add-resources=RESOURCES 

更改下列內容:

  • PERIMETER_ID 是您要取得詳細資料的服務範圍 ID。

  • RESOURCES 是以半形逗號分隔的清單,最多包含一或多個專案編號或 VPC 網路名稱。例如 projects/12345//compute.googleapis.com/projects/my-project/global/networks/vpc1。只能選取專案和虛擬私有雲網路。專案格式:projects/project_number。虛擬私有雲網路格式://compute.googleapis.com/projects/project-id/global/networks/network_name

如要更新受限制服務清單,請使用 update 指令,並指定要新增為逗號分隔清單的服務:

gcloud access-context-manager perimeters update PERIMETER_ID \   --add-restricted-services=SERVICES 

更改下列內容:

  • PERIMETER_ID 是您要取得詳細資料的服務範圍 ID。

  • SERVICES 是包含一或多項服務的逗號分隔清單,例如 storage.googleapis.comstorage.googleapis.com,bigquery.googleapis.com

為現有範圍新增存取層級

建立存取層級後,您可以將其套用到服務範圍來控管存取權。

更新服務範圍後,變更最多可能需要 30 分鐘才會生效。在此期間,Perimeter 可能會封鎖要求,並顯示以下錯誤訊息:Error 403: Request is prohibited by organization's policy.

控制台

  1. 在 Google Cloud 控制台導覽選單中,依序點選「Security」(安全性) 和「VPC Service Controls」

    前往「VPC Service Controls」頁面

  2. 在「VPC Service Controls」頁面的資料表中,按一下您要修改的服務範圍名稱。

  3. 在「服務範圍詳細資料」頁面中,按一下「編輯」

  4. 在「Edit service perimeter」頁面中,按一下「Access levels」

  5. 按一下「新增存取層級」

  6. 在「Add access levels」窗格中,找出您要套用到服務範圍的存取層級,然後勾選對應的核取方塊。

  7. 按一下「新增所選存取層級」

  8. 按一下 [儲存]

gcloud

如要為現有服務範圍新增存取層級,請使用 update 指令

gcloud access-context-manager perimeters update PERIMETER_ID \   --add-access-levels=LEVEL_NAME 

更改下列內容:

  • PERIMETER_ID 是服務範圍的 ID。

  • LEVEL_NAME 是指您要新增至該服務範圍的存取層級。

如要進一步瞭解如何搭配使用範圍和存取層級,請參閱「允許從範圍外存取受保護的資源」。

刪除服務範圍

刪除服務範圍後,與該範圍相關聯的安全性控管設定就不會再套用至關聯的 Google Cloud專案。不過,成員 Google Cloud 專案和相關聯的資源不會受到任何其他影響。

控制台

  1. 在 Google Cloud 控制台導覽選單中,依序點選「Security」(安全性) 和「VPC Service Controls」

    前往「VPC Service Controls」頁面

  2. 在「VPC Service Controls」頁面中,找出您要刪除的範圍,然後在相對應的列中按一下

gcloud

如要刪除服務範圍,請使用 delete 指令

gcloud access-context-manager perimeters delete PERIMETER_ID 

更改下列內容:

  • PERIMETER_ID 是服務範圍的 ID。

使用可透過虛擬私有雲存取的服務,限制範圍內服務的存取權

本節說明如何啟用、新增、移除及停用可存取 VPC 的服務。

您可以使用 VPC 可存取服務功能,限制服務範圍內網路端點可存取的服務組合。您可以將可存取 VPC 的服務新增至服務範圍,但無法新增至重疊範圍。

如要進一步瞭解可透過虛擬私有雲存取的服務功能,請參閱「可透過虛擬私有雲存取的服務」。

啟用可透過虛擬私有雲存取的服務

如要為服務範圍啟用可存取 VPC 的服務,請使用 update 指令

gcloud access-context-manager perimeters update PERIMETER_ID \   --enable-vpc-accessible-services \   --add-vpc-allowed-services=SERVICES 

更改下列內容:

  • PERIMETER_ID 是服務範圍的 ID。

  • SERVICES 是半形逗號分隔清單,其中包含一或多項您希望允許服務範圍的網路存取的服務。系統會禁止存取不在清單中的任何服務。

    如要快速加入受範圍保護的服務,請將 RESTRICTED-SERVICES 新增至 SERVICES 的清單中。除了 RESTRICTED-SERVICES 外,您還可以加入其他服務。

舉例來說,如要確保範圍內的 VPC 網路只能存取記錄和 Cloud Storage 服務,請使用下列指令:

gcloud access-context-manager perimeters update example_perimeter \   --enable-vpc-accessible-services \   --add-vpc-allowed-services=RESTRICTED-SERVICES,logging.googleapis.com,storage.googleapis.com \   --policy=11271009391 

將服務新增至可透過虛擬私有雲存取的服務

如要為範圍的可存取虛擬私有雲服務新增其他服務,請使用 update 指令

gcloud access-context-manager perimeters update PERIMETER_ID \   --add-vpc-allowed-services=SERVICES 

更改下列內容:

  • PERIMETER_ID 是服務範圍的 ID。

  • SERVICES 是半形逗號分隔清單,其中包含一或多項您希望允許內部網路存取的服務。

    如要快速加入受範圍保護的服務,請將 RESTRICTED-SERVICES 新增至 SERVICES 的清單中。除了 RESTRICTED-SERVICES 之外,您還可以加入其他服務。

舉例來說,如果您啟用可存取 VPC 的服務,並要求範圍內的 VPC 網路必須能存取 Pub/Sub 服務,請使用下列指令:

gcloud access-context-manager perimeters update example_perimeter \   --add-vpc-allowed-services=RESTRICTED-SERVICES,pubsub.googleapis.com \   --policy=11271009391 

從可透過虛擬私有雲存取的服務中移除服務

如要從服務範圍的 VPC 可存取服務中移除服務,請使用 update 指令

gcloud access-context-manager perimeters update PERIMETER_ID \   --remove-vpc-allowed-services=SERVICES 

更改下列內容:

  • PERIMETER_ID 是服務範圍的 ID。

  • SERVICES 是半形逗號分隔清單,列出您要從服務範圍網路允許存取的服務清單中移除的一或多項服務。

舉例來說,如果您啟用可存取 VPC 的服務,但不再希望範圍內的 VPC 網路能存取 Cloud Storage 服務,請使用下列指令:

gcloud access-context-manager perimeters update example_perimeter \   --remove-vpc-allowed-services=storage.googleapis.com \   --policy=11271009391 

停用可透過虛擬私有雲存取的服務

如要為服務範圍停用 VPC 服務限制,請使用 update 指令

gcloud access-context-manager perimeters update PERIMETER_ID \   --no-enable-vpc-accessible-services \   --clear-vpc-allowed-services 

更改下列內容:

  • PERIMETER_ID 是服務範圍的 ID。

舉例來說,如要停用 example_perimeter 的 VPC 服務限制,請使用以下指令:

gcloud access-context-manager perimeters update example_perimeter \   --no-enable-vpc-accessible-services \   --clear-vpc-allowed-services \   --policy=11271009391 

可透過虛擬私有雲存取的服務和 Access Context Manager API

您也可以使用 Access Context Manager API 管理可存取 VPC 的服務。建立或修改服務範圍時,請使用回應主體中的 ServicePerimeterConfig 物件,設定可透過 VPC 存取的服務。