管理模擬測試設定

本頁面說明如何管理 service perimeter 的模擬測試設定。如果想大致瞭解如何管理 service perimeter,請參閱「管理 service perimeter」。

事前準備

強制執行模擬測試設定

如果對 service perimeter 模擬測試設定滿意,即可強制執行。強制執行模擬測試設定時,會取代 perimeter 目前的強制執行設定 (如有)。 如果沒有強制執行的 perimeter 版本,模擬測試設定會成為 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」頁面中,按一下「Dry run mode」(模擬測試模式)

  3. 在 service perimeter 清單中,按一下要強制執行的 service perimeter 名稱。

  4. 在「Service perimeter details」(service perimeter 詳細資料) 頁面中,按一下「Enforce config」(強制執行設定)

  5. 出現是否要覆寫現有強制執行設定的確認訊息時,請按一下「Confirm」(確認)

gcloud

您可以使用 gcloud 指令列工具,對個別或同時對所有 perimeter 強制執行模擬測試設定。

強制執行單一模擬測試設定

如要對單一 perimeter 強制執行模擬測試設定,請使用 dry-run enforce 指令:

gcloud access-context-manager perimeters dry-run enforce PERIMETER_NAME \
  [--policy=POLICY_NAME]

其中:

  • PERIMETER_NAME 是要取得詳細資料的 service perimeter 名稱。

  • POLICY_NAME 是貴組織的存取權政策名稱。 只有在未設定預設存取權政策時,才需要提供這個值。

強制執行所有模擬測試設定

如要對所有 perimeter 強制執行模擬測試設定,請使用 dry-run enforce-all 指令:

gcloud access-context-manager perimeters dry-run enforce-all \
  [--etag=ETAG]
  [--policy=POLICY_NAME]

其中:

  • PERIMETER_NAME 是要取得詳細資料的 service perimeter 名稱。

  • ETAG 是代表貴組織存取權政策目標版本的字串。如未加入 ETag,enforce-all 作業會將貴組織最新版存取權政策當成目標。

    如要取得存取權政策的最新 ETag,請使用 list 指令列出存取權政策

  • POLICY_NAME 是貴組織的存取權政策名稱。 只有在未設定預設存取權政策時,才需要提供這個值。

API

如要對所有 perimeter 強制執行模擬測試設定,請呼叫 accessPolicies.servicePerimeters.commit

更新模擬測試設定

更新模擬測試設定時,可以修改列出的服務、專案和可透過虛擬私有雲存取的服務,以及 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」頁面中,按一下「Dry run mode」(模擬測試模式)

  3. 在 service perimeter 清單中,按一下要編輯的 service perimeter 名稱。

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

  5. 在「Edit service perimeter」(編輯 service perimeter) 頁面中,變更 service perimeter 的模擬測試設定。

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

gcloud

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

gcloud access-context-manager perimeters dry-run update PERIMETER_NAME \
  --add-resources=RESOURCES \
  [--policy=POLICY_NAME]

其中:

  • PERIMETER_NAME 是要取得詳細資料的 service perimeter 名稱。

  • 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>

  • POLICY_NAME 是貴組織的存取權政策名稱。 只有在未設定預設存取權政策時,才需要提供這個值。

如要更新受限服務清單,請使用 dry-run update 指令,並以半形逗號分隔清單指定要新增的服務:

gcloud access-context-manager perimeters dry-run update PERIMETER_ID \
  --add-restricted-services=SERVICES \
  [--policy=POLICY_NAME]

其中:

  • PERIMETER_NAME 是要取得詳細資料的 service perimeter 名稱。

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

  • POLICY_NAME 是貴組織的存取權政策名稱。 只有在未設定預設存取權政策時,才需要提供這個值。

找出遭封鎖的要求

建立模擬測試設定後,您可以查看記錄,瞭解在強制執行設定的情況下,模擬測試設定的哪些部分會拒絕存取服務。

控制台

  1. 在 Google Cloud 控制台導覽選單中,依序按一下「Logging」和「Logs Explorer」

    前往 Logs Explorer

  2. 在「Query」(查詢) 欄位中輸入查詢篩選條件 (如下所示),然後按一下「Run query」(執行查詢)

    log_id("cloudaudit.googleapis.com/policy") AND severity="error" AND protoPayload.metadata.dryRun="true"
    
  3. 在「Query results」(查詢結果) 下方查看記錄。

gcloud

如要使用 gcloud CLI 查看記錄,請執行類似下方所示的指令:

gcloud logging read 'log_id("cloudaudit.googleapis.com/policy") AND severity="error" AND protoPayload.metadata.dryRun="true"'