Deployments: setIamPolicy

需要授权

设置指定资源的访问权限控制政策。 替换任何现有政策。立即试用

请求

HTTP 请求

POST https://www.googleapis.com/deploymentmanager/v2/projects/project/global/deployments/resource/setIamPolicy

参数

参数名称 说明
路径参数
project string 此请求的项目 ID。
resource string 此请求的资源名称或 ID。

授权

此请求需要获得以下至少一个范围的授权(详细了解身份验证和授权)。

范围
https://www.googleapis.com/auth/cloud-platform
https://www.googleapis.com/auth/ndev.cloudman

请求正文

在请求正文中,请提供具有以下结构的数据:

{
  "policy": {
    "version": integer,
    "bindings": [
      {
        "role": string,
        "members": [
          string
        ],
        "condition": {
          "expression": string,
          "title": string,
          "description": string,
          "location": string
        }
      }
    ],
    "auditConfigs": [
      {
        "service": string,
        "exemptedMembers": [
          string
        ],
        "auditLogConfigs": [
          {
            "logType": string,
            "exemptedMembers": [
              string
            ]
          }
        ]
      }
    ],
    "rules": [
      {
        "description": string,
        "permissions": [
          string
        ],
        "action": string,
        "ins": [
          string
        ],
        "notIns": [
          string
        ],
        "conditions": [
          {
            "iam": string,
            "sys": string,
            "svc": string,
            "op": string,
            "values": [
              string
            ]
          }
        ],
        "logConfigs": [
          {
            "counter": {
              "metric": string,
              "field": string
            },
            "dataAccess": {
              "logMode": string
            },
            "cloudAudit": {
              "logName": string,
              "authorizationLoggingOptions": {
                "permissionType": string
              }
            }
          }
        ]
      }
    ],
    "etag": bytes,
    "iamOwned": boolean
  },
  "bindings": [
    {
      "role": string,
      "members": [
        string
      ],
      "condition": {
        "expression": string,
        "title": string,
        "description": string,
        "location": string
      }
    }
  ],
  "etag": bytes
}
属性名称 说明 备注
bindings[] list Flatten Policy,用于创建向后兼容的线格格式。已弃用。使用“policy”指定绑定。
bindings[].role string 分配给“members”的角色。例如“roles/viewer”“roles/editor”或“roles/owner”。
bindings[].members[] list 指定请求访问 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}`:G Suite 网域(主网域),表示该网域中的所有用户。例如,`google.com` 或 `example.com`。







etag bytes Flatten Policy,用于创建向后兼容的线格格式。已弃用。使用“policy”指定 etag。
bindings[].condition nested object 与此绑定关联的条件。注意:若不满足条件,则用户无法通过当前绑定进行访问。不同的绑定(包括其条件)是独立检查的。
bindings[].condition.expression string 采用通用表达式语言语法的表达式的文本表示法。

包含消息的应用上下文决定支持 CEL 的哪个常用特征集。
bindings[].condition.title string 表达式的可选标题,即说明其用途的短字符串。该标题可用于允许输入表达式的内容(例如界面)中。
bindings[].condition.description string 表达式的可选说明。该说明是描述表达式的较长文本,例如在界面中将鼠标悬停在表达式上时显示的文本。
bindings[].condition.location string 可选字符串,可指示用于错误报告的表达式的位置,例如文件名和文件中的位置。
policy nested object 必需:要应用于“resource”的完整政策。政策的大小限制为几十 KB。空政策通常是有效的政策,但某些服务(例如项目)可能会拒绝它们。
policy.version integer 已废弃。

policy.bindings[] list 将一系列 `members` 关联到 `role`。没有成员的 `bindings` 将导致错误。
policy.bindings[].role string 分配给“members”的角色。例如“roles/viewer”“roles/editor”或“roles/owner”。
policy.bindings[].members[] list 指定请求访问 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}`:G Suite 网域(主网域),表示该网域中的所有用户。例如,`google.com` 或 `example.com`。







