google.iam.v1 软件包

索引

IAMPolicy

API 概览

管理 Identity and Access Management (IAM) 政策。

任何提供访问控制功能的 API 实现都会实现 google.iam.v1.IAMPolicy 接口。

数据模型

当主体(用户或服务帐号)对服务公开的资源执行某些操作时,将应用访问控制。由类似 URI 的名称标识的资源是访问控制规范的单元。服务实现可以选择访问控制的粒度以及其资源支持的权限。例如,一个数据库服务可能仅允许在表级层指定访问控制,而另一个数据库服务可能还允许在列级层指定访问控制。

政策结构

请参阅 google.iam.v1.Policy

我们特意不采用 CRUD 样式的 API,因为访问控制政策是与其附加到的资源一并隐式创建和删除的。

GetIamPolicy

rpc GetIamPolicy(GetIamPolicyRequest) returns (Policy)

获取资源的访问控制政策。如果资源已存在但没有政策集,则返回空政策。

授权范围

需要以下 OAuth 范围之一:

  • https://www.googleapis.com/auth/cloudkms
  • https://www.googleapis.com/auth/cloud-platform

如需了解详情,请参阅身份验证概览

SetIamPolicy

rpc SetIamPolicy(SetIamPolicyRequest) returns (Policy)

对指定的资源设置访问控制政策。替换任何现有政策。

授权范围

需要以下 OAuth 范围之一:

  • https://www.googleapis.com/auth/cloudkms
  • https://www.googleapis.com/auth/cloud-platform

如需了解详情,请参阅身份验证概览

TestIamPermissions

rpc TestIamPermissions(TestIamPermissionsRequest) returns (TestIamPermissionsResponse)

返回调用者对指定资源拥有的权限。如果资源不存在,则返回一个空权限集,而非返回 NOT_FOUND 错误。

注意:此操作旨在用于构建可感知权限的界面和命令行工具,而不是用于授权检查。此操作可能会在遇到故障时仍然执行而不发出任何警告。

授权范围

需要以下 OAuth 范围之一:

  • https://www.googleapis.com/auth/cloudkms
  • https://www.googleapis.com/auth/cloud-platform

如需了解详情,请参阅身份验证概览

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:foo@gmail.com"
          ]
        },
        {
          "log_type": "DATA_WRITE",
        },
        {
          "log_type": "ADMIN_READ",
        }
      ]
    },
    {
      "service": "fooservice.googleapis.com"
      "audit_log_configs": [
        {
          "log_type": "DATA_READ",
        },
        {
          "log_type": "DATA_WRITE",
          "exempted_members": [
            "user:bar@gmail.com"
          ]
        }
      ]
    }
  ]
}

对于 fooservice,此政策用于启用 DATA_READ、DATA_WRITE 和 ADMIN_READ 记录。此政策还豁免 foo@gmail.com 进行 DATA_READ 记录以及豁免 bar@gmail.com 进行 DATA_WRITE 记录。

字段
service

string

指定将为审核日志启用的服务。例如,storage.googleapis.comcloudsql.googleapis.comallServices 是一个涵盖所有服务的特殊值。

audit_log_configs[]

AuditLogConfig

用于对每种权限进行记录的配置。

AuditLogConfig

提供用于记录一种权限的配置。例如:

{
  "audit_log_configs": [
    {
      "log_type": "DATA_READ",
      "exempted_members": [
        "user:foo@gmail.com"
      ]
    },
    {
      "log_type": "DATA_WRITE",
    }
  ]
}

这会启用“DATA_READ”和“DATA_WRITE”记录,同时豁免 foo@gmail.com 进行 DATA_READ 记录。

字段
log_type

LogType

此配置所启用的日志类型。

exempted_members[]

string

指定不会导致对这种权限进行记录的身份。遵循与 Binding.members 相同的格式。

LogType

可以为其配置日志记录的有效权限类型的列表。管理员写入始终予以记录,但不可配置。

枚举
LOG_TYPE_UNSPECIFIED 默认设置。切勿使用此值。
ADMIN_READ 管理员读取。例如:CloudIAM getIamPolicy
DATA_WRITE 数据写入。例如:CloudSQL 用户创建
DATA_READ 数据读取。例如:CloudSQL 用户列出

Binding

membersrole 关联。

字段
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

Expr

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

GetIamPolicyRequest

GetIamPolicy 方法的请求消息。

字段
resource

string

必需:为其请求政策的资源。请参阅操作文档获取该字段的适当值。

Policy

定义 Identity and Access Management (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 开发者指南

字段
version
(deprecated)

int32

已弃用。

bindings[]

Binding

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

audit_configs[]

AuditConfig

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

etag

bytes

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

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

SetIamPolicyRequest

SetIamPolicy 方法的请求消息。

字段
resource

string

必需:要为其指定政策的资源。请参阅操作文档获取该字段的适当值。

policy

Policy

必需:要应用于 resource 的完整政策。政策的大小限制为几十 KB。空政策是有效的政策,但可能被某些 Cloud Platform 服务(例如项目)拒绝。

update_mask

FieldMask

可选:用于指定要修改的政策字段的 FieldMask。只有掩码中的字段会被修改。如果未提供掩码,则使用下列默认掩码:paths: "bindings, etag"。此字段仅供 Cloud IAM 使用。

TestIamPermissionsRequest

TestIamPermissions 方法的请求消息。

字段
resource

string

必需:要为其请求政策详情的资源。请参阅操作文档获取该字段的适当值。

permissions[]

string

用于检查 resource 的权限集。不允许使用带通配符(例如“*”或“storage.*”)的权限。如需了解详情,请参阅 IAM 概览

TestIamPermissionsResponse

TestIamPermissions 方法的响应消息。

字段
permissions[]

string

允许调用者使用的 TestPermissionsRequest.permissions 的子集。

此页内容是否有用?请给出您的反馈和评价:

发送以下问题的反馈:

此网页
Cloud KMS 文档