這個頁面說明如何在輸入和輸出規則中使用身分群組,允許存取受 service perimeter 保護的資源。
VPC Service Controls 會使用輸入和輸出規則,允許存取受 service perimeter 保護的資源和用戶端,以及從這些資源和用戶端存取資料。如要進一步調整存取權,您可以在輸入和輸出規則中指定身分群組。
身分群組可讓您輕鬆為一群使用者套用存取控管,並管理具有類似存取權政策的身分。
如要在輸入或輸出規則中設定身分群組,您可以在 identities 屬性中使用下列支援的身分群組:
- Google 群組
第三方身分,例如員工身分集區使用者和 Workload Identity
VPC Service Controls 不支援 Workload Identity Federation for GKE
想瞭解如何套用輸入和輸出規則政策,請參閱「設定輸入和輸出政策」一文。
事前準備
- 請務必詳閱「輸入和輸出規則」一文。
在輸入規則中設定身分群組
控制台
使用 Google Cloud 控制台更新 service perimeter 的輸入政策,或在建立 perimeter 期間設定輸入政策時,您可以將輸入規則設為使用身分群組。
在 Google Cloud 控制台中建立或編輯 perimeter 時,選取「Ingress policy」(輸入政策)。
在輸入政策的「From」(來源) 部分中,從「Identities」(身分) 清單選取「Select identities & groups」(選取身分和群組)。
按一下「Add identities」(新增身分)。
在「Add identities」(新增身分) 窗格中,指定要授予 perimeter 資源存取權的 Google 群組或第三方身分。如要指定身分群組,請使用「支援的身分群組」一節中指定的格式。
按一下「Add identities」(新增身分)。
按一下「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 期間設定輸出政策時,您可以將輸出規則設為使用身分群組。
在 Google Cloud 控制台中建立或編輯 perimeter 時,請選取「Egress policy」(輸出政策)。
在輸出政策的「From」(來源) 部分,從「Identities」(身分) 清單中選取「Select identities & groups」(選取身分和群組)。
按一下「Add identities」(新增身分)。
在「Add identities」(新增身分) 窗格中,指定可存取 perimeter 外部特定資源的 Google 群組或第三方身分。如要指定身分群組,請使用「支援的身分群組」一節中指定的格式。
按一下「Add identities」(新增身分)。
按一下「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身分類型,請參閱「輸入和輸出規則」一文。 - 如要瞭解輸入和輸出規則限制,請參閱「配額與限制」一文。