在輸入和輸出規則中使用身分群組和第三方身分的範例

本頁面說明如何在輸入和輸出規則中使用身分群組和第三方身分

本頁面提供下列範例,說明如何在輸入和輸出規則中使用身分群組:

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

後續步驟