索引
IAMPolicy
(インターフェース)AuditConfig
(メッセージ)AuditLogConfig
(メッセージ)AuditLogConfig.LogType
(列挙型)Binding
(メッセージ)GetIamPolicyRequest
(メッセージ)GetPolicyOptions
(メッセージ)Policy
(メッセージ)SetIamPolicyRequest
(メッセージ)TestIamPermissionsRequest
(メッセージ)TestIamPermissionsResponse
(メッセージ)
IAMPolicy
API の概要
Identity and Access Management(IAM)のポリシーを管理します。
アクセス制御機能を備えた API の実装では、google.iam.v1.IAMPolicy インターフェースが実装されます。
データモデル
アクセス制御は、プリンシパル(ユーザーまたはサービス アカウント)がサービスによって公開されているリソースに対してなんらかのアクションを実行する際に適用されます。アクセス制御では、URI のような名称で識別されるリソースを単位として指定します。アクセス制御の細かさと各リソースに対してサポートされる権限は、サービスの実装で選択できます。たとえば、あるデータベース サービスではテーブルレベルでのみアクセス制御を指定できるようにしながら、別のデータベース サービスでは列レベルでも指定できるようにすることができます。
ポリシーの構造
google.iam.v1.Policy を参照してください。
アクセス制御ポリシーは、それぞれのアタッチ先となるリソースによって黙示的に作成、削除されるため、これは CRUD スタイルの API ではありません。
GetIamPolicy |
---|
リソースのアクセス制御ポリシーを取得します。リソースが存在し、ポリシーが設定されていない場合は、空のポリシーを返します。
|
SetIamPolicy |
---|
指定したリソースにアクセス制御ポリシーを設定します。既存のポリシーをすべて置き換えます。
|
TestIamPermissions |
---|
指定されたリソースに対して呼び出し元が持っている権限を返します。リソースが存在しない場合、 注: このオペレーションは、承認チェックではなく、権限に対応した UI とコマンドライン ツールの構築に使用するように設計されています。このオペレーションは警告なしに「フェイル オープン」することがあります。
|
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 |
監査ログに関して有効になるサービスを指定します。例: |
audit_log_configs[] |
権限のタイプごとのログの構成。 |
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 |
この構成で有効になるログタイプです。 |
exempted_members[] |
このタイプの権限に対してログが発生しない ID を指定します。 |
LogType
ロギングを有効にする権限タイプの一覧です。管理者の書き込みは常にロギングされますが、構成はできません。
列挙型 | |
---|---|
LOG_TYPE_UNSPECIFIED |
デフォルト。これを使用することはありません。 |
ADMIN_READ |
管理者読み取り。例: CloudIAM getIamPolicy |
DATA_WRITE |
データ書き込み。例: CloudSQL Users create |
DATA_READ |
データ読み取り。例: CloudSQL Users list |
バインディング
members
(プリンシパル)を role
に関連付けます。
フィールド | |
---|---|
role |
|
members[] |
Google Cloud リソースへのアクセスをリクエストするプリンシパルを指定します。
|
condition |
このバインディングに関連付けられている条件。 条件が 条件が IAM ポリシーで条件をサポートするリソースについては、IAM のドキュメントをご覧ください。 |
GetIamPolicyRequest
GetIamPolicy
メソッドに対するリクエスト メッセージ。
フィールド | |
---|---|
resource |
必須: ポリシーをリクエストする対象のリソース。このフィールドに適切な値については、リソース名をご覧ください。 |
options |
省略可: |
GetPolicyOptions
GetIamPolicy に対して指定された設定をカプセル化します。
フィールド | |
---|---|
requested_policy_version |
省略可。ポリシーの形式設定に使用されるポリシーの最大バージョン。 有効な値は 0、1、3 です。無効な値を指定したリクエストは拒否されます。 条件付きロール バインディングがあるポリシーのリクエストでは、バージョン 3 を指定する必要があります。条件付きロール バインディングがないポリシーでは、有効な値を指定することも、フィールドを設定しないこともできます。 レスポンスのポリシーでは、指定したポリシー バージョンを使用するか、それより低いポリシー バージョンを使用する場合があります。たとえば、バージョン 3 を指定しても、ポリシーに条件付きロール バインディングがない場合、レスポンスではバージョン 1 が使用されます。 IAM ポリシーで条件をサポートするリソースについては、IAM のドキュメントをご覧ください。 |
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 のドキュメントをご覧ください。
フィールド | |
---|---|
version |
ポリシーの形式を指定します。 有効な値は 条件付きロール バインディングに影響するオペレーションでは、バージョン
重要: IAM Conditions を使用する場合、 ポリシーに条件が指定されていない場合、ポリシーに対する操作で有効なバージョンの指定、またはフィールド設定の解除ができます。 IAM ポリシーで条件をサポートするリソースについては、IAM のドキュメントをご覧ください。 |
bindings[] |
1 つの |
audit_configs[] |
このポリシーに対する Cloud Audit Logging の監査ログを指定します。 |
etag |
重要: IAM Conditions を使用する場合、 |
SetIamPolicyRequest
SetIamPolicy
メソッドに対するリクエスト メッセージ。
フィールド | |
---|---|
resource |
必須: ポリシーが指定されているリソース。このフィールドに適切な値については、リソース名をご覧ください。 |
policy |
必須: |
update_mask |
省略可: 変更するポリシー フィールドを指定する FieldMask。マスク内のフィールドのみが変更されます。マスクが指定されていない場合は、次のデフォルト マスクが使用されます。
|
TestIamPermissionsRequest
TestIamPermissions
メソッドに対するリクエスト メッセージ。
フィールド | |
---|---|
resource |
必須: ポリシー詳細リクエストの対象となるリソース。このフィールドに適切な値については、リソース名をご覧ください。 |
permissions[] |
|
TestIamPermissionsResponse
TestIamPermissions
メソッドに対するレスポンス メッセージ。
フィールド | |
---|---|
permissions[] |
呼び出し元に許可されている |