ResourceInfo

包含 IAM 资源信息。

JSON 表示法
{
  "policyType": string,
  "policyName": string,
  "policyRegion": string,
  "resourceContainer": string,
  "resource": {
    object (Resource)
  },
  "monitoredResource": {
    object (MonitoredResource)
  },
  "permissions": [
    string
  ],
  "nextExpectedResourceState": {
    "@type": string,
    field1: ...,
    ...
  },
  "federatedResourceHierarchy": {
    object (FederatedResourceHierarchy)
  },
  "targetResourceLocations": [
    string
  ]
}
字段
policyType

string

可选:资源的政策类型。policyType 的有效值可能是“compute_instances”“storage_buckets”“resourcemanager_projects”等。

policyName

string

可选:资源的政策名称。policyName 的有效值可能是“/myproject/myinstance”“/myproject/mybucket”“/myproject”等。

policyRegion

string

可选:政策的位置。

resourceContainer

string

可选:资源容器名称。此值可以采用以下格式之一:-“projects/”-“folders/”-“organizations/

resource

object (Resource)

可选:资源的核心属性。

monitoredResource

object (MonitoredResource)

可选:云审核受监控的资源。

permissions[]

string

可选:要检查的 IAM 权限名称列表,格式为:{serviceName}/{plural}.{verb} 或旧版格式:{serviceName}.{plural}.{verb}。

  • {serviceName} 引用拥有相应资源的服务。
  • {plural} 引用此资源的 plural 字段。必须采用首字母小写驼峰命名法。

示例:["library.googleapis.com/shelves.get", "library.googleapis.com/shelves.update", "library.shelves.get", "library.shelves.update"]

nextExpectedResourceState

object

可选。执行变更后的资源预期视图。

示例:CreateBookRequest 可能如下所示:{ parent: "projects/project-123" book { author: "Someone Famous" title: "This is a Title" read: false } book_id: "book-123" }

nextExpectedResourceState 可能如下所示:{ name: "projects/project-123/books/book-123" author: "Someone Famous" title: "This is a Title" }

此对象可以包含任意类型的字段。附加字段 "@type" 包含用于标示相应类型的 URI。示例:{ "id": 1234, "@type": "types.example.com/standard/id" }

federatedResourceHierarchy

object (FederatedResourceHierarchy)

可选:用于 IAM 政策联合的联合资源层次结构。

targetResourceLocations[]

string

可选:目标资源的位置。操作所有者可以将目标位置指定为 Google Cloud 区域名称的去重数组或 ["global"]。注意:不支持多区域名称。

资源

此消息定义了资源的核心属性。资源是目标服务提供的可寻址(已命名)实体。例如,存储在网络存储服务中的文件。

JSON 表示法
{
  "service": string,
  "name": string,
  "type": string,
  "labels": {
    string: string,
    ...
  },
  "uid": string,
  "annotations": {
    string: string,
    ...
  },
  "displayName": string,
  "createTime": string,
  "updateTime": string,
  "deleteTime": string,
  "etag": string,
  "location": string
}
字段
service

string

相应资源所属服务的名称,例如 pubsub.googleapis.com。该服务可能与实际处理请求的 DNS 主机名不同。

name

string

service 上资源的稳定标识符(名称)。资源可以逻辑方式标识为“//{resource.service}/{resource.name}”。资源名称和 URI 之间的区别如下:

  • 资源名称是一个逻辑标识符,与网络协议和 API 版本无关。例如 //pubsub.googleapis.com/projects/123/topics/news-feed
  • URI 通常包含协议和版本信息,因此可直接供应用使用。例如 https://pubsub.googleapis.com/v1/projects/123/topics/news-feed

如需了解详情,请参阅 https://cloud.google.com/apis/design/resource_names

type

string

资源的类型。由于不同平台定义资源的方式不同,因此语法是特定于平台的。

对于 Google API,类型格式必须为“{service}/{kind}”,例如“pubsub.googleapis.com/Topic”。

labels

map (key: string, value: string)

