google.iam.v1 패키지

색인

AuditConfig

서비스의 감사 구성을 지정합니다. 이 구성은 로깅되는 권한 유형 및 로깅에서 제외할 ID(있는 경우)를 결정합니다. 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:jose@example.com"
          ]
        },
        {
          "log_type": "DATA_WRITE",
        },
        {
          "log_type": "ADMIN_READ",
        }
      ]
    },
    {
      "service": "sampleservice.googleapis.com"
      "audit_log_configs": [
        {
          "log_type": "DATA_READ",
        },
        {
          "log_type": "DATA_WRITE",
          "exempted_members": [
            "user:aliya@example.com"
          ]
        }
      ]
    }
  ]
}

이 정책은 sampleservice에서 DATA_READ, DATA_WRITE, ADMIN_READ 로깅을 사용 설정합니다. 또한 jose@example.com을 DATA_READ 로깅에서, aliya@example.com을 DATA_WRITE 로깅에서 제외합니다.

필드
service

string

감사 로깅을 사용 설정할 서비스를 지정합니다. 예를 들면 storage.googleapis.com, cloudsql.googleapis.com입니다. allServices는 모든 서비스를 포괄하는 특수한 값입니다.

audit_log_configs[]

AuditLogConfig

각 권한 유형의 로깅에 대한 구성입니다.

AuditLogConfig

권한 유형 로깅에 대한 구성을 제공합니다. 예를 들면 다음과 같습니다.

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

여기에서는 'DATA_READ' 및 'DATA_WRITE' 로깅을 사용 설정하고 jose@example.com을 DATA_READ 로깅에서 제외합니다.

필드
log_type

LogType

이 구성이 사용 설정하는 로그 유형입니다.

exempted_members[]

string

이 권한 유형을 로깅하지 않는 ID를 지정합니다. Binding.members와 동일한 형식을 따릅니다.

LogType

로깅을 구성할 수 있는 유효한 권한 유형의 목록입니다. 관리자 쓰기는 항상 로깅되며 구성할 수 없습니다.

열거형
LOG_TYPE_UNSPECIFIED 경우의 기본값. 이 값을 지정하면 안 됩니다.
ADMIN_READ 관리자 읽기. 예: CloudIAM getIamPolicy
DATA_WRITE 데이터 쓰기. 예: CloudSQL Users create
DATA_READ 데이터 읽기. 예: CloudSQL Users list

Binding

membersrole과 연결합니다.

필드
role

string

members에 할당된 역할입니다. 예를 들면 roles/viewer, roles/editor, roles/owner입니다.

members[]

string

Cloud Platform 리소스에 대한 액세스를 요청하는 ID를 지정합니다. members는 다음과 같은 값을 가질 수 있습니다.

  • allUsers: Google 계정 유무에 관계없이 임의의 인터넷 사용자를 나타내는 특수한 식별자입니다.

  • allAuthenticatedUsers: Google 계정 또는 서비스 계정으로 인증한 사용자를 나타내는 특수한 식별자입니다.

  • user:{emailid}: 특정 Google 계정을 나타내는 이메일 주소입니다. 예를 들면 alice@example.com입니다.

  • serviceAccount:{emailid}: 서비스 계정을 나타내는 이메일 주소입니다. 예를 들면 my-other-app@appspot.gserviceaccount.com입니다.

  • group:{emailid}: Google 그룹을 나타내는 이메일 주소입니다. 예를 들면 admins@example.com입니다.

  • deleted:user:{emailid}?uid={uniqueid}: 최근에 삭제된 사용자를 나타내는 이메일 주소 및 고유 식별자입니다. 예를 들면 alice@example.com?uid=123456789012345678901입니다. 사용자가 복구되면 이 값은 user:{emailid}로 되돌아가고 복구된 사용자는 binding에서 역할을 유지합니다.

  • deleted:serviceAccount:{emailid}?uid={uniqueid}: 최근에 삭제된 서비스 계정을 나타내는 이메일 주소 및 고유 식별자입니다. 예를 들면 my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901입니다. 서비스 계정이 삭제 취소되면 이 값은 serviceAccount:{emailid}로 되돌아가고 삭제되지 않은 서비스 계정은 binding에서 역할을 유지합니다.

  • deleted:group:{emailid}?uid={uniqueid}: 최근에 삭제된 Google 그룹을 나타내는 이메일 주소 및 고유 식별자입니다. 예를 들면 admins@example.com?uid=123456789012345678901입니다. 그룹이 복구되면 이 값은 group:{emailid}로 되돌아가고 복구된 그룹은 binding에서 역할을 유지합니다.

  • domain:{domain}: 해당 도메인의 모든 사용자를 나타내는 G Suite 도메인(기본)입니다. 예를 들면 google.com 또는 example.com입니다.
