管理 service perimeter

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

本頁面包含下列章節:

事前準備

列出並描述 service perimeter

列出組織內所有 service perimeter:

控制台

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

    前往「VPC Service Controls」頁面

  2. 在「VPC Service Controls」頁面的資料表中,按一下要查看的 service perimeter 名稱。

gcloud

如要列出貴組織的 service perimeter,請使用 list 指令

gcloud access-context-manager perimeters list

您會看到貴組織的 perimeter 清單,例如:

NAME           TITLE                 ETAG
ProdPerimeter  Production Perimeter  abcdefg123456789

如要查看某個 service perimeter 的詳細資料,請使用 describe 指令

gcloud access-context-manager perimeters \
  describe PERIMETER_ID

更改下列內容:

  • PERIMETER_ID 是要取得詳細資料的 service perimeter 的 ID。

您會看到該 perimeter 的詳細資料,例如:

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

列出 service perimeter (指定格式)

使用 gcloud 指令列工具,即可取得 YAML 或 JSON 格式的 service perimeter 清單。

如要取得指定格式的 perimeter 清單,請使用 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"
  }
]

更新 service perimeter

本節說明如何更新個別 service perimeter。如要一次更新貴組織的所有 service perimeter,請參閱「大量變更 service perimeter」。

您可以執行下列工作來更新 service perimeter:

更新 service perimeter 後,最多可能需要 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」頁面的資料表中,按一下要修改的 service perimeter 名稱。

  3. 在「Service perimeter details」(service perimeter 詳細資料) 頁面中,按一下「Edit」(編輯)

  4. 在「Edit service perimeter」(編輯 service perimeter) 頁面中,更新 service perimeter。

  5. 按一下「Save」(儲存)

gcloud

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

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

更改下列內容:

  • PERIMETER_ID 是要取得詳細資料的 service perimeter 的 ID。

  • RESOURCES 是以半形逗號分隔的清單,包含一或多個專案編號或虛擬私有雲網路名稱,例如 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 是要取得詳細資料的 service perimeter 的 ID。

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

為現有 perimeter 新增存取層級

建立存取層級後,可套用至 service perimeter 來控管存取權。

更新 service perimeter 後,最多可能需要 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」頁面的資料表中,按一下要修改的 service perimeter 名稱。

  3. 在「Service perimeter details」(service perimeter 詳細資料) 頁面中,按一下「Edit」(編輯)

  4. 在「Edit service perimeter」(編輯 service perimeter) 頁面中,按一下「Access levels」(存取層級)

  5. 按一下「Add access levels」(新增存取層級)

  6. 在「Add access levels」(新增存取層級) 窗格中,找出要套用至 service perimeter 的存取層級,然後勾選對應的核取方塊。

  7. 按一下「Add selected access levels」(新增所選存取層級)

  8. 按一下「Save」(儲存)

gcloud

如要為現有 service perimeter 新增存取層級,請使用 update 指令

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

更改下列內容:

  • PERIMETER_ID 是 service perimeter 的 ID。

  • LEVEL_NAME 是要新增至 perimeter 的存取層級名稱。

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

刪除 service perimeter

刪除 service perimeter 後,相關聯的安全性控管設定就不會繼續套用至相關 Google Cloud專案,但對成員 Google Cloud 專案和相關聯的資源不會有其他影響。

控制台

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

    前往「VPC Service Controls」頁面

  2. 在「VPC Service Controls」頁面中,找出要刪除的 perimeter,然後在對應的資料表列中按一下

gcloud

如要刪除 service perimeter,請使用 delete 指令

gcloud access-context-manager perimeters delete PERIMETER_ID

更改下列內容:

  • PERIMETER_ID 是 service perimeter 的 ID。

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

本節說明如何啟用、新增、移除及停用可透過虛擬私有雲存取的服務。

您可以使用「可透過虛擬私有雲存取的服務」功能,限制可從 service perimeter 內部網路端點存取的服務集。 可透過虛擬私有雲存取的服務能新增至 service perimeter,但無法新增至 perimeter bridge。

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

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

如要為 service perimeter 啟用可透過虛擬私有雲存取的服務,請使用 update 指令

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

更改下列內容:

  • PERIMETER_ID 是 service perimeter 的 ID。

  • SERVICES 是以半形逗號分隔的清單,列出您希望允許 perimeter 內部網路存取的服務。 如果服務不在這份清單中,系統會禁止存取。

    如要快速納入受 perimeter 保護的服務,請將 RESTRICTED-SERVICES 新增至 SERVICES 的清單。除了 RESTRICTED-SERVICES 外,也可以加入其他服務。

例如,如要確保 perimeter 內的虛擬私有雲網路只能存取 Logging 和 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

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

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

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

更改下列內容:

  • PERIMETER_ID 是 service perimeter 的 ID。

  • SERVICES 是以半形逗號分隔的清單,列出您希望允許 perimeter 內部網路存取的服務。

    如要快速納入受 perimeter 保護的服務,請將 RESTRICTED-SERVICES 新增至 SERVICES 的清單。除了 RESTRICTED-SERVICES 外,也可以加入其他服務。

例如,如果啟用了可透過虛擬私有雲存取的服務,並想讓 perimeter 內的虛擬私有雲網路存取 Pub/Sub 服務,請使用下列指令:

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

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

如要移除 service perimeter 中可透過虛擬私有雲存取的服務,請使用 update 指令

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

更改下列內容:

  • PERIMETER_ID 是 service perimeter 的 ID。

  • SERVICES 是以半形逗號分隔的清單,列出您不希望 service perimeter 內部網路存取的服務

例如,如果啟用了可透過虛擬私有雲存取的服務,但不想再讓 perimeter 內的虛擬私有雲網路存取 Cloud Storage 服務,請使用下列指令:

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

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

如要停用 service perimeter 的虛擬私有雲服務限制,請使用 update 指令

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

更改下列內容:

  • PERIMETER_ID 是 service perimeter 的 ID。

例如,如要停用 example_perimeter 的虛擬私有雲服務限制,請使用下列指令:

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 管理可透過虛擬私有雲存取的服務。 建立或修改 service perimeter 時,請使用回應主體中的 ServicePerimeterConfig 物件,設定可透過虛擬私有雲存取的服務。