索引
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 |
---|
返回调用者对指定资源拥有的权限。如果资源不存在,则返回一个空权限集,而非返回 注意:此操作旨在用于构建权限感知型界面和命令行工具,而不是用于授权检查。此操作可能会在没有警告的情况下“应急开启”。
|
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 活动启用日志记录。它还会从 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[] |
指定不会导致对这种权限进行日志记录的身份。遵循与 |
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
会将一个或多个 members
或主账号绑定到单个 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 条件,则必须在调用 如果政策不包含任何条件,则对该政策执行的操作可以指定任何有效版本,也可以不设置该字段。 如需了解哪些资源支持在其 IAM 政策中使用条件,请参阅 IAM 文档。 |
bindings[] |
将一组
|
audit_configs[] |
指定此政策的 Cloud Audit Logging 配置。 |
etag |
重要提示:如果您使用 IAM 条件,则必须在调用 |
SetIamPolicyRequest
SetIamPolicy
方法的请求消息。
字段 | |
---|---|
resource |
必需:要为其指定政策的资源。如需了解此字段的适当值,请参阅资源名称。 |
policy |
必需:要应用于 |
update_mask |
可选:用于指定要修改哪些政策字段的 FieldMask。只有掩码中的字段会被修改。如果未提供掩码,则使用以下默认掩码:
|
TestIamPermissionsRequest
TestIamPermissions
方法的请求消息。
字段 | |
---|---|
resource |
必需字段:要为其请求政策详情的资源。如需了解此字段的适当值,请参阅资源名称。 |
permissions[] |
要用于检查 |
TestIamPermissionsResponse
TestIamPermissions
方法的响应消息。
字段 | |
---|---|
permissions[] |
调用者可以使用的 |