policy.bindings[].condition nested object 与此绑定关联的条件。注意:若不满足条件,则用户无法通过当前绑定进行访问。不同的绑定(包括其条件)是独立检查的。
policy.bindings[].condition.expression string 采用通用表达式语言语法的表达式的文本表示法。

包含消息的应用上下文决定支持 CEL 的哪个常用特征集。
policy.bindings[].condition.title string 表达式的可选标题,即说明其用途的短字符串。该标题可用于允许输入表达式的内容(例如界面)中。
policy.bindings[].condition.description string 表达式的可选说明。该说明是描述表达式的较长文本,例如在界面中将鼠标悬停在表达式上时显示的文本。
policy.bindings[].condition.location string 可选字符串,可指示用于错误报告的表达式的位置,例如文件名和文件中的位置。
policy.auditConfigs[] list 指定此政策的 Cloud Audit Logging 配置。

policy.auditConfigs[].service string 指定将启用审核日志记录的服务。例如“storage.googleapis.com”“cloudsql.googleapis.com”。`allServices` 是一个涵盖所有服务的特殊值。
policy.auditConfigs[].exemptedMembers[] list

policy.auditConfigs[].auditLogConfigs[] list 对每种类型权限进行日志记录的配置。
policy.auditConfigs[].auditLogConfigs[].logType string 此配置启用的日志类型。
policy.auditConfigs[].auditLogConfigs[].exemptedMembers[] list 指定不会导致对这种权限进行日志记录的身份。遵循与 [Binding.members][] 相同的格式。
policy.rules[] list 如果指定了多个规则,系统会按以下方式应用规则:- 系统始终会应用所有匹配的 LOG 规则。- 如果有任何 DENY/DENY_WITH_LOG 规则匹配,则拒绝授予相应权限。如果一条或多条匹配的规则需要日志记录,系统就会应用日志记录。- 否则,如果任何 ALLOW/ALLOW_WITH_LOG 规则匹配,则授予相应权限。如果一条或多条匹配的规则需要日志记录,系统就会应用日志记录。- 否则,如果没有适用的规则,则拒绝授予权限。
policy.rules[].description string 规则的直观易懂的说明。
policy.rules[].permissions[] list 权限是格式为“..”的字符串(例如'storage.buckets.list')。值“*”与所有权限匹配,而“*”的动词部分(例如'storage.buckets.*') 会匹配所有动词。

policy.rules[].action string 必填
policy.rules[].ins[] list 如果指定了一个或多个“in”子句,则如果 PRINCIPAL/AUTHORITY_SELECTOR 位于其中至少一个条目中,则规则匹配。
policy.rules[].notIns[] list 如果指定了一个或多个“not_in”子句,则当 PRINCIPAL/AUTHORITY_SELECTOR 不在任何条目中时,规则才会匹配。
policy.rules[].conditions[] list 必须满足的其他限制。必须满足所有条件,规则才会匹配。
policy.rules[].conditions[].iam string IAM 系统提供的可信属性。
policy.rules[].conditions[].sys string 拥有资源并使用 IAM 系统进行访问控制的任何服务提供的可信属性。
policy.rules[].conditions[].svc string 由服务提供的可信属性。
policy.rules[].conditions[].op string 用于应用主题的运算符。
policy.rules[].conditions[].values[] list 条件的对象。
policy.rules[].logConfigs[] list 对于与 LOG 操作匹配的任何条目,返回给 tech.iam.IAM.CheckPolicy 调用方的配置。
policy.rules[].logConfigs[].counter nested object 计数器选项。
policy.rules[].logConfigs[].counter.metric string 要更新的指标。
policy.rules[].logConfigs[].counter.field string 要归因的字段值。
policy.rules[].logConfigs[].dataAccess nested object 数据访问选项。
policy.rules[].logConfigs[].dataAccess.logMode string 是否应在调用方以失败关闭方式进行 Gin 日志记录。目前,这仅在 LocalIAM 实现中相关。

