パッケージ google.iam.v1

目次

IAMPolicy

API の概要

Identity and Access Management(IAM)のポリシーを管理します。

アクセス制御機能を提供する API の任意の実装により、google.iam.v1.IAMPolicy インターフェースを実装します。

データモデル

アクセス制御は、プリンシパル(ユーザーまたはサービス アカウント)がサービスによって公開されているリソースに対して何らかのアクションを実行する際に適用されます。アクセス制御では、URI のような名称で識別されるリソースを単位として指定します。アクセス制御の細かさと各リソースに対してサポートされる権限は、サービスの実装で選択できます。たとえば、あるデータベース サービスではテーブルレベルでのみアクセス制御を指定できるようにしながら、別のデータベース サービスでは列レベルでも指定できるようにすることができます。

ポリシーの構造

google.iam.v1.Policy を参照してください。

アクセス制御ポリシーは、それぞれのアタッチ先となるリソースによって黙示的に作成、削除されるため、これは CRUD スタイルの API ではありません。

GetIamPolicy

rpc GetIamPolicy(GetIamPolicyRequest) returns (Policy)

リソースのアクセス制御ポリシーを取得します。リソースが存在し、ポリシーが設定されていない場合は、空のポリシーを返します。

承認スコープ

次の OAuth スコープが必要です。

  • https://www.googleapis.com/auth/cloud-platform

詳細については、認証の概要をご覧ください。

SetIamPolicy

rpc SetIamPolicy(SetIamPolicyRequest) returns (Policy)

指定したリソースにアクセス制御ポリシーを設定します。既存のポリシーをすべて置き換えます。

承認スコープ

次の OAuth スコープが必要です。

  • https://www.googleapis.com/auth/cloud-platform

詳細については、認証の概要をご覧ください。

TestIamPermissions

rpc TestIamPermissions(TestIamPermissionsRequest) returns (TestIamPermissionsResponse)

指定したリソースに対して呼び出し元が持っている権限を返します。リソースが存在しない場合、NOT_FOUND エラーではなく、空の権限セットが返されます。

注: このオペレーションは、承認チェックではなく、権限に対応した UI とコマンドライン ツールの構築に使用するように設計されています。このオペレーションは警告なしに「フェイル オープン」することがあります。

承認スコープ

次の OAuth スコープが必要です。

  • https://www.googleapis.com/auth/cloud-platform

詳細については、認証の概要をご覧ください。

バインディング

membersrole に関連付けます。

フィールド
role

string

members に割り当てる役割。たとえば、roles/viewerroles/editorroles/owner

members[]

string

Cloud Platform リソースにアクセスをリクエストする識別子を指定します。members には次の値を指定できます。

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

  • allAuthenticatedUsers: Google アカウントまたはサービス アカウントで認証されるすべてのユーザーを表す特別な識別子。

  • user:{emailid}: 特定の Google アカウントを表すメールアドレス。たとえば、alice@gmail.com です。

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

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

  • domain:{domain}: Google Apps ドメイン名。そのドメインのすべてのユーザーを表します。例: google.comexample.com

condition

Expr

未実装。このバインディングに関連付けられている条件。注: 条件を満たさないと、ユーザーは現在のバインディングからアクセスできません。条件を含め、各バインディングはそれぞれ個別に検査されます。

GetIamPolicyRequest

GetIamPolicy メソッドに対するリクエスト メッセージ。

項目
resource

string

必須: ポリシーがリクエストされているリソース。このフィールドに適切な値については、オペレーション ドキュメントをご覧ください。

Policy

Identity and Access Management(IAM)ポリシーを定義します。アクセス制御ポリシーを Cloud Platform リソースに指定するのに用いられます。

Policybindings のリストです。bindingmembers のリストを role に結合し、メンバーはユーザー アカウント、Google グループ、Google ドメイン、およびサービス アカウントになることができるようになります。role は IAM で定義された権限の名前付きリストです。

JSON の例

{
  "bindings": [
    {
      "role": "roles/owner",
      "members": [
        "user:mike@example.com",
        "group:admins@example.com",
        "domain:google.com",
        "serviceAccount:my-other-app@appspot.gserviceaccount.com"
      ]
    },
    {
      "role": "roles/viewer",
      "members": ["user:sean@example.com"]
    }
  ]
}

YAML の例

bindings:
- members:
  - user:mike@example.com
  - group:admins@example.com
  - domain:google.com
  - serviceAccount:my-other-app@appspot.gserviceaccount.com
  role: roles/owner
- members:
  - user:sean@example.com
  role: roles/viewer

IAM とその機能については、IAM デベロッパー ガイドをご覧ください。

項目
version
(deprecated)

int32

非推奨

bindings[]

Binding

members のリストを role に関連付けます。bindings にメンバーが存在しないとエラーになります。

etag

bytes

etag は、オプティミスティック同時実行制御でポリシーの同時更新による相互上書きを防ぐために使用されます。競合状態の発生を回避するため、システムのポリシー更新の読み込み・変更・書き込みサイクルで etag を活用することを強くおすすめします。etaggetIamPolicy へのレスポンスで返されます。その etag を setIamPolicy に対するリクエストに設定すれば、対応する変更が同じバージョンのポリシーに確実に適用されるようになります。

etagsetIamPolicy への呼び出しに含まれていない場合、既存のポリシーがそのまま上書きされます。

SetIamPolicyRequest

SetIamPolicy メソッドに対するリクエスト メッセージ。

項目
resource

string

必須: ポリシーが指定されているリソースが存在すること。このフィールドに適切な値については、オペレーション ドキュメントをご覧ください。

policy

Policy

必須: resource に適用する完全なポリシー。ポリシーのサイズは 10 KB 強に制限されています。空のポリシーは有効なポリシーですが、特定の Cloud Platform サービス(Projects など)では、これらが拒否される場合があります。

TestIamPermissionsRequest

TestIamPermissions メソッドに対するリクエスト メッセージ。

項目
resource

string

必須: ポリシーの詳細がリクエストされているリソース。このフィールドに適切な値については、オペレーション ドキュメントをご覧ください。

permissions[]

string

resource に対して確認する権限のセット。ワイルドカード付きの権限(「*」や「storage.*」など)は使用できません。詳細については、IAM の概要を参照してください。

TestIamPermissionsResponse

TestIamPermissions メソッドに対するレスポンス メッセージ。

フィールド
permissions[]

string

呼び出し元が許可されている TestPermissionsRequest.permissions のサブセット。