上り(内向き)ルールと下り(外向き)ルールでサポートされている ID

VPC Service Controls は、上り(内向き)ルールと下り(外向き)ルール を使用して、サービス境界内のリソースとクライアントへのアクセスを制御します。アクセスをさらに絞り込むには、上り(内向き)ルールと下り(外向き)ルールでサポートされている ID を指定します。

このページでは、VPC Service Controls でサポートされている ID とその識別子の形式について説明します。

サポートされている ID

VPC Service Controls は、許可ポリシーの プリンシパル ID から次の ID をサポートしています。これは IAM v1 API を使用します。

ID タイプ プリンシパル タイプ 識別子
単一のプリンシパル ユーザー アカウント user:USER_EMAIL_ADDRESS
サービス アカウント serviceAccount:SA_EMAIL_ADDRESS
ID グループとサードパーティ ID グループ group:GROUP_EMAIL_ADDRESS
Workforce Identity プール内の単一の ID principal://iam.googleapis.com/locations/global/workforcePools/POOL_ID/subject/SUBJECT_ATTRIBUTE_VALUE
グループ内のすべての Workforce ID principalSet://iam.googleapis.com/locations/global/workforcePools/POOL_ID/group/GROUP_ID
特定の属性値を持つすべての Workforce ID principalSet://iam.googleapis.com/locations/global/workforcePools/POOL_ID/attribute.ATTRIBUTE_NAME/ATTRIBUTE_VALUE
Workforce Identity プール内のすべての ID principalSet://iam.googleapis.com/locations/global/workforcePools/POOL_ID/*
Workload Identity プール内の単一の ID 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 プール内のすべての ID principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/attribute.ATTRIBUTE_NAME/ATTRIBUTE_VALUE
Workload Identity プール内のすべての ID principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/*
GKE 用 Workload Identity 連携
(プレビュー)
名前で Kubernetes サービス アカウントを使用するすべての GKE Pod principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/PROJECT_ID.svc.id.goog/subject/ns/NAMESPACE/sa/KUBERNETES_SERVICE_ACCOUNT
ID で Kubernetes サービス アカウントを使用するすべての GKE Pod principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/PROJECT_ID.svc.id.goog/kubernetes.serviceaccount.uid/SERVICEACCOUNT_ID
サービス アカウントやクラスタに関係なく、Kubernetes Namespace 内のすべての GKE Pod principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/PROJECT_ID.svc.id.goog/namespace/NAMESPACE
クラスタ内のすべての GKE Pod principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/PROJECT_ID.svc.id.goog/kubernetes.cluster/https://container.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/clusters/CLUSTER_NAME
エージェント ID エージェント ID principal://TRUST_DOMAIN/AGENT_UNIQUE_IDENTIFIER
特定の属性を持つ信頼ドメイン内のすべてのエージェント ID principalSet://TRUST_DOMAIN/attribute.ATTRIBUTE_NAME/ATTRIBUTE_VALUE
信頼ドメイン内のすべてのエージェント ID principalSet://TRUST_DOMAIN/*

これらの ID の詳細については、許可ポリシーの プリンシパル ID をご覧ください。

VPC Service Controls は、サードパーティの Workforce Identity と Workload Identity の次の SPIFFE 形式もサポートしています。

ID タイプ プリンシパル タイプ 識別子
SPIFFE 形式の Workforce Identity Workforce Identity プール内の単一の ID principal://POOL_ID.global.workforce.id.goog/SUBJECT_ATTRIBUTE_VALUE
特定の属性を持つ信頼ドメインとしての Workforce Identity プール内のすべての ID principalSet://POOL_ID.global.workforce.id.goog/attribute.ATTRIBUTE_NAME/ATTRIBUTE_VALUE
信頼ドメインとしての Workforce Identity プール内のすべての ID principalSet://POOL_ID.global.workforce.id.goog/*
SPIFFE 形式の Workload Identity Workload Identity プール内の単一の ID principal://POOL_ID.global.ORGANIZATION_ID.workload.id.goog/SUBJECT_ATTRIBUTE_VALUE
特定の属性を持つ信頼ドメインとしての Workload Identity プール内のすべての ID principalSet://POOL_ID.global.ORGANIZATION_ID.workload.id.goog/attribute.ATTRIBUTE_NAME/ATTRIBUTE_VALUE
信頼ドメインとしての Workload Identity プール内のすべての ID principalSet://POOL_ID.global.ORGANIZATION_ID.workload.id.goog/*

GKE 用 Workload Identity 連携に関する考慮事項

  • アクセス ポリシーごとに 1,000 個の GKE 用 Workload Identity 連携プリンシパルの上限が適用されます。詳細については、 割り当てと上限をご覧ください。
  • Workload Identity Federation for GKE プリンシパルは、 削除されたプリンシパルの構文をサポートしていません。
  • GKE 用 Workload Identity 連携プリンシパルは、 完全な IAM プリンシパル識別子形式(たとえば、 principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/PROJECT_ID.svc.id.goog/subject/ns/NAMESPACE/sa/KUBERNETES_SERVICE_ACCOUNT) または同等の SPIFFE 形式(たとえば、 principal://PROJECT_ID.svc.id.goog/ns/NAMESPACE/sa/KUBERNETES_SERVICE_ACCOUNT)を使用して指定できます。 SPIFFE 構文で作成されたルールを含むサービス境界を記述または取得すると、VPC Service Controls は SPIFFE 形式で ID を返します。

削除された IAM プリンシパル

削除されたアカウントを参照するサービス境界を管理できるように、VPC Service Controls では、削除された IAM プリンシパル ID のサポートを有効にできます。デフォルトでは、削除されたプリンシパルを含む境界を更新または一覧表示しようとすると、 The email address is invalid or non-existent エラーが発生します。詳細については、 一般的な問題のトラブルシューティングをご覧ください。

削除されたプリンシパルを含む境界を取得または更新するには、Access Context Manager API を使用します。get、list、patch などのメソッドのリクエストで、deletedPrincipalSyntax パラメータ(REST) または deleted_principal_syntax フィールド(gRPC)を DELETED_PRINCIPAL_SYNTAX_SUPPORT_ENABLED に設定します。

詳細については、REST または gRPC のリファレンス ページをご覧ください。

たとえば、次の curl コマンドを使用して境界を取得できます。

curl -X GET \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  "https://accesscontextmanager.googleapis.com/v1/accessPolicies/\
POLICY_NAME/servicePerimeters/PERIMETER_NAME?\
deletedPrincipalSyntax=DELETED_PRINCIPAL_SYNTAX_SUPPORT_ENABLED"

削除された 構文をサポートする IAM プリンシパル タイプのリストについては、 許可ポリシーのプリンシパル IDをご覧ください。

制限事項

VPC Service Controls 境界内の削除された IAM プリンシパルには、次の制限が適用されます。

  • VPC Service Controls は、IAM v1 API を使用する削除された IAM プリンシパルのみをサポートします。IAM v2 API または v3 API を使用する削除されたプリンシパルはサポートしていません。
  • アクセスレベルで削除された IAM プリンシパルはサポートされていません。
  • IAM で deleted: 接頭辞の構文をサポートしていないプリンシパルは、VPC Service Controls サービス境界ルールでもサポートされていません。
  • アクセス ポリシーで指定できる削除された ID は最大 500 個です。

次のステップ