注意:目前不支持以失败关闭方式向 Gin 记录日志,我们正在努力满足 go/345 的要求。目前,设置 LOG_FAIL_CLOSED 模式不会产生任何影响,但仍会保留,因为我们正在积极开展工作来支持该模式 (b/115874152)。
policy.rules[].logConfigs[].cloudAudit nested object Cloud 审核选项。
policy.rules[].logConfigs[].cloudAudit.logName string 要在 Cloud 审核记录中填充的 log_name。

policy.rules[].logConfigs[].cloudAudit.authorizationLoggingOptions nested object Cloud Audit Logging 流水线使用的相关信息。
policy.rules[].logConfigs[].cloudAudit.authorizationLoggingOptions.permissionType string 所检查权限的类型。
policy.etag bytes `etag` 用于乐观并发控制,可帮助防止同时对政策进行的更新相互覆盖。强烈建议系统在读取-修改-写入周期中使用 `etag` 来执行政策更新,以避免竞态条件:系统会在 `getIamPolicy` 的响应中返回 `etag`,并且系统应将该 ETag 放入 `setIamPolicy` 的请求中,以确保其更改将应用于同一版本的政策。

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

响应

如果成功,此方法将返回以下结构的响应正文:

{
  "version": integer,
  "bindings": [
    {
      "role": string,
      "members": [
        string
      ],
      "condition": {
        "expression": string,
        "title": string,
        "description": string,
        "location": string
      }
    }
  ],
  "auditConfigs": [
    {
      "service": string,
      "exemptedMembers": [
        string
      ],
      "auditLogConfigs": [
        {
          "logType": string,
          "exemptedMembers": [
            string
          ]
        }
      ]
    }
  ],
  "rules": [
    {
      "description": string,
      "permissions": [
        string
      ],
      "action": string,
      "ins": [
        string
      ],
      "notIns": [
        string
      ],
      "conditions": [
        {
          "iam": string,
          "sys": string,
          "svc": string,
          "op": string,
          "values": [
            string
          ]
        }
      ],
      "logConfigs": [
        {
          "counter": {
            "metric": string,
            "field": string
          },
          "dataAccess": {
            "logMode": string
          },
          "cloudAudit": {
            "logName": string,
            "authorizationLoggingOptions": {
              "permissionType": string
            }
          }
        }
      ]
    }
  ],
  "etag": bytes,
  "iamOwned": boolean
}
属性名称 说明 备注
version integer 已废弃。