资源上的标签,例如 AWS 资源标签和 Kubernetes 资源标签。

包含一系列 "key": value 对的对象。示例:{ "name": "wrench", "mass": "1.3kg", "count": "3" }

uid

string

资源的唯一标识符。在服务范围内,UID 在此资源的时间和空间内是唯一的。它通常是服务器在成功创建资源时生成的,不得进行更改。当存在资源名称重用时,UID 可用来唯一地标识资源。此字段应为 UUID4。

annotations

map (key: string, value: string)

注释是与资源一起存储的非结构化键值对映射,可由外部工具设置,用于存储和检索任意元数据。它们无法查询,并且在修改对象时应予以保留。

如需了解详情,请参阅:https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/

包含一系列 "key": value 对的对象。示例:{ "name": "wrench", "mass": "1.3kg", "count": "3" }

displayName

string

可更改。由客户端设置的显示名称。不得超过 63 个字符。

createTime

string (Timestamp format)

仅限输出。创建资源时的时间戳。这可能是创建开始时间,也可能是创建完成时间。

采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 Z),并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例:"2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z""2014-10-02T15:01:23+05:30"

updateTime

string (Timestamp format)

仅限输出。上次更新资源时的时间戳。用户对此资源的任何更改都必须刷新此值。服务对资源的更改应刷新此值。

采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 Z),并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例:"2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z""2014-10-02T15:01:23+05:30"

deleteTime

string (Timestamp format)

仅限输出。资源被删除时的时间戳。如果资源未被删除,此字段必须为空。

采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 Z),并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例:"2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z""2014-10-02T15:01:23+05:30"

etag

string

仅限输出。不透明值,用于唯一地标识资源的版本或世代。它可用于确认客户端和服务器是否就正在写入的资源的顺序达成一致。

location

string

不可变。资源的位置。位置编码与服务提供商对应。随着服务的发展变化,可能会引入新的编码。

对于 Google Cloud 产品,编码是 Google Cloud API(例如 us-east1aws-us-east-1azure-eastus2)所使用的编码。location 的语义与部分 Google Cloud API 使用的 cloud.googleapis.com/location 标签完全相同。

FederatedResourceHierarchy

JSON 表示法
{
  "version": integer,
  "federatedHierarchy": [
    {
      object (FederatedResource)
    }
  ],
  "nonFederatedParent": {
    object (PolicyName)
  }
}
字段
version

integer

指定此联合层次结构的格式。有效值为 01。 指定无效值的请求将被拒绝。

此字段用于指明客户端知道哪些联合属性。客户端知道的任何属性都必须设置非默认值。客户端不知道的任何属性都被视为 NOT_FEDERATED。对于给定的版本,客户端必须了解该版本及更低版本的所有属性。

             +----------+----------------------+
             | Version  | Supported Attributes |
             +----------+----------------------+
             | 0        | grant policies, tags |
             +----------+----------------------+
             | 1        | grant policies, tags |
             +----------+----------------------+

注意:版本 0 和 1 之间没有任何区别。建议使用 1。

federatedHierarchy[]

object (FederatedResource)

此请求中具有联合信息的资源的属性(按顺序,从叶节点开始)。叶节点名称的政策名称必须与请求中资源的 base PolicyName 相匹配 - CheckPolicyRequest.name、BulkCheckPolicyRequest.requests.name 等。此列表最多可包含 15 个条目。

nonFederatedParent

object (PolicyName)

具有集中存储的政策和属性的最近祖先资源的政策名称。

FederatedResource

JSON 表示法
{
  "policyName": {
    object (PolicyName)
  },
  "resourceName": string,

  // Union field grant_policy can be only one of the following:
  "grantPolicyStatus": enum (FederatedAttributeStatus),
  "federatedGrantPolicy": {
    object (FederatedGrantPolicy)
  }
  // End of list of possible types for union field grant_policy.

  // Union field tags can be only one of the following:
  "tagsStatus": enum (FederatedAttributeStatus),
  "federatedTags": {
    object (FederatedTags)
  }
  // End of list of possible types for union field tags.
}
字段
policyName

