google.iam.v1 패키지

색인

IAMPolicy

API 개요

ID 및 액세스 관리(IAM) 정책을 관리합니다.

액세스 제어 기능을 제공하는 모든 API 구현은 google.iam.v1.IAMPolicy 인터페이스를 구현합니다.

데이터 모델

액세스 제어는 주 구성원(사용자 또는 서비스 계정)이 서비스에 의해 노출되는 리소스를 대상으로 작업을 수행할 때 적용됩니다. URI와 비슷한 이름으로 식별되는 리소스는 액세스 제어를 지정하는 단위입니다. 서비스를 구현할 때 리소스에 대한 액세스 제어의 세분성 및 지원되는 권한을 선택할 수 있습니다. 예를 들어, 특정 데이터베이스 서비스는 테이블 수준에서만 액세스 제어를 지정하도록 허용하는 반면 다른 데이터베이스 서비스는 열 수준에서도 액세스 제어를 지정하도록 허용할 수 있습니다.

정책 구조

google.iam.v1.Policy를 참조하세요.

액세스 제어 정책은 정책이 연결되는 리소스와 함께 암묵적으로 생성 및 삭제되므로 의도적으로 CRUD 스타일 API가 아닌 형태로 설계되었습니다.

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와 동일한 형식을 따릅니다.

ignore_child_exemptions

bool

하위 레벨 리소스 정책에서 동일한 LogType에 대해 주 구성원이 예외가 될 수 있는지 여부를 지정합니다. true인 경우 하위 수준의 예외가 무시됩니다.

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입니다.

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

condition

Expr

이 결합에 연결된 조건입니다. 참고: 조건이 충족되지 않으면 현재 바인딩을 통해 사용자에게 액세스가 허용되지 않습니다. 서로 다른 바인딩과 해당 조건은 독립적으로 검사됩니다.

GetIamPolicyRequest

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

필드
resource

string

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

options

GetPolicyOptions

선택사항: GetIamPolicy에 대한 옵션을 지정하기 위한 GetPolicyOptions 객체입니다. 이 필드는 Cloud IAM에만 사용됩니다.

GetPolicyOptions

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

필드
requested_policy_version

int32

선택사항. 반환할 정책 형식 버전입니다. 허용되는 값은 0과 1입니다. 값이 0이거나 필드가 생략되었으면 정책 형식 버전 1이 반환됩니다.

정책

ID 및 액세스 관리(IAM) 정책을 정의합니다. Cloud Platform 리소스의 액세스 제어 정책을 지정하는 데 사용됩니다.

Policybindings 목록으로 구성됩니다. bindingmembers 목록을 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

int32

지원 중단됨.

bindings[]

Binding

members 목록을 role에 연결합니다. 구성원이 없는 bindings를 사용하면 오류가 발생합니다.

audit_configs[]

AuditConfig

이 정책의 Cloud 감사 로깅 구성을 지정합니다.

etag

bytes

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

setIamPolicy 호출 시 etag를 제공하지 않으면 기존 정책을 덮어씁니다.

SetIamPolicyRequest

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

필드
resource

string

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

policy

Policy

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

update_mask

FieldMask

선택사항. 수정할 정책 필드를 지정하는 FieldMask입니다. 마스크에 있는 필드만 수정됩니다. 마스크를 제공하지 않으면 기본 마스크인 'bindings, etag'가 사용됩니다. 이 필드는 Cloud IAM에서만 사용합니다.

TestIamPermissionsRequest

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

필드
resource

string

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

permissions[]

string

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

TestIamPermissionsResponse

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

필드
permissions[]

string

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