Binding

members(プリンシパル)を role に関連付けます。

JSON 表現
{
  "role": string,
  "members": [
    string
  ],
  "condition": {
    object (Expr)
  }
}
フィールド
role

string

members またはプリンシパルのリストに割り当てられるロール。例: roles/viewerroles/editor、または roles/owner

IAM ロールと権限の概要については、IAM のドキュメントをご覧ください。使用可能な事前定義ロールのリストについては、こちらをご覧ください。

members[]

string

Google Cloud リソースへのアクセスをリクエストするプリンシパルを指定します。members は次のいずれかの値を取ります。

  • allUsers: Google アカウントの有無を問わず、インターネット上のすべてのユーザーを表す特別な識別子。

  • allAuthenticatedUsers: Google アカウントまたはサービス アカウントで認証される任意のユーザーを表す特別な識別子。 ID 連携を介して外部 ID プロバイダ(IdP)から取得した ID は含まれません。

  • user:{emailid}: 特定の Google アカウントを表すメールアドレス。例: alice@example.com

  • serviceAccount:{emailid}: Google サービス アカウントを表すメールアドレス。例: my-other-app@appspot.gserviceaccount.com

  • serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]: Kubernetes サービス アカウントの ID。例: my-project.svc.id.goog[my-namespace/my-kubernetes-sa]

  • group:{emailid}: Google グループを表すメールアドレス。例: admins@example.com

  • domain:{domain}: G Suite ドメイン(プライマリ)。そのドメインのすべてのユーザーを表します。たとえば、google.comexample.com です。
  • principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}: Workforce Identity プール内の単一の ID

  • principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{groupId}: グループ内のすべての Workforce ID

  • principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}: 特定の属性値を持つすべての Workforce ID

  • principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*: Workforce Identity プール内のすべての ID

  • principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}: Workload Identity プール内の単一の ID

  • principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{groupId}: Workload Identity プールのグループ。

  • 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}/*: Workload Identity プール内のすべての ID

  • deleted:user:{emailid}?uid={uniqueid}: 最近削除されたユーザーを表すメールアドレスと一意の ID。例: alice@example.com?uid=123456789012345678901ユーザーが復元された場合、この値は user:{emailid} に戻り、復元されたユーザーはバインディングのロールを保持します。

  • deleted:serviceAccount:{emailid}?uid={uniqueid}: 最近削除されたサービス アカウントを表すメールアドレスと一意の ID。例: my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901サービス アカウントが削除されていない場合、この値は serviceAccount:{emailid} に戻り、削除されていないサービス アカウントはバインディングのロールを保持します。

  • deleted:group:{emailid}?uid={uniqueid}: 最近削除された Google グループを表すメールアドレスと一意の ID。例: admins@example.com?uid=123456789012345678901グループが復元された場合、この値は group:{emailid} に戻り、復元されたグループはバインディングのロールを保持します。

  • deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}: Workforce Identity プール内の削除された単一の ID。例: deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value

condition

object (Expr)

このバインディングに関連付けられている条件。

条件が true と評価された場合、このバインディングは現在のリクエストに適用されます。

条件が false と評価された場合、このバインディングは現在のリクエストに適用されません。ただし、別のロール バインディングによって、このバインディングの 1 つ以上のプリンシパルに同じロールが付与される場合があります。

IAM ポリシーで条件をサポートするリソースについては、IAM のドキュメントをご覧ください。

Expr

Common Expression Language(CEL)構文のテキスト式を表します。CEL は C に似た式言語です。CEL の構文とセマンティクスは、https://github.com/google/cel-spec に記載されています。

例(比較):

title: "Summary size limit"
description: "Determines if a summary is less than 100 chars"
expression: "document.summary.size() < 100"

例(同等):

title: "Requestor is owner"
description: "Determines if requestor is the document owner"
expression: "document.owner == request.auth.claims.email"

例(論理):

title: "Public documents"
description: "Determine whether the document should be publicly visible"
expression: "document.type != 'private' && document.type != 'internal'"

例(データ操作):

title: "Notification string"
description: "Create a notification string with a timestamp."
expression: "'New message received at ' + string(document.create_time)"

式内で参照できる正確な変数と関数は、式を評価するサービスによって決定されます。詳細については、サービスのドキュメントをご覧ください。

JSON 表現
{
  "expression": string,
  "title": string,
  "description": string,
  "location": string
}
フィールド
expression

string

Common Expression Language 構文による式のテキスト表現。

title

string

省略可。式のタイトル。式の目的を説明する短い文字列です。たとえば、式を入力できる UI でこれを使用します。

description

string

省略可。式の説明。式を説明する長いテキストです。たとえば、UI で式にカーソルを合わせたときに表示されます。

location

string

省略可。エラー報告用に式の場所を示す文字列。たとえば、ファイル名とファイル内の位置です。