フィードバックを送信
Policy
コレクションでコンテンツを整理
必要に応じて、コンテンツの保存と分類を行います。
Identity and Access Management(IAM)ポリシー。Google Cloud リソースのアクセス制御を指定します。
Policy
は bindings
をまとめたものです。binding
は、1 つ以上の members
(プリンシパル)を 1 つの role
にバインドします。プリンシパルは、ユーザー アカウント、サービス アカウント、Google グループ、ドメイン(G Suite など)です。role
は権限のリストに名前を付けたものです。role
はそれぞれ、IAM 事前定義ロールまたはユーザー作成のカスタムロールにできます。
Google Cloud リソースの種類によっては、binding
は condition
を指定できます。これは、式が true
と評価された場合にのみリソースへのアクセスを許可する論理式です。条件は、リクエスト、リソース、またはその両方の属性に基づいて制約を追加できます。IAM ポリシーで条件をサポートするリソースについては、IAM のドキュメント をご覧ください。
JSON の例:
{
"bindings": [
{
"role": "roles/resourcemanager.organizationAdmin",
"members": [
"user:mike@example.com",
"group:admins@example.com",
"domain:google.com",
"serviceAccount:my-project-id@appspot.gserviceaccount.com"
]
},
{
"role": "roles/resourcemanager.organizationViewer",
"members": [
"user:eve@example.com"
],
"condition": {
"title": "expirable access",
"description": "Does not grant access after Sep 2020",
"expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')",
}
}
],
"etag": "BwWWja0YfJA=",
"version": 3
}
YAML の例:
bindings:
- members:
- user:mike@example.com
- group:admins@example.com
- domain:google.com
- serviceAccount:my-project-id@appspot.gserviceaccount.com
role: roles/resourcemanager.organizationAdmin
- members:
- user:eve@example.com
role: roles/resourcemanager.organizationViewer
condition:
title: expirable access
description: Does not grant access after Sep 2020
expression: request.time < timestamp('2020-10-01T00:00:00.000Z')
etag: BwWWja0YfJA=
version: 3
IAM とその機能についての説明は、IAM のドキュメント をご覧ください。
JSON 表現
{
"version" : integer ,
"bindings" : [
{
object (Binding
)
}
] ,
"etag" : string
}
フィールド
version
integer
ポリシーの形式を指定します。
有効な値は 0
、1
、3
です。無効な値を指定したリクエストは拒否されます。
条件付きロール バインディングに影響するオペレーションでは、バージョン 3
を指定する必要があります。この要件は、次のオペレーションに適用されます。
条件付きロール バインディングを含むポリシーの取得
条件付きロール バインディングのポリシーへの追加
ポリシーの条件付きロール バインディングの変更
条件の有無にかかわらず、すべてのロール バインディングを、条件を含むポリシーから削除する
重要: IAM Conditions を使用する場合、setIamPolicy
を呼び出すときは必ず etag
フィールドを含める必要があります。このフィールドを省略すると、IAM によってバージョン 3
ポリシーをバージョン 1
ポリシーで上書きできるようになり、バージョン 3
ポリシーの条件はすべて失われます。
ポリシーに条件が指定されていない場合、ポリシーに対する操作で有効なバージョンの指定、またはフィールド設定の解除ができます。
IAM ポリシーで条件をサポートするリソースについては、IAM のドキュメント をご覧ください。
bindings[]
object (Binding
)
members
のリストまたはプリンシパルを role
に関連付けます。必要に応じて、bindings
を適用する方法とタイミングを決定する condition
を指定できます。bindings
には、それぞれ少なくとも 1 つのプリンシパルを含める必要があります。
1 つの Policy
の bindings
では最大 1,500 個のプリンシパルを参照できます。これらのプリンシパルのうち、最大 250 個は Google グループにすることができます。1 つのプリンシパルのそれぞれのオカレンスが上限のカウント対象になります。たとえば、bindings
が 50 個の異なるロールを user:alice@example.com
に付与し、他のプリンシパルには付与しない場合、Policy
の bindings
には、さらに 1,450 個のプリンシパルを追加できます。
etag
string (bytes format)
etag
は、オプティミスティック同時実行制御でポリシーの同時更新による相互上書きを防ぐために使用されます。競合状態の発生を回避する目的で、システムのポリシー更新の読み込み・変更・書き込みサイクルでは etag
を活用することを強くおすすめします。getIamPolicy
へのレスポンスでは etag
が返されます。その etag を setIamPolicy
に対するリクエストに配置すれば、対応する変更が同じバージョンのポリシーに確実に適用されるようになります。
重要: IAM Conditions を使用する場合、setIamPolicy
を呼び出すときは必ず etag
フィールドを含める必要があります。このフィールドを省略すると、IAM によってバージョン 3
ポリシーをバージョン 1
ポリシーで上書きできるようになり、バージョン 3
ポリシーの条件はすべて失われます。
Base64 でエンコードされた文字列。
バインディング
members
(プリンシパル)を role
に関連付けます。
JSON 表現
{
"role" : string ,
"members" : [
string
] ,
"condition" : {
object (Expr
)
}
}
フィールド
role
string
members
またはプリンシパルのリストに割り当てられるロール。例: roles/viewer
、roles/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.com
や example.com
です。
principal://iam.googleapis.com/locations/global/workforcePools/{poolId}/subject/{subject_attribute_value}
: Workforce Identity プール内の単一の ID
principalSet://iam.googleapis.com/locations/global/workforcePools/{poolId}/group/{groupId}
: グループ内のすべての Workforce ID
principalSet://iam.googleapis.com/locations/global/workforcePools/{poolId}/attribute.{attributeName}/{attributeValue}
: 特定の属性値を持つすべての Workforce ID
principalSet://iam.googleapis.com/locations/global/workforcePools/{poolId}/*
: Workforce Identity プール内のすべての ID
principal://iam.googleapis.com/projects/{projectNumber}/locations/global/workloadIdentityPools/{poolId}/subject/{subject_attribute_value}
: Workload Identity プール内の単一の ID
principalSet://iam.googleapis.com/projects/{projectNumber}/locations/global/workloadIdentityPools/{poolId}/group/{groupId}
: Workload Identity プールのグループ。
principalSet://iam.googleapis.com/projects/{projectNumber}/locations/global/workloadIdentityPools/{poolId}/attribute.{attributeName}/{attributeValue}
: 特定の属性を持つ Workload Identity プール内のすべての ID
principalSet://iam.googleapis.com/projects/{projectNumber}/locations/global/workloadIdentityPools/{poolId}/*
: 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/{poolId}/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 のドキュメント をご覧ください。
フィードバックを送信
特に記載のない限り、このページのコンテンツはクリエイティブ・コモンズの表示 4.0 ライセンス により使用許諾されます。コードサンプルは Apache 2.0 ライセンス により使用許諾されます。詳しくは、Google Developers サイトのポリシー をご覧ください。Java は Oracle および関連会社の登録商標です。
最終更新日 2025-10-19 UTC。
ご意見をお聞かせください
[[["わかりやすい","easyToUnderstand","thumb-up"],["問題の解決に役立った","solvedMyProblem","thumb-up"],["その他","otherUp","thumb-up"]],[["わかりにくい","hardToUnderstand","thumb-down"],["情報またはサンプルコードが不正確","incorrectInformationOrSampleCode","thumb-down"],["必要な情報 / サンプルがない","missingTheInformationSamplesINeed","thumb-down"],["翻訳に関する問題","translationIssue","thumb-down"],["その他","otherDown","thumb-down"]],["最終更新日 2025-10-19 UTC。"],[],[]]