承認が必要
指定されたリソースでアクセス制御ポリシーを設定します。
既存のポリシーがあれば、置き換えられます。
リクエスト
HTTP リクエスト
POST https://www.googleapis.com/deploymentmanager/v2/projects/project/global/deployments/resource/setIamPolicy
パラメータ
パラメータ名 | 値 | 説明 |
---|---|---|
パスパラメータ | ||
project |
string |
このリクエストのプロジェクト ID。 |
resource |
string |
このリクエストのリソースの名前。 |
承認
このリクエストには、次の 1 つ以上のスコープの承認が必要です(認証と承認についてはこちらをご覧ください)。
スコープ |
---|
https://www.googleapis.com/auth/cloud-platform |
https://www.googleapis.com/auth/ndev.cloudman |
リクエストの本文
リクエストの本文には、以下の構造を使用してデータを指定してください:
{ "version": integer, "bindings": [ { "role": string, "members": [ string ] } ], "auditConfigs": [ { "service": string, "exemptedMembers": [ string ], "auditLogConfigs": [ { "logType": string, "exemptedMembers": [ string ] } ] } ], "rules": [ { "description": string, "permissions": [ string ], "action": string, "ins": [ string ], "notIns": [ string ], "conditions": [ { "iam": string, "sys": string, "svc": string, "op": string, "value": string, "values": [ string ] } ], "logConfigs": [ { "counter": { "metric": string, "field": string } } ] } ], "etag": bytes, "iamOwned": boolean }
プロパティ名 | 値 | 説明 | 注 |
---|---|---|---|
version |
integer |
ポリシーのバージョン。デフォルトのバージョンは 0 です。 |
|
bindings[] |
list |
`members` のリストを `role` に関連付けます。 同じ `role` に複数の `bindings` を指定することはできません。メンバーがない `bindings` はエラーとなります。 | |
bindings[].role |
string |
`members` に割り当てられたロール。例: `roles/viewer`、`roles/editor`、または `roles/owner`。 | |
bindings[].members[] |
list |
Cloud Platform リソースにアクセスをリクエストする識別子を指定します。`members` には次の値を指定できます。 * `allUsers`: Google アカウントの有無を問わず、インターネット上の全員を表す特殊な識別子。 * `allAuthenticatedUsers`: Google アカウントまたはサービス アカウントで認証されたユーザー全員を表す特殊な識別子。 * `user:{emailid}`: 特定の Google アカウントを表すメールアドレス。例: `alice@gmail.com` または `joe@example.com`。 * `serviceAccount:{emailid}`: サービス アカウントを表すメールアドレス。例, `my-other-app@appspot.gserviceaccount.com`。 * `group:{emailid}`: Google グループを表すメールアドレス。例: `admins@example.com`。 * `domain:{domain}`: Google Apps ドメイン名。そのドメインのすべてのユーザーを表します。例: `google.com` または`example.com`。 |
|
auditConfigs[] |
list |
「データアクセス」に関する監査ログの設定を指定します。「データアクセス」とは、一般に、データの読み取り / 書き込みと管理読み取りを指します。「管理アクティビティ」とは、一般に、管理書き込みを指します。 注: `AuditConfig` は「管理アクティビティ」には適用されません。「管理アクティビティ」では常に監査ログが有効にされます。 |
|
auditConfigs[].service |
string |
監査ログに対して有効になるサービスを指定します。たとえば、`resourcemanager`、`storage`、`compute`、`allServices` は、すべてのサービスを網羅する特殊値です。 | |
auditConfigs[].exemptedMembers[] |
list |
上記の `service` に指定した「データアクセス」監査ログの適用が除外される識別子を指定します。Binding.members の同じ形式に従ってください。 | |
auditConfigs[].auditLogConfigs[] |
list |
ログのタイプごとの設定 | |
auditConfigs[].auditLogConfigs[].logType |
string |
この設定で有効になるログタイプ。 | |
auditConfigs[].auditLogConfigs[].exemptedMembers[] |
list |
このタイプのログから除外される ID を指定します。Binding.members の同じ形式に従ってください。 | |
rules[] |
list |
複数のルールを指定した場合、次のように適用されます。- 一致するすべての LOG ルールは常に適用されます。- いずれかの DENY/DENY_WITH_LOG ルールが一致する場合は、権限が拒否されます。1 つ以上の一致ルールでログが必要な場合は、ログが適用されます。- それ以外の場合、ALLOW/ALLOW_WITH_LOG ルールのいずれかが一致すれば、権限が付与されます。ログが適用されるのは、1 つ以上の一致するルールがログを必要としている場合です。- そうでなくても、適用されるルールがなければ、権限は拒否されます。 | |
rules[].description |
string |
人が読める形式のルールの説明。 | |
rules[].permissions[] |
list |
権限は ' |
|
rules[].action |
string |
必須 | |
rules[].ins[] |
list |
1 つ以上の 'in' 句が指定され、そのエントリの 1 つ以上に PRINCIPAL/AUTHORITY_SELECTOR がある場合、ルールが一致します。 | |
rules[].notIns[] |
list |
1 つ以上の 'not_in' 句が指定され、そのエントリのいずれにも PRINCIPAL/AUTHORITY_SELECTOR がない場合、ルールが一致します。 | |
rules[].conditions[] |
list |
満たされる必要がある追加の制限。 | |
rules[].conditions[].iam |
string |
IAM システムにより提供される信頼できる属性。 | |
rules[].conditions[].sys |
string |
リソースを所有し、アクセス制御に IAM システムを使用しているサービスにより提供される信頼できる属性。 | |
rules[].conditions[].svc |
string |
サービスにより提供される信頼できる属性。 | |
rules[].conditions[].op |
string |
対象に適用する演算子。 | |
rules[].conditions[].value |
string |
非推奨。代わりに 'values' を使用してください。 | |
rules[].conditions[].values[] |
list |
条件のオブジェクト。これは、'value' と相互に排他的です。 | |
rules[].logConfigs[] |
list |
LOG アクションに一致する任意のエントリの tech.iam.IAM.CheckPolicy の呼び出し元に返される設定。 | |
rules[].logConfigs[].counter |
nested object |
カウンタ オプション。 | |
rules[].logConfigs[].counter.metric |
string |
更新する指標。 | |
rules[].logConfigs[].counter.field |
string |
該当するフィールド値。 | |
etag |
bytes |
`etag` は、オプティミスティック同時実行制御でポリシーの同時更新による相互上書きを防ぐために使用されます。競合状態の発生を回避するため、システムのポリシー更新の読み込み・変更・書き込みサイクルで `etag` を活用することを強くお勧めします。`etag` は `getIamPolicy` へのレスポンスで返されます。その etag を `setIamPolicy` に対するリクエストに設定すれば、対応する変更が同じバージョンのポリシーに確実に適用されるようになります。 `setIamPolicy` の呼び出しで `etag` を指定しないと、既存のポリシーに変更がそのまま上書きされます。 |
|
iamOwned |
boolean |
レスポンス
成功すると、このメソッドによって次の構造を含むレスポンスの本文が返されます。
{ "version": integer, "bindings": [ { "role": string, "members": [ string ] } ], "auditConfigs": [ { "service": string, "exemptedMembers": [ string ], "auditLogConfigs": [ { "logType": string, "exemptedMembers": [ string ] } ] } ], "rules": [ { "description": string, "permissions": [ string ], "action": string, "ins": [ string ], "notIns": [ string ], "conditions": [ { "iam": string, "sys": string, "svc": string, "op": string, "value": string, "values": [ string ] } ], "logConfigs": [ { "counter": { "metric": string, "field": string } } ] } ], "etag": bytes, "iamOwned": boolean }
プロパティ名 | 値 | 説明 | 注 |
---|---|---|---|
version |
integer |
ポリシーのバージョン。デフォルトのバージョンは 0 です。 |
|
bindings[] |
list |
`members` のリストを `role` に関連付けます。 同じ `role` に複数の `bindings` を指定することはできません。メンバーがない `bindings` はエラーとなります。 | |
bindings[].role |
string |
`members` に割り当てられたロール。例: `roles/viewer`、`roles/editor`、または `roles/owner`。 | |
bindings[].members[] |
list |
Cloud Platform リソースにアクセスをリクエストする識別子を指定します。`members` には次の値を指定できます。 * `allUsers`: Google アカウントの有無を問わず、インターネット上の全員を表す特殊な識別子。 * `allAuthenticatedUsers`: Google アカウントまたはサービス アカウントで認証されたユーザー全員を表す特殊な識別子。 * `user:{emailid}`: 特定の Google アカウントを表すメールアドレス。例: `alice@gmail.com` または `joe@example.com`。 * `serviceAccount:{emailid}`: サービス アカウントを表すメールアドレス。例, `my-other-app@appspot.gserviceaccount.com`。 * `group:{emailid}`: Google グループを表すメールアドレス。例: `admins@example.com`。 * `domain:{domain}`: Google Apps ドメイン名。そのドメインのすべてのユーザーを表します。例: `google.com` または`example.com`。 |
|
auditConfigs[] |
list |
「データアクセス」に関する監査ログの設定を指定します。「データアクセス」とは、一般に、データの読み取り / 書き込みと管理読み取りを指します。「管理アクティビティ」とは、一般に、管理書き込みを指します。 注: `AuditConfig` は「管理アクティビティ」には適用されません。「管理アクティビティ」では常に監査ログが有効にされます。 |
|
auditConfigs[].service |
string |
監査ログに対して有効になるサービスを指定します。たとえば、`resourcemanager`、`storage`、`compute`、`allServices` は、すべてのサービスを網羅する特殊値です。 | |
auditConfigs[].exemptedMembers[] |
list |
上記の `service` に指定した「データアクセス」監査ログの適用が除外される識別子を指定します。形式は Binding.members と同じです。 | |
auditConfigs[].auditLogConfigs[] |
list |
ログのタイプごとの設定 | |
auditConfigs[].auditLogConfigs[].logType |
string |
この設定で有効になるログタイプ。 | |
auditConfigs[].auditLogConfigs[].exemptedMembers[] |
list |
このタイプのログから除外される ID を指定します。Binding.members の同じ形式に従ってください。 | |
rules[] |
list |
複数のルールを指定した場合、次のように適用されます。- 一致するすべての LOG ルールは常に適用されます。- いずれかの DENY/DENY_WITH_LOG ルールが一致する場合は、権限が拒否されます。1 つ以上の一致ルールでログが必要な場合は、ログが適用されます。- それ以外の場合、ALLOW/ALLOW_WITH_LOG ルールのいずれかが一致すれば、権限が付与されます。ログが適用されるのは、1 つ以上の一致するルールがログを必要としている場合です。- そうでなくても、適用されるルールがなければ、権限は拒否されます。 | |
rules[].description |
string |
人が読める形式のルールの説明。 | |
rules[].permissions[] |
list |
権限は ' |
|
rules[].action |
string |
必須 | |
rules[].ins[] |
list |
1 つ以上の 'in' 句が指定され、そのエントリの 1 つ以上に PRINCIPAL/AUTHORITY_SELECTOR がある場合、ルールが一致します。 | |
rules[].notIns[] |
list |
1 つ以上の 'not_in' 句が指定され、そのエントリのいずれにも PRINCIPAL/AUTHORITY_SELECTOR がない場合、ルールが一致します。 | |
rules[].conditions[] |
list |
満たされる必要がある追加の制限。 | |
rules[].conditions[].iam |
string |
IAM システムにより提供される信頼できる属性。 | |
rules[].conditions[].sys |
string |
リソースを所有し、アクセス制御に IAM システムを使用しているサービスにより提供される信頼できる属性。 | |
rules[].conditions[].svc |
string |
サービスにより提供される信頼できる属性。 | |
rules[].conditions[].op |
string |
対象に適用する演算子。 | |
rules[].conditions[].value |
string |
非推奨。代わりに 'values' を使用してください。 | |
rules[].conditions[].values[] |
list |
条件のオブジェクト。これは、'value' と相互に排他的です。 | |
rules[].logConfigs[] |
list |
LOG アクションに一致する任意のエントリの tech.iam.IAM.CheckPolicy の呼び出し元に返される設定。 | |
rules[].logConfigs[].counter |
nested object |
カウンタ オプション。 | |
rules[].logConfigs[].counter.metric |
string |
更新する指標。 | |
rules[].logConfigs[].counter.field |
string |
該当するフィールド値。 | |
etag |
bytes |
`etag` は、オプティミスティック同時実行制御でポリシーの同時更新による相互上書きを防ぐために使用されます。競合状態の発生を回避するため、システムのポリシー更新の読み込み・変更・書き込みサイクルで `etag` を活用することを強くお勧めします。`etag` は `getIamPolicy` へのレスポンスで返されます。その etag を `setIamPolicy` に対するリクエストに設定すれば、対応する変更が同じバージョンのポリシーに確実に適用されるようになります。 `setIamPolicy` の呼び出しで `etag` を指定しないと、既存のポリシーに変更がそのまま上書きされます。 |
|
iamOwned |
boolean |