本頁面說明如何在 VPC Service Controls 中管理 service perimeter。如要進一步瞭解如何建立新的 service perimeter,請參閱「建立 service perimeter」。
本頁面包含下列章節:
事前準備
參閱「service perimeter 設定」。
-
或者
取得政策的名稱。如要使用
gcloud指令列工具和發出 API 呼叫,就必須提供政策名稱。如果設定預設存取權政策,就不需要為gcloud指令列工具指定政策。
列出並描述 service perimeter
列出組織內所有 service perimeter:
控制台
在 Google Cloud 控制台導覽選單中,依序按一下「Security」(安全性) 和「VPC Service Controls」。
在「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 中新增或移除 Google Cloud 專案。
- 變更受限 Google Cloud 服務清單。您也可以變更 service perimeter 的標題和說明。
- 啟用、新增、移除或停用可透過虛擬私有雲存取的服務。
- 更新輸入和輸出政策。
更新 service perimeter 後,最多可能需要 30 分鐘才會生效。在這段期間,perimeter 可能會封鎖要求,並顯示以下錯誤訊息:Error 403: Request is prohibited by organization's policy.
控制台
在 Google Cloud 控制台導覽選單中,依序按一下「Security」(安全性) 和「VPC Service Controls」。
在「VPC Service Controls」頁面的資料表中,按一下要修改的 service perimeter 名稱。
在「Service perimeter details」(service perimeter 詳細資料) 頁面中,按一下「Edit」(編輯)。
在「Edit service perimeter」(編輯 service perimeter) 頁面中,更新 service perimeter。
按一下「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.com或storage.googleapis.com,bigquery.googleapis.com。
為現有 perimeter 新增存取層級
建立存取層級後,可套用至 service perimeter 來控管存取權。
更新 service perimeter 後,最多可能需要 30 分鐘才會生效。在這段期間,perimeter 可能會封鎖要求,並顯示以下錯誤訊息:Error 403: Request is prohibited by organization's policy.
控制台
在 Google Cloud 控制台導覽選單中,依序按一下「Security」(安全性) 和「VPC Service Controls」。
在「VPC Service Controls」頁面的資料表中,按一下要修改的 service perimeter 名稱。
在「Service perimeter details」(service perimeter 詳細資料) 頁面中,按一下「Edit」(編輯)。
在「Edit service perimeter」(編輯 service perimeter) 頁面中,按一下「Access levels」(存取層級)。
按一下「Add access levels」(新增存取層級)。
在「Add access levels」(新增存取層級) 窗格中,找出要套用至 service perimeter 的存取層級,然後勾選對應的核取方塊。
按一下「Add selected access levels」(新增所選存取層級)。
按一下「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 專案和相關聯的資源不會有其他影響。
控制台
在 Google Cloud 控制台導覽選單中,依序按一下「Security」(安全性) 和「VPC Service Controls」。
在「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 物件,設定可透過虛擬私有雲存取的服務。