パッケージ google.iam.v1

索引

IAMPolicy

API の概要

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

アクセス制御機能を備えた API の実装は、google.iam.v1.IAMPolicy インターフェースを実装します。

データモデル

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

ポリシーの構造

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

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

AuditConfig

サービスの監査構成を指定します。この構成により、ログに記録される権限タイプとロギングから除外される ID が決まります。AuditConfig には 1 つ以上の AuditLogConfig が必要です。

allServices と特定のサービスの両方に AuditConfig がある場合は、2 つの AuditConfig を合わせたものがそのサービスに使用されます。つまり各 AuditConfig で指定された log_types が有効になり、各 AuditLogConfig にある exempted_members が除外されます。

複数の AuditConfig を使用したポリシーの例:

{
  "audit_configs": [
    {
      "service": "allServices"
      "audit_log_configs": [
        {
          "log_type": "DATA_READ",
          "exempted_members": [
            "user:jose@example.com"
          ]
        },
        {
          "log_type": "DATA_WRITE",
        },
        {
          "log_type": "ADMIN_READ",
        }
      ]
    },
    {
      "service": "sampleservice.googleapis.com"
      "audit_log_configs": [
        {
          "log_type": "DATA_READ",
        },
        {
          "log_type": "DATA_WRITE",
          "exempted_members": [
            "user:aliya@example.com"
          ]
        }
      ]
    }
  ]
}

sampleservice の場合、このポリシーを使用すると、DATA_READ、DATA_WRITE、ADMIN_READ のロギングが有効になります。また、DATA_READ ロギングから jose@example.com が除外され、DATA_WRITE ロギングから aliya@example.com が除外されます。

フィールド
service

string

監査ログに関して有効になるサービスを指定します。たとえば、storage.googleapis.comcloudsql.googleapis.com です。allServices は、すべてのサービスに当てはまる特殊値です。

audit_log_configs[]

AuditLogConfig

権限のタイプごとのログの構成。

AuditLogConfig

特定の権限タイプをロギングする場合の構成を指定します。次に例を示します。

{
  "audit_log_configs": [
    {
      "log_type": "DATA_READ",
      "exempted_members": [
        "user:jose@example.com"
      ]
    },
    {
      "log_type": "DATA_WRITE",
    }
  ]
}

DATA_READ と DATA_WRITE のロギングが有効になり、jose@example.com が DATA_READ のロギングから除外されます。

フィールド
log_type

LogType

この構成で有効にするログタイプ。

exempted_members[]

string

このタイプの権限に関するログを発生させない識別情報を指定します。Binding.members と同じ形式に従います。

ignore_child_exemptions

bool

下位レベルのリソース ポリシーで同じ LogType のプリンシパルを除外できるかどうかを指定します。true の場合、下位レベルの除外は無視されます。

LogType

ロギングを有効にする権限タイプの一覧です。管理者の書き込みは常にロギングされますが、構成はできません。

列挙型
LOG_TYPE_UNSPECIFIED デフォルト。これを使用することはありません。
ADMIN_READ 管理者読み取り。例: CloudIAM getIamPolicy
DATA_WRITE データ書き込み。例: CloudSQL Users create
DATA_READ データ読み取り。例: CloudSQL Users list

Binding

membersrole に関連付けます。

フィールド
role

string

members に割り当てる役割。例: roles/viewerroles/editor、または roles/owner

members[]

string

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

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

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

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

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

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

  • domain:{domain}: G Suite ドメイン(プライマリ)。そのドメインのすべてのユーザーを表します。たとえば、google.comexample.com です。

condition

Expr

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

GetIamPolicyRequest

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

フィールド
resource

string

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

options

GetPolicyOptions

省略可: GetIamPolicy にオプションを指定するための GetPolicyOptions オブジェクト。このフィールドは Cloud IAM でのみ使用されます。

GetPolicyOptions

GetIamPolicy に対して指定された設定をカプセル化します。

フィールド
requested_policy_version

int32

省略可。取得するポリシー形式のバージョン。有効な値は 0 と 1 です。値が 0 の場合、またはフィールドが省略されている場合は、バージョン 1 のポリシー形式が返されます。

ポリシー

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

int32

非推奨

bindings[]

Binding

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

audit_configs[]

AuditConfig

このポリシーに対する Cloud Audit Logging の監査ログを指定します。

etag

bytes

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

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

SetIamPolicyRequest

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

フィールド
resource

string

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

policy

Policy

必須: resource に適用する完全なポリシー。ポリシーのサイズは数 10 KB に制限されています。空のポリシーは有効なポリシーですが、プロジェクトなど特定の Cloud Platform サービスでは拒否される場合があります。

update_mask

FieldMask

省略可: 変更するポリシー フィールドを指定する FieldMask。マスク内のフィールドのみが変更されます。マスクが指定されていない場合、次のデフォルト マスクが使用されます。パス: bindings, etag。このフィールドは、Cloud IAM のみが使用します。

TestIamPermissionsRequest

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

フィールド
resource

string

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

permissions[]

string

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

TestIamPermissionsResponse

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

フィールド
permissions[]

string

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