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

本頁說明如何在輸入和輸出規則中使用身分群組,允許存取受服務範圍保護的資源。

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

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

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

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

事前準備

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

控制台

使用 Google Cloud 控制台更新服務安全防護範圍的連入政策,或在建立安全防護範圍時設定連入政策時,您可以將連入規則設為使用身分群組。

  1. 在 Google Cloud 控制台中建立或編輯安全防護範圍時,請選取「Ingress policy」(連入政策)

  2. 在 Ingress 政策的「From」部分中,從「身分」清單選取「選取身分和群組」

  3. 按一下「新增身分」

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

  5. 按一下「新增身分」

  6. 按一下 [儲存]

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

gcloud

您可以使用 JSON 檔案或 YAML 檔案,設定要使用身分識別群組的 Ingress 規則。以下範例使用 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:指定要授予周邊資源存取權的 Google 群組或第三方身分。如要指定身分群組,請使用「支援的身分群組」中指定的格式。

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

更新現有 Ingress 規則以設定身分群組後,您需要更新服務範圍的規則政策:

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

更改下列內容:

  • PERIMETER_ID:要更新的服務範圍 ID。
  • RULE_POLICY:已修改的 Ingress 規則檔案路徑。

詳情請參閱更新服務安全防護範圍的輸入和輸出政策

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

控制台

使用 Google Cloud 控制台更新服務安全防護範圍的輸出政策,或在建立安全防護範圍時設定輸出政策時,您可以將輸出規則設為使用身分群組。

  1. 在 Google Cloud 控制台中建立或編輯安全防護範圍時,請選取「輸出政策」

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

  3. 按一下「新增身分」

  4. 在「新增身分」窗格中,指定可存取周邊範圍外特定資源的 Google 群組或第三方身分。如要指定身分群組,請使用「支援的身分群組」中指定的格式。

  5. 按一下「新增身分」

  6. 按一下 [儲存]

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

gcloud

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

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

更改下列內容:

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

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

更新現有輸出規則以設定身分群組後,您需要更新服務安全防護範圍的規則政策:

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

更改下列內容:

  • PERIMETER_ID:要更新的服務範圍 ID。
  • RULE_POLICY:修改後的輸出規則檔案路徑。

詳情請參閱更新服務安全防護範圍的輸入和輸出政策

支援的 ID 群組

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 集區群組 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 欄位設為 "*"
  • 如要瞭解輸入和輸出規則限制,請參閱「配額與限制」一文。

後續步驟