IAM(Identity and Access Management)ポリシーを定義します。アクセス制御ポリシーを Cloud Platform リソースに指定するのに用いられます。
Policy
は bindings
のリストです。binding
は members
のリストを 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 デベロッパー ガイドをご覧ください。
JSON 表現 | |
---|---|
{ "version": number, "bindings": [ { object( |
フィールド | |
---|---|
version |
非推奨 |
bindings[] |
|
auditConfigs[] |
このポリシーに対する Cloud Audit Logging の監査ログを指定します。 |
etag |
Base64 でエンコードされた文字列。 |
Binding
members
を role
に関連付けます。
JSON 表現 | |
---|---|
{
"role": string,
"members": [
string
],
"condition": {
object( |
フィールド | |
---|---|
role |
|
members[] |
Cloud Platform リソースにアクセスをリクエストする識別子を指定します。
|
condition |
未実装。このバインディングに関連付けられている条件。注: 条件を満たさないと、ユーザーは現在のバインディングからアクセスできません。条件を含む異なるバインディングは、個別に検査されます。 |
Expr
式のテキストを表します。次に例を示します。
title: "User account presence"
description: "Determines whether the request has a user account"
expression: "size(request.user) > 0"
JSON 表現 | |
---|---|
{ "expression": string, "title": string, "description": string, "location": string } |
フィールド | |
---|---|
expression |
Common Expression Language 構文による式のテキスト表現。 含まれているメッセージのアプリケーション コンテキストにより、サポートされている CEL の既知の機能セットが決定されます。 |
title |
式のオプションのタイトル。その目的を説明する短い文字列。たとえば、式を入力できる UI でこれを使用します。 |
description |
式のオプションの説明。これは、式を説明する長いテキストです。たとえば、UI で式にカーソルを合わせたときに表示されます。 |
location |
エラー報告のための式のロケーションを示すオプションの文字列。たとえば、ファイル名やファイル内の位置。 |
AuditConfig
サービスの監査構成を指定します。この構成により、ログに記録される権限タイプとロギングから除外される ID が決まります。AuditConfig には 1 つ以上の AuditLogConfig が必要です。
allServices
と特定のサービスの両方に AuditConfig がある場合、そのサービスには 2 つの AuditConfig のユニオンが使用されます。各 AuditConfig で指定された log_types が有効になり、各 AuditLogConfig の exemptedMembers が除外されます。
複数の AuditConfig を使用したポリシーの例:
{
"auditConfigs": [
{
"service": "allServices"
"auditLogConfigs": [
{
"logType": "DATA_READ",
"exemptedMembers": [
"user:foo@gmail.com"
]
},
{
"logType": "DATA_WRITE",
},
{
"logType": "ADMIN_READ",
}
]
},
{
"service": "fooservice.googleapis.com"
"auditLogConfigs": [
{
"logType": "DATA_READ",
},
{
"logType": "DATA_WRITE",
"exemptedMembers": [
"user:bar@gmail.com"
]
}
]
}
]
}
fooservice の場合、このポリシーを使用すると、DATA_READ、DATA_WRITE、ADMIN_READ のロギングが有効になります。また、DATA_READ ロギングから foo@gmail.com が除外され、DATA_WRITE ロギングから bar@gmail.com が除外されます。
JSON 表現 | |
---|---|
{
"service": string,
"auditLogConfigs": [
{
object( |
フィールド | |
---|---|
service |
監査ロギングの対象となるサービスを指定します。たとえば、 |
auditLogConfigs[] |
権限のタイプごとのロギングの構成。 |
AuditLogConfig
特定の権限タイプをロギングする場合の構成を指定します。次に例を示します。
{
"auditLogConfigs": [
{
"logType": "DATA_READ",
"exemptedMembers": [
"user:foo@gmail.com"
]
},
{
"logType": "DATA_WRITE",
}
]
}
DATA_READ と DATA_WRITE のロギングが有効になり、foo@gmail.com は DATA_READ のロギングから除外されます。
JSON 表現 | |
---|---|
{
"logType": enum( |
フィールド | |
---|---|
logType |
この構成で有効にするログタイプ。 |
exemptedMembers[] |
この権限タイプのロギングが発生しない ID を指定します。 |
LogType
ロギングを有効にする権限タイプの一覧です。管理者の書き込みは常にロギングされますが、設定はできません。
列挙型 | |
---|---|
LOG_TYPE_UNSPECIFIED |
デフォルト。これを使用することはありません。 |
ADMIN_READ |
管理者読み取り。例: CloudIAM getIamPolicy |
DATA_WRITE |
データ書き込み。例: CloudSQL Users create |
DATA_READ |
データ読み取り。例: CloudSQL Users list |