condition

Expr

이 binding에 연결된 조건입니다.

조건이 true로 평가되면 이 binding이 현재 요청에 적용됩니다.

조건이 false로 평가되면 이 binding이 현재 요청에 적용되지 않습니다. 그러나 다른 역할 결합은 이 binding에 있는 하나 이상의 구성원에게 동일한 역할을 부여할 수 있습니다.

IAM 정책의 지원을 지원하는 리소스에 대해 알아보려면 IAM 문서를 참조하세요.

GetIamPolicyRequest

GetIamPolicy 메서드의 요청 메시지입니다.

필드
resource

string

필수. 정책을 요청할 리소스입니다. 이 필드의 적절한 값은 작업 문서를 참조하세요.

options

GetPolicyOptions

선택사항: GetIamPolicy에 대한 옵션을 지정하기 위한 GetPolicyOptions 객체입니다.

GetPolicyOptions

GetIamPolicy에 제공된 설정을 캡슐화합니다.

필드
requested_policy_version

int32

선택사항. 반환할 정책 형식 버전입니다.

유효한 값은 0, 1, 3입니다. 잘못된 값을 지정하는 요청은 거부됩니다.

조건부 바인딩이 있는 정책 요청은 버전 3을 지정해야 합니다. 조건부 binding이 없는 정책은 유효한 값을 지정하거나 필드를 설정되지 않은 상태로 둘 수 있습니다.

IAM 정책의 지원을 지원하는 리소스에 대해 알아보려면 IAM 문서를 참조하세요.

정책

ID 및 액세스 관리(IAM) 정책은 Google Cloud 리소스에 대한 액세스 제어를 지정합니다.

Policybindings의 모음입니다. binding은 하나 이상의 members를 단일 role에 바인딩합니다. 구성원은 사용자 계정, 서비스 계정, Google 그룹, 도메인 (예: G Suite)일 수 있습니다. role은 이름이 지정된 권한 목록입니다. 각 role은 IAM 사전 정의된 역할 또는 사용자가 만든 커스텀 역할일 수 있습니다.

일부 유형의 Google Cloud 리소스의 경우 binding은 표현식이 true로 평가될 때만 리소스 액세스를 허용하는 논리 표현식인 condition을 지정할 수 있습니다. 조건은 요청, 리소스 또는 둘 모두를 기준으로 제약조건을 추가할 수 있습니다. IAM 정책의 지원을 지원하는 리소스에 대해 알아보려면 IAM 문서를 참조하세요.

JSON 예시:

{
  "bindings": [
    {
      "role": "roles/resourcemanager.organizationAdmin",
      "members": [
        "user:mike@example.com",
        "group:admins@example.com",
        "domain:google.com",
        "serviceAccount:my-project-id@appspot.gserviceaccount.com"
      ]
    },
    {
      "role": "roles/resourcemanager.organizationViewer",
      "members": [
        "user:eve@example.com"
      ],
      "condition": {
        "title": "expirable access",
        "description": "Does not grant access after Sep 2020",
        "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')",
      }
    }
  ],
  "etag": "BwWWja0YfJA=",
  "version": 3
}

YAML 예시:

bindings:
- members:
  - user:mike@example.com
  - group:admins@example.com
  - domain:google.com
  - serviceAccount:my-project-id@appspot.gserviceaccount.com
  role: roles/resourcemanager.organizationAdmin
- members:
  - user:eve@example.com
  role: roles/resourcemanager.organizationViewer
  condition:
    title: expirable access
    description: Does not grant access after Sep 2020
    expression: request.time < timestamp('2020-10-01T00:00:00.000Z')
