Policy

Identity and Access Management (IAM) 政策,用于指定 Google Cloud 资源的访问权限控制。

Policybindings 的集合。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 文档

JSON 表示法
{
  "version": integer,
  "bindings": [
    {
      object (Binding)
    }
  ],
  "auditConfigs": [
    {
      object (AuditConfig)
    }
  ],
  "etag": string
}
字段
version

integer

指定政策的格式。

有效值为 013。指定无效值的请求将被拒绝。

任何影响条件角色绑定的操作都必须指定版本 3。此要求适用于以下操作:

  • 获取包含条件角色绑定的政策
  • 向政策添加条件角色绑定
  • 更改政策中的条件角色绑定
  • 从包含条件的政策中移除任何角色绑定,而无论此绑定是否含有条件

重要提示:如果您使用 IAM 条件,则必须在调用 setIamPolicy 时包含 etag 字段。如果您省略此字段,则 IAM 允许您使用版本 1 政策覆盖版本 3 政策,而且版本 3 政策中的所有条件都会丢失。

如果政策不包含任何条件,则对该政策执行的操作可以指定任何有效版本,也可以不设置该字段。

如需了解哪些资源支持在其 IAM 政策中使用条件,请参阅 IAM 文档

bindings[]

object (Binding)

将一组 members 或主账号与一个 role 相关联。(可选)可以指定一个 condition 以确定如何及何时应用 bindings。每个 bindings 必须至少包含一个主账号。

Policy 中的 bindings 最多可以引用 1,500 个主账号;其中,最多有 250 个主账号可以是 Google 群组。主账号的每个实例都会计入相应限制。例如,如果 bindingsuser:alice@example.com 授予了 50 个不同的角色且没有向任何其他主账号授予角色,那么您最多还可以向 Policy 中的 bindings 添加 1,450 个主账号。

auditConfigs[]

object (AuditConfig)

指定此政策的 Cloud Audit Logging 配置。

etag

string (bytes format)

etag 用于乐观并发控制,可帮助防止同时对政策进行的更新相互覆盖。强烈建议系统在“读取-修改-写入”周期中使用 etag 来执行政策更新以避免冲突:返回 etag 来响应 getIamPolicy,系统应将该 etag 放入对 setIamPolicy 的请求中,以确保其更改将应用于同一版本的政策。

重要提示:如果您使用 IAM 条件,则必须在调用 setIamPolicy 时包含 etag 字段。如果您省略此字段,则 IAM 允许您使用版本 1 政策覆盖版本 3 政策,而且版本 3 政策中的所有条件都会丢失。

base64 编码的字符串。