政策

定义身份和访问权限管理 (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(Binding)
    }
  ],
  "etag": string
}
字段
version
(deprecated)

number

已弃用。

bindings[]

object(Binding)

将一系列 members 关联到 role。没有成员的 bindings 将导致错误。

etag

string (bytes format)

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

如果在调用 setIamPolicy 时未提供 etag,则现有政策将被覆盖而毫无提示。

使用 Base64 编码的字符串。

Binding

membersrole 关联。

JSON 表示法

{
  "role": string,
  "members": [
    string
  ],
  "condition": {
    object(Expr)
  }
}
字段
role

string

分配给 members 的角色。例如,roles/viewerroles/editorroles/owner

members[]

string

指定请求访问 Cloud Platform 资源的身份。members 可能具有以下值:

  • allUsers:一个特殊的标识符,表示互联网上的任何人(无论是否拥有 Google 帐号)。

  • allAuthenticatedUsers:一个特殊的标识符,表示已使用 Google 帐号或服务帐号进行身份验证的任何人。

  • user:{emailid}:表示特定 Google 帐号的电子邮件地址。例如,alice@gmail.com

  • serviceAccount:{emailid}:表示服务帐号的电子邮件地址。例如,my-other-app@appspot.gserviceaccount.com

  • group:{emailid}:表示 Google 群组的电子邮件地址。例如,admins@example.com

  • domain:{domain}:表示该网域的所有用户的 Google Apps 域名。例如,google.comexample.com

condition

object(Expr)

未实现。与此绑定关联的条件。注意:若不满足条件,则不允许用户通过当前绑定进行访问。不同的绑定(包括其条件)是独立检查的。

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

string

采用通用表达式语言语法的表达式的文本表示法。

包含消息的应用上下文决定支持 CEL 的哪个常用特征集。

title

string

表达式的可选标题,即说明其用途的短字符串。该标题可用于允许输入表达式的内容(例如界面)中。

description

string

表达式的可选说明。该说明是描述表达式的较长文本,例如在界面中将鼠标悬停在表达式上时显示的文本。

location

string

可选字符串,可指示用于错误报告的表达式的位置,例如文件名和文件中的位置。