在輸入和輸出規則中設定身分群組及第三方身分

這個頁面說明如何在輸入和輸出規則中使用身分群組,允許存取受 service perimeter 保護的資源。

VPC Service Controls 會使用輸入和輸出規則,允許存取受 service perimeter 保護的資源和用戶端,以及從這些資源和用戶端存取資料。如要進一步調整存取權,您可以在輸入和輸出規則中指定身分群組。

身分群組可讓您輕鬆為一群使用者套用存取控管,並管理具有類似存取權政策的身分。

如要在輸入或輸出規則中設定身分群組,您可以在 identities 屬性中使用下列支援的身分群組:

想瞭解如何套用輸入和輸出規則政策,請參閱「設定輸入和輸出政策」一文。

事前準備

在輸入規則中設定身分群組

控制台

使用 Google Cloud 控制台更新 service perimeter 的輸入政策,或在建立 perimeter 期間設定輸入政策時,您可以將輸入規則設為使用身分群組。

  1. 在 Google Cloud 控制台中建立或編輯 perimeter 時,選取「Ingress policy」(輸入政策)

  2. 在輸入政策的「From」(來源) 部分中,從「Identities」(身分) 清單選取「Select identities & groups」(選取身分和群組)

  3. 按一下「Add identities」(新增身分)

  4. 在「Add identities」(新增身分) 窗格中,指定要授予 perimeter 資源存取權的 Google 群組或第三方身分。如要指定身分群組,請使用「支援的身分群組」一節中指定的格式。

  5. 按一下「Add identities」(新增身分)

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

如要瞭解其他輸入規則屬性,請參閱「輸入規則參考資料」一節。

gcloud

您可以使用 JSON 檔案或 YAML 檔案,設定使用身分識別群組的輸入規則。以下範例使用 YAML 格式:

- ingressFrom:
    identities:
    - PRINCIPAL_IDENTIFIER
    sources:
    - resource: RESOURCE
      *OR*
    - accessLevel: ACCESS_LEVEL
  ingressTo:
    operations:
    - serviceName: SERVICE_NAME
      methodSelectors:
      - method: METHOD_NAME
    resources:
    - projects/PROJECT_NUMBER

更改下列內容:

  • PRINCIPAL_IDENTIFIER:指定要授予 perimeter 資源存取權的 Google 群組或第三方身分。如要指定身分群組,請使用「支援的身分群組」一節中指定的格式。

如要瞭解其他輸入規則屬性,請參閱「輸入規則參考資料」一節。

更新現有輸入規則來設定身分群組後,您需要更新 service perimeter 的規則政策:

gcloud access-context-manager perimeters update PERIMETER_ID --set-ingress-policies=RULE_POLICY.yaml

更改下列內容:

  • PERIMETER_ID:要更新的 service perimeter ID。
  • RULE_POLICY:已修改的輸入規則檔案路徑。

詳情請參閱「更新 service perimeter 的輸入和輸出政策」一節。

在輸出規則中設定身分群組

控制台

使用 Google Cloud 控制台更新 service perimeter 的輸出政策,或在建立 perimeter 期間設定輸出政策時,您可以將輸出規則設為使用身分群組。

  1. 在 Google Cloud 控制台中建立或編輯 perimeter 時,請選取「Egress policy」(輸出政策)

  2. 在輸出政策的「From」(來源) 部分,從「Identities」(身分) 清單中選取「Select identities & groups」(選取身分和群組)

  3. 按一下「Add identities」(新增身分)

  4. 在「Add identities」(新增身分) 窗格中,指定可存取 perimeter 外部特定資源的 Google 群組或第三方身分。如要指定身分群組,請使用「支援的身分群組」一節中指定的格式。

  5. 按一下「Add identities」(新增身分)

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

如要瞭解其他輸出規則屬性,請參閱「輸出規則參考資料」一節。

gcloud

您可以使用 JSON 檔案或 YAML 檔案,設定使用身分群組的輸出規則。以下範例使用 YAML 格式:

- egressTo:
    operations:
    - serviceName: SERVICE_NAME
      methodSelectors:
      - method: METHOD_NAME
    resources:
    - projects/PROJECT_NUMBER
  egressFrom:
    identities:
    - PRINCIPAL_IDENTIFIER

更改下列內容:

  • PRINCIPAL_IDENTIFIER:指定可存取 perimeter 外部特定資源的 Google 群組或第三方身分。如要指定身分群組,請使用「支援的身分群組」一節中指定的格式。

如要瞭解其他輸出規則屬性,請參閱「輸出規則參考資料」一節。

更新現有輸出規則來設定身分群組後,您需要更新 service perimeter 的規則政策:

gcloud access-context-manager perimeters update PERIMETER_ID --set-egress-policies=RULE_POLICY.yaml

更改下列內容:

  • PERIMETER_ID:要更新的 service perimeter ID。
  • RULE_POLICY:已修改的輸出規則檔案路徑。

詳情請參閱「更新 service perimeter 的輸入和輸出政策」一節。

支援的身分群組

VPC Service Controls 支援下列身分群組 (來自 IAM v1 API 主體 ID):

主體類型 ID
群組 group:GROUP_EMAIL_ADDRESS
工作團隊身分集區中的單一身分 principal://iam.googleapis.com/locations/global/workforcePools/POOL_ID/subject/SUBJECT_ATTRIBUTE_VALUE
群組中的所有員工身分 principalSet://iam.googleapis.com/locations/global/workforcePools/POOL_ID/group/GROUP_ID
具有特定屬性值的所有員工身分 principalSet://iam.googleapis.com/locations/global/workforcePools/POOL_ID/attribute.ATTRIBUTE_NAME/ATTRIBUTE_VALUE
員工身分集區中的所有身分 principalSet://iam.googleapis.com/locations/global/workforcePools/POOL_ID/*
workload identity pool 中的單一身分 principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/SUBJECT_ATTRIBUTE_VALUE
workload identity pool 群組 principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/group/GROUP_ID
具有特定屬性的 workload identity pool 中的所有身分 principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/attribute.ATTRIBUTE_NAME/ATTRIBUTE_VALUE
特定 workload identity pool 中的所有身分 principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/*

如要進一步瞭解這些身分,請參閱「允許政策的主體 ID」一節。

限制

  • 使用身分群組前,請先瞭解輸入和輸出規則不支援的功能
  • 在輸出規則中使用身分群組時,您無法將 egressTo 屬性中的 resources 欄位設為 "*"
  • 您無法在輸入和輸出規則中使用 Workload Identity,允許 Cloud Composer 中的 Apache Airflow 網頁介面作業。不過,您可以在輸入和輸出規則中使用 ANY_IDENTITY 身分類型,允許存取所有身分,包括 Workload Identity。如要進一步瞭解 ANY_IDENTITY 身分類型,請參閱「輸入和輸出規則」一文。
  • 如要瞭解輸入和輸出規則限制,請參閱「配額與限制」一文。

後續步驟