- etag: BwWWja0YfJA=
- version: 3

IAM 및 IAM 기능에 대한 설명은 IAM 문서를 참조하세요.

필드
version

int32

정책의 형식을 지정합니다.

유효한 값은 0, 1, 3입니다. 잘못된 값을 지정하는 요청은 거부됩니다.

조건부 역할 결합에 영향을 미치는 모든 작업은 3 버전을 지정해야 합니다. 이 요구사항은 다음 작업에 적용됩니다.

  • 조건부 역할 binding이 포함된 정책 가져오기
  • 정책에 조건부 역할 binding 추가
  • 정책에서 조건부 역할 binding 변경
  • 조건이 포함된 정책에서 조건 유무와 관계없이 역할 binding 삭제

중요: IAM 조건을 사용하는 경우 setIamPolicy를 호출할 때마다 etag 필드를 포함해야 합니다. 이 필드를 제외하면 IAM을 통해 버전 3 정책으로 1 정책을 덮어쓸 수 있으며, 버전 3 정책의 모든 조건이 손실됩니다.

정책에 조건이 포함되어 있지 않으면 해당 정책에 대한 작업에서 유효한 버전을 지정하거나 필드를 설정하지 않은 상태로 둘 수 있습니다.

IAM 정책의 지원을 지원하는 리소스에 대해 알아보려면 IAM 문서를 참조하세요.

bindings[]

Binding

members 목록을 role에 연결합니다. 선택적으로 bindings 적용 방법과 시기를 결정하는 condition을 지정할 수 있습니다. 각 bindings에는 하나 이상의 구성원을 포함해야 합니다.

audit_configs[]

AuditConfig

이 정책의 Cloud Audit Logging 구성을 지정합니다.

etag

bytes

etag는 동시에 발생한 여러 정책 업데이트가 서로를 덮어쓰지 않도록 방지하는 낙관적 동시 실행 제어에 사용됩니다. 정책 업데이트를 수행할 때 읽기-수정-쓰기 주기에서 시스템이 etag를 활용하여 경합 상태를 방지하는 것이 좋습니다. etaggetIamPolicy에 대한 응답으로 반환되며, setIamPolicy 요청에 해당 etag를 넣어 변경사항이 정책의 동일한 버전에 적용되도록 해야 합니다.

중요: IAM 조건을 사용하는 경우 setIamPolicy를 호출할 때마다 etag 필드를 포함해야 합니다. 이 필드를 제외하면 IAM을 통해 버전 3 정책으로 1 정책을 덮어쓸 수 있으며, 버전 3 정책의 모든 조건이 손실됩니다.

SetIamPolicyRequest

SetIamPolicy 메서드의 요청 메시지입니다.

필드
resource

string

필수. 정책을 지정할 리소스입니다. 이 필드의 적절한 값은 작업 문서를 참조하세요.

policy

Policy

필수. resource에 적용할 전체 정책입니다. 정책의 크기는 수십 KB로 제한됩니다. 빈 정책도 유효한 정책이지만, Projects 등의 특정 Cloud Platform 서비스에서 거부될 수 있습니다.

update_mask

FieldMask

선택사항. 수정할 정책 필드를 지정하는 FieldMask입니다. 마스크에 있는 필드만 수정됩니다. 마스크를 제공하지 않으면 다음 기본 마스크가 사용됩니다.

paths: "bindings, etag"

TestIamPermissionsRequest

TestIamPermissions 메서드의 요청 메시지입니다.

필드
resource

string

필수. 정책 세부정보를 요청할 리소스입니다. 이 필드의 적절한 값은 작업 문서를 참조하세요.

permissions[]

string

resource에 대해 확인할 권한 집합입니다. 와일드 카드가 있는 권한('*', 'storage.*' 등)은 허용되지 않습니다. 자세한 내용은 IAM 개요를 참조하세요.

TestIamPermissionsResponse

TestIamPermissions 메서드의 응답 메시지입니다.

필드
permissions[]

string

TestPermissionsRequest.permissions 중에서 호출자에게 허용되는 하위 집합입니다.