索引
IAMPolicy
(接口)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 |
---|
返回调用者对指定资源拥有的权限。如果资源不存在,则返回一个空权限集,而非返回 注意:此操作旨在用于构建权限感知型界面和命令行工具,而不是用于授权检查。此操作可能会在没有警告的情况下“应急开启”。
|
绑定
将 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[] |
将一组
|
etag |
重要提示:如果您使用 IAM 条件,则必须在调用 |
SetIamPolicyRequest
SetIamPolicy
方法的请求消息。
字段 | |
---|---|
resource |
必需:要为其指定政策的资源。如需了解此字段的适当值,请参阅资源名称。 |
policy |
必需:要应用于 |
TestIamPermissionsRequest
TestIamPermissions
方法的请求消息。
字段 | |
---|---|
resource |
必需字段:要为其请求政策详情的资源。如需了解此字段的适当值,请参阅资源名称。 |
permissions[] |
要用于检查 |
TestIamPermissionsResponse
TestIamPermissions
方法的响应消息。
字段 | |
---|---|
permissions[] |
调用者可以使用的 |