デプロイ: setIamPolicy

承認が必要

指定されたリソースでアクセス制御ポリシーを設定します。 既存のポリシーがあれば、置き換えられます。 こちらから今すぐお試しいただけます。

リクエスト

HTTP リクエスト

POST https://www.googleapis.com/deploymentmanager/v2beta/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 このポリシーに対する Cloud Audit Logging の監査ログを指定します。
auditConfigs[].service string 監査ログに対して有効になるサービスを指定します。たとえば、`storage.googleapis.com`、`cloudsql.googleapis.com`、`allServices` は、すべてのサービスを網羅する特殊値です。
auditConfigs[].exemptedMembers[] list

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 権限は '..' 形式の文字列です(例: 'storage.buckets.list')。値 '*' はすべての権限に一致します。また、動詞部分の '*' (例: 'storage.buckets.*')はすべての動詞と一致します。

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 このポリシーに対する Cloud Audit Logging の監査ログを指定します。
auditConfigs[].service string 監査ログに対して有効になるサービスを指定します。たとえば、`storage.googleapis.com`、`cloudsql.googleapis.com`、`allServices` は、すべてのサービスを網羅する特殊値です。
auditConfigs[].exemptedMembers[] list

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 権限は '..' 形式の文字列です(例: 'storage.buckets.list')。値 '*' はすべての権限に一致します。また、動詞部分の '*' (例: 'storage.buckets.*')はすべての動詞と一致します。

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

試してみましょう

以下の API Explorer を使って、ライブデータでこのメソッドを呼び出し、レスポンスを確認してみてください。