定义 Identity and Access Management (IAM) 政策,指定 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 |
采用通用表达式语言语法的表达式的文本表示法。 包含消息的应用上下文决定支持 CEL 的哪个常用特征集。 |
title |
表达式的可选标题,例如描述其用途的短字符串。这可以用于允许输入表达式的内容(例如界面)中。 |
description |
表达式的可选描述。这是描述表达式的较长文本,例如当鼠标悬停在界面中的表达式上时显示的文本。 |
location |
为错误报告指示表达式的位置的可选字符串,例如文件名和在文件中的位置。 |
AuditConfig
指定服务的审核配置。该配置决定在日志记录中包含哪些权限类型,以及排除哪些身份(若有)。AuditConfig 必须具有一个或多个 AuditLogConfig。
如果 allServices
和特定服务都有 AuditConfig,则两个 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 活动启用日志记录。此政策还在日志记录中排除 foo@gmail.com 的 DATA_READ 活动和 bar@gmail.com 的 DATA_WRITE 活动。
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[] |
指定对于哪些身份不在日志记录中记录此类权限的活动。遵循与 |
LogType
可以配置日志记录的有效权限类型的列表。管理员写入活动始终会被记录,并且不可配置。
枚举 | |
---|---|
LOG_TYPE_UNSPECIFIED |
默认设置。切勿使用此值。 |
ADMIN_READ |
管理员读取。示例:CloudIAM getIamPolicy |
DATA_WRITE |
数据写入。示例:CloudSQL 用户创建 |
DATA_READ |
数据读取。示例:CloudSQL 用户列出 |