Policy

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 개발자 가이드를 참조하세요.

JSON 표현
{
  "version": number,
  "bindings": [
    {
      object(Binding)
    }
  ],
  "etag": string
}
필드
version
(deprecated)

number

지원 중단되었습니다.

bindings[]

object(Binding)

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

etag

string (bytes format)

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

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

base64 인코딩 문자열입니다.

결합

membersrole과 연결합니다.

JSON 표현
{
  "role": string,
  "members": [
    string
  ],
  "condition": {
    object(Expr)
  }
}
필드
role

string

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

members[]

string

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

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

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

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

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

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

  • domain:{domain}: 해당 도메인의 모든 사용자를 나타내는 Google Apps 도메인 이름입니다. 예를 들면 google.com 또는 example.com입니다.

condition

object(Expr)

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

Expr

표현식 텍스트를 나타냅니다. 예를 들면 다음과 같습니다.

title: "User account presence"
description: "Determines whether the request has a user account"
expression: "size(request.user) > 0"
JSON 표현
{
  "expression": string,
  "title": string,
  "description": string,
  "location": string
}
필드
expression

string

Common Expression Language 구문으로 된 표현식의 텍스트 표현입니다.

포함 메시지의 애플리케이션 컨텍스트에 따라 CEL의 잘 알려진 특성 세트 중에 무엇이 지원될지가 결정됩니다.

title

string

표현식의 제목(선택사항)으로, 목적을 설명하는 짧은 문자열입니다. 표현식을 입력할 수 있는 UI 등에 사용할 수 있습니다.

description

string

표현식의 설명(선택사항)입니다. 표현식을 설명하는 더 긴 텍스트입니다. 예를 들어 UI에서 마우스를 가져갈 때 표시할 수 있습니다.

location

string

오류 보고를 위해 표현식의 위치를 나타내는 문자열(선택사항)입니다. 예를 들어 파일 이름 및 파일 내 위치일 수 있습니다.