本頁面說明如何管理 service perimeter 的模擬測試設定。如果想大致瞭解如何管理 service perimeter,請參閱「管理 service perimeter」。
事前準備
強制執行模擬測試設定
如果對 service perimeter 模擬測試設定滿意,即可強制執行。強制執行模擬測試設定時,會取代 perimeter 目前的強制執行設定 (如有)。 如果沒有強制執行的 perimeter 版本,模擬測試設定會成為 perimeter 的初始強制執行設定。
更新 service perimeter 後,最多可能需要 30 分鐘才會生效。在這段期間,perimeter 可能會封鎖要求,並顯示以下錯誤訊息:Error 403: Request is prohibited by organization's policy.
控制台
在 Google Cloud 控制台導覽選單中,依序按一下「Security」(安全性) 和「VPC Service Controls」。
在「VPC Service Controls」頁面中,按一下「Dry run mode」(模擬測試模式)。
在 service perimeter 清單中,按一下要強制執行的 service perimeter 名稱。
在「Service perimeter details」(service perimeter 詳細資料) 頁面中,按一下「Enforce config」(強制執行設定)。
出現是否要覆寫現有強制執行設定的確認訊息時,請按一下「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.
控制台
在 Google Cloud 控制台導覽選單中,依序按一下「Security」(安全性) 和「VPC Service Controls」。
在「VPC Service Controls」頁面中,按一下「Dry run mode」(模擬測試模式)。
在 service perimeter 清單中,按一下要編輯的 service perimeter 名稱。
在「Service perimeter details」(service perimeter 詳細資料) 頁面中,按一下「Edit」(編輯)。
在「Edit service perimeter」(編輯 service perimeter) 頁面中,變更 service perimeter 的模擬測試設定。
按一下「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.com或storage.googleapis.com,bigquery.googleapis.com。POLICY_NAME 是貴組織的存取權政策名稱。 只有在未設定預設存取權政策時,才需要提供這個值。
找出遭封鎖的要求
建立模擬測試設定後,您可以查看記錄,瞭解在強制執行設定的情況下,模擬測試設定的哪些部分會拒絕存取服務。
控制台
在 Google Cloud 控制台導覽選單中,依序按一下「Logging」和「Logs Explorer」。
在「Query」(查詢) 欄位中輸入查詢篩選條件 (如下所示),然後按一下「Run query」(執行查詢)。
log_id("cloudaudit.googleapis.com/policy") AND severity="error" AND protoPayload.metadata.dryRun="true"在「Query results」(查詢結果) 下方查看記錄。
gcloud
如要使用 gcloud CLI 查看記錄,請執行類似下方所示的指令:
gcloud logging read 'log_id("cloudaudit.googleapis.com/policy") AND severity="error" AND protoPayload.metadata.dryRun="true"'