索引
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,因为访问控制政策是与其附加到的资源一并隐式创建和删除的。
AuditConfig
指定服务的审核配置。该配置决定要记录哪些权限类型,以及不记录哪些身份(若有)。AuditConfig 必须具有一个或多个 AuditLogConfig。
如果 allServices
和特定服务都具有 AuditConfig,则系统会将两个 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 活动启用日志记录。此政策还在日志记录中排除 jose@example.com 的 DATA_READ 活动和 aliya@example.com 的 DATA_WRITE 活动。
字段 | |
---|---|
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[] |
指定不会导致对这种权限进行日志记录的身份。遵循与 |
ignore_child_exemptions |
指定在较低级别的资源政策中,对于同一 LogType,主账号是否可以豁免。如果为 true,将忽略任何较低级别的豁免项。 |
LogType
可以为其配置日志记录的有效权限类型的列表。管理员写入始终予以记录,且不可配置。
枚举 | |
---|---|
LOG_TYPE_UNSPECIFIED |
默认设置。切勿使用此值。 |
ADMIN_READ |
管理员读取。示例:CloudIAM getIamPolicy |
DATA_WRITE |
数据写入。示例:CloudSQL Users create |
DATA_READ |
数据读取。示例:CloudSQL Users list |
Binding
将 members
与 role
关联。
字段 | |
---|---|
role |
分配给 |
members[] |
指定请求访问 Cloud Platform 资源的身份。
|
condition |
与此绑定关联的条件。注意:若不满足条件,则用户无法通过当前绑定进行访问。系统会单独对不同的绑定(包括其条件)进行检查。 |
GetIamPolicyRequest
GetIamPolicy
方法的请求消息。
字段 | |
---|---|
resource |
必需字段:要为其请求政策的资源。如需了解此字段的适当值,请参阅操作文档。 |
options |
可选:用于指定 |
GetPolicyOptions
封装提供给 GetIamPolicy 的设置。
字段 | |
---|---|
requested_policy_version |
可选。要返回的政策格式版本。可接受的值包括 0 和 1。如果值为 0,或者省略该字段,则将返回政策格式版本 1。 |
政策
定义 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 开发者指南。
字段 | |
---|---|
version |
已弃用。 |
bindings[] |
将一系列 |
audit_configs[] |
指定此政策的 Cloud Audit Logging 配置。 |
etag |
如果在调用 |
SetIamPolicyRequest
SetIamPolicy
方法的请求消息。
字段 | |
---|---|
resource |
必需:要为其指定政策的资源。如需了解此字段的适当值,请参阅操作文档。 |
policy |
必需:要应用于 |
update_mask |
可选:用于指定要修改哪些政策字段的 FieldMask。只有掩码中的字段会被修改。如果未提供掩码,则使用下列默认掩码:paths: "bindings, etag"。此字段仅供 Cloud IAM 使用。 |
TestIamPermissionsRequest
TestIamPermissions
方法的请求消息。
字段 | |
---|---|
resource |
必需字段:要为其请求政策详情的资源。如需了解此字段的适当值,请参阅操作文档。 |
permissions[] |
要用于检查 |
TestIamPermissionsResponse
TestIamPermissions
方法的响应消息。
字段 | |
---|---|
permissions[] |
调用者可以使用的 |