bindings[] list 将一系列 `members` 关联到 `role`。没有成员的 `bindings` 将导致错误。
bindings[].role string 分配给“members”的角色。例如“roles/viewer”“roles/editor”或“roles/owner”。
bindings[].members[] list 指定请求访问 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}`:G Suite 网域(主网域),表示该网域中的所有用户。例如,`google.com` 或 `example.com`。







auditConfigs[] list 指定此政策的 Cloud Audit Logging 配置。

auditConfigs[].service string 指定将启用审核日志记录的服务。例如“storage.googleapis.com”“cloudsql.googleapis.com”。`allServices` 是一个涵盖所有服务的特殊值。
auditConfigs[].exemptedMembers[] list

auditConfigs[].auditLogConfigs[] list 对每种类型权限进行日志记录的配置。
auditConfigs[].auditLogConfigs[].logType string 此配置启用的日志类型。
auditConfigs[].auditLogConfigs[].exemptedMembers[] list 指定不会导致对这种权限进行日志记录的身份。遵循与 [Binding.members][] 相同的格式。
rules[] list 如果指定了多个规则,系统会按以下方式应用规则:- 系统始终会应用所有匹配的 LOG 规则。- 如果有任何 DENY/DENY_WITH_LOG 规则匹配,则拒绝授予相应权限。如果一条或多条匹配的规则需要日志记录,系统就会应用日志记录。- 否则,如果任何 ALLOW/ALLOW_WITH_LOG 规则匹配,则授予相应权限。如果一条或多条匹配的规则需要日志记录,系统就会应用日志记录。- 否则,如果没有适用的规则,则拒绝授予权限。
rules[].description string 规则的直观易懂的说明。
rules[].permissions[] list 权限是格式为“..”的字符串(例如'storage.buckets.list')。值“*”与所有权限匹配,而“*”的动词部分(例如'storage.buckets.*') 会匹配所有动词。

rules[].action string 必填
rules[].ins[] list 如果指定了一个或多个“in”子句,则如果 PRINCIPAL/AUTHORITY_SELECTOR 位于其中至少一个条目中,则规则匹配。
rules[].notIns[] list 如果指定了一个或多个“not_in”子句,则当 PRINCIPAL/AUTHORITY_SELECTOR 不在任何条目中时,规则才会匹配。
rules[].conditions[] list 必须满足的其他限制。必须满足所有条件,规则才会匹配。
rules[].conditions[].iam string IAM 系统提供的可信属性。
rules[].conditions[].sys string 拥有资源并使用 IAM 系统进行访问控制的任何服务提供的可信属性。
rules[].conditions[].svc string 由服务提供的可信属性。
rules[].conditions[].op string 用于应用主题的运算符。
rules[].conditions[].values[] list 条件的对象。
rules[].logConfigs[] list 对于与 LOG 操作匹配的任何条目,返回给 tech.iam.IAM.CheckPolicy 调用方的配置。
rules[].logConfigs[].counter nested object 计数器选项。
rules[].logConfigs[].counter.metric string 要更新的指标。
rules[].logConfigs[].counter.field string 要归因的字段值。
etag bytes `etag` 用于乐观并发控制,可帮助防止同时对政策进行的更新相互覆盖。强烈建议系统在读取-修改-写入周期中使用 `etag` 来执行政策更新,以避免竞态条件:系统会在 `getIamPolicy` 的响应中返回 `etag`,并且系统应将该 ETag 放入 `setIamPolicy` 的请求中,以确保其更改将应用于同一版本的政策。

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

bindings[].condition nested object 与此绑定关联的条件。注意:若不满足条件,则用户无法通过当前绑定进行访问。不同的绑定(包括其条件)是独立检查的。
bindings[].condition.expression string 采用通用表达式语言语法的表达式的文本表示法。

包含消息的应用上下文决定支持 CEL 的哪个常用特征集。
bindings[].condition.title string 表达式的可选标题,即说明其用途的短字符串。该标题可用于允许输入表达式的内容(例如界面)中。
bindings[].condition.description string 表达式的可选说明。该说明是描述表达式的较长文本,例如在界面中将鼠标悬停在表达式上时显示的文本。
bindings[].condition.location string 可选字符串,可指示用于错误报告的表达式的位置,例如文件名和文件中的位置。
rules[].logConfigs[].dataAccess nested object 数据访问选项。
rules[].logConfigs[].dataAccess.logMode string 是否应在调用方以失败关闭方式进行 Gin 日志记录。目前,这仅在 LocalIAM 实现中相关。

注意:目前不支持以失败关闭方式向 Gin 记录日志,我们正在努力满足 go/345 的要求。目前,设置 LOG_FAIL_CLOSED 模式不会产生任何影响,但仍会保留,因为我们正在积极开展工作来支持该模式 (b/115874152)。
rules[].logConfigs[].cloudAudit nested object Cloud 审核选项。
rules[].logConfigs[].cloudAudit.logName string 要在 Cloud 审核记录中填充的 log_name。

rules[].logConfigs[].cloudAudit.authorizationLoggingOptions nested object Cloud Audit Logging 流水线使用的相关信息。
rules[].logConfigs[].cloudAudit.authorizationLoggingOptions.permissionType string 所检查权限的类型。