object (PolicyName)

resourceName

string

相对资源名称,不含“/”前缀(例如“projects/project-id”)。请参阅:https://cloud.google.com/apis/design/resource_names#relative_resource_name

此字段用于凭据访问边界 (CAB),以匹配 CAB 规则的“availableResource”。请参阅 https://cloud.google.com/iam/docs/downscoping-short-lived-credentials

联合字段 grant_policy

grant_policy 只能是下列其中一项:

grantPolicyStatus

enum (FederatedAttributeStatus)

federatedGrantPolicy

object (FederatedGrantPolicy)

联合字段 tags

tags 只能是下列其中一项:

tagsStatus

enum (FederatedAttributeStatus)

federatedTags

object (FederatedTags)

PolicyName

IAM 政策的内部名称,基于政策所适用的资源。请勿与资源的外部完整资源名称混淆。如需详细了解此区别。

JSON 表示法
{
  "type": string,
  "id": string,
  "region": string
}
字段
type

string

资源类型。类型在 IAM 的 .service 文件中定义。type 的有效值可能包括“storage_buckets”“compute_instances”“resourcemanager_customers”“billing_accounts”等。

id

string

标识相应类型的实例。ID 格式因类型而异。ID 格式在定义类型的 IAM .service 文件中定义,无论是在 path_mapping 中还是在注释中。

region

string

对于 Cloud IAM:政策的位置。对于归全局 IAM 所有的政策,必须为空或“global”。必须为区域级 IAM 政策指定 prodspec/cloud-iam-cloudspec 中的区域名称。

对于本地 IAM:此字段应设置为“local”。

FederatedGrantPolicy

调用方提供的联合授权政策。在 CheckPolicy 评估期间,这些值将取代存储的政策。保证不超过 257 KiB。提高此限制需要与 IAM 联合身份验证集成的服务进行审核。

JSON 表示法
{
  "version": integer,
  "policyData": {
    "@type": string,
    field1: ...,
    ...
  },
  "visibleReferences": {
    object (VisibleReferences)
  },
  "sha256": string
}
字段
version

integer

相应政策对象的架构版本。对联邦政策架构的任何重大更改都会导致版本号递增。有效版本号为:1:初始版本任何其他值都会导致参数无效错误。

policyData

object

存储政策内容的 IAM 特定数据。未经 IAM 批准,联合团队不得对政策数据的内容或大小做出假设。不得在 IAM 拥有的代码之外读取或修改政策数据。

此对象可以包含任意类型的字段。附加字段 "@type" 包含用于标示相应类型的 URI。示例:{ "id": 1234, "@type": "types.example.com/standard/id" }

visibleReferences

object (VisibleReferences)

sha256

string (bytes format)

用于缓存的 policyData 的哈希值。不同资源上的同一政策应具有相同的哈希值。

使用 base64 编码的字符串。

VisibleReferences

政策中引用的主账号或其他实体。如果删除上述任何实体,则应将相应政策发送到 IAM 以进行清理。每个字段的条目不会重复,但可能未排序。

JSON 表示法
{
  "gaiaIds": [
    string
  ],
  "customRoles": [
    string
  ],
  "cpis": [
    string
  ],
  "projectNumbers": [
    string
  ]
}
字段
gaiaIds[]

string (int64 format)

customRoles[]

string

政策中使用的自定义角色名称。例如:organizations/1234/roles/myRole。

cpis[]

string

projectNumbers[]

string (int64 format)

projectOwner、projectEditor 和 projectViewer 的项目编号

FederatedTags

标记键/值对映射的封装容器,因为映射不能是 oneof 中的字段。尚不支持用于 Google Cloud 服务使用情况。

JSON 表示法
{
  "tags": {
    string: string,
    ...
  }
}
字段
tags

map (key: string, value: string)

包含一系列 "key": value 对的对象。示例:{ "name": "wrench", "mass": "1.3kg", "count": "3" }