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 フィールドを指します。lowerCamelCase で指定する必要があります。

例: ["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" } のようになります。

任意のデータ型のフィールドを含むオブジェクト。型を識別する URI を含むフィールド "@type" を追加できます。例: { "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)

アノテーションは、任意のメタデータを保存して取得するため、外部ツールによって設定される可能性のあるリソースとともに保存される非構造化 Key-Value マップです。クエリは実行可能ではなく、オブジェクトを変更する際に保持する必要があります。

詳細: 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 正規化され、小数点以下は 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 正規化され、小数点以下は 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 正規化され、小数点以下は 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 プロダクトでは、エンコードは us-east1aws-us-east-1azure-eastus2 など Google Cloud APIs が使用するものです。location のセマンティクスは、一部の Google Cloud APIs が使用する cloud.googleapis.com/location ラベルと同じです。

FederatedResourceHierarchy

JSON 表現
{
  "version": integer,
  "federatedHierarchy": [
    {
      object (FederatedResource)
    }
  ],
  "nonFederatedParent": {
    object (PolicyName)
  }
}
フィールド
version

integer

このフェデレーション階層の形式を指定します。有効な値は 0 または 1 です。無効な値を指定したリクエストは拒否されます。

このフィールドは、クライアントが認識しているフェデレーション属性を示します。クライアントが認識している属性には、デフォルト以外の値を設定する必要があります。クライアントが認識していない属性は NOT_FEDERATED とみなされます。特定のバージョンについて、クライアントはそのバージョン以下のすべての属性を認識している必要があります。

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

注: バージョン 0 と 1 の間に違いはありません。1 を使用することを推奨します。

federatedHierarchy[]

object (FederatedResource)

リーフノードから順に、このリクエスト内のリソースの属性(フェデレーション情報を含む)。リーフノード名のポリシー名は、リクエスト内のリソースの基本 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 ルールの availableResource と一致する認証情報アクセス境界(CAB)に使用されます。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 所有のコード以外で読み取りまたは変更しないでください。

任意のデータ型のフィールドを含むオブジェクト。型を識別する URI を含むフィールド "@type" を追加できます。例: { "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 のフィールドにできないため、タグの Key-Value ペアのマップのラッパー。Google Cloud サービスの利用はまだサポートされていません。

JSON 表現
{
  "tags": {
    string: string,
    ...
  }
}
フィールド
tags

map (key: string, value: string)

"key": value ペアのリストを含むオブジェクト。例: { "name": "wrench", "mass": "1.3kg", "count": "3" }