本頁面說明如何在輸入和輸出規則中使用身分群組和第三方身分。
本頁面提供下列範例,說明如何在輸入和輸出規則中使用身分群組:
- 允許 Cloud Run 透過網際網路存取身分群組的成員,以及允許已加入許可清單 IP 位址範圍的特定服務帳戶存取。
允許 Cloud Run 存取身分群組的成員和特定服務帳戶
下圖顯示特定身分群組的使用者,以及已加入許可清單 IP 位址範圍的使用者,如何存取 service perimeter 內部的 Cloud Run:
假設您已定義下列 service perimeter:
name: accessPolicies/222/servicePerimeters/Example
status:
resources:
- projects/111
restrictedServices:
- run.googleapis.com
- artifactregistry.googleapis.com
vpcAccessibleServices:
enableRestriction: true
allowedServices:
- RESTRICTED_SERVICES
title: Example
如要查看貴組織現有 service perimeter 的詳細資料,請使用 gcloud CLI 指令說明 service perimeter。
在本範例中,我們也假設您已定義下列資源:
- 名為
allowed-users@example.com的身分識別群組,其中包含您想在 perimeter 內授予 Cloud Run 存取權的使用者。 - 與 service perimeter 位於相同存取權政策中的存取層級,稱為「
CorpDatacenters」。CorpDatacenters包含公司資料中心的已加入許可清單 IP 位址範圍,服務帳戶的要求可來自該範圍。
下列輸入政策 ingress.yaml 允許 Cloud Run 存取特定使用者帳戶 (屬於 allowed-users@example.com 群組) 和特定服務帳戶,但僅限於已加入許可清單 IP 位址範圍:
- ingressFrom:
identities:
- serviceAccount:my-sa@my-project.s3ns.iam.gserviceaccount.com
sources:
- accessLevel: accessPolicies/222/accessLevels/CorpDatacenters
ingressTo:
operations:
- serviceName: run.googleapis.com
methodSelectors:
- method: "*"
resources:
- "*"
- ingressFrom:
identities:
- group:allowed-users@example.com
sources:
- accessLevel: "*"
ingressTo:
operations:
- serviceName: run.googleapis.com
methodSelectors:
- method: "*"
resources:
- "*"
如要套用輸入規則,請執行下列指令:
gcloud access-context-manager perimeters update Example --set-ingress-policies=ingress.yaml