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" }일 수 있습니다.

임의 유형의 필드를 포함하는 객체입니다. 추가 필드 "@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)

출력 전용입니다. 리소스가 생성된 타임스탬프입니다. 생성이 시작된 시간 또는 완료된 시간일 수 있습니다.

생성된 출력은 항상 Z-정규화되고 소수점 이하 0, 3, 6 또는 9자리인 RFC 3339를 사용합니다. 'Z' 이외의 오프셋도 허용됩니다. 예를 들면 "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" 또는 "2014-10-02T15:01:23+05:30"입니다.

updateTime

string (Timestamp format)

출력 전용입니다. 리소스가 최종 업데이트된 타임스탬프입니다. 사용자가 리소스를 변경하면 이 값이 새로고침되어야 합니다. 서비스가 리소스를 변경하면 이 값이 새로고침되어야 합니다.

생성된 출력은 항상 Z-정규화되고 소수점 이하 0, 3, 6 또는 9자리인 RFC 3339를 사용합니다. 'Z' 이외의 오프셋도 허용됩니다. 예를 들면 "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" 또는 "2014-10-02T15:01:23+05:30"입니다.

deleteTime

string (Timestamp format)

출력 전용입니다. 리소스가 삭제된 타임스탬프입니다. 리소스가 삭제되지 않은 경우 비어 있어야 합니다.

생성된 출력은 항상 Z-정규화되고 소수점 이하 0, 3, 6 또는 9자리인 RFC 3339를 사용합니다. '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-east1, aws-us-east-1, azure-eastus2와 같은 Google Cloud API에서 사용되는 인코딩입니다. location의 시맨틱스는 일부 Google Cloud API에서 사용하는 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)가 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 파일에 정의되어 있습니다. 유효한 유형 값은 '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 평가 중에 저장된 정책 대신 사용됩니다. 최대 257KiB입니다. 이 한도를 높이려면 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" }