색인
IAMPolicy
(인터페이스)AuditConfig
(메시지)AuditLogConfig
(메시지)AuditLogConfig.LogType
(열거형)Binding
(메시지)GetIamPolicyRequest
(메시지)GetPolicyOptions
(메시지)Policy
(메시지)SetIamPolicyRequest
(메시지)TestIamPermissionsRequest
(메시지)TestIamPermissionsResponse
(메시지)
IAMPolicy
API 개요
ID 및 액세스 관리(IAM) 정책을 관리합니다.
액세스 제어 기능을 제공하는 모든 API 구현은 google.iam.v1.IAMPolicy 인터페이스를 구현합니다.
데이터 모델
액세스 제어는 주 구성원(사용자 또는 서비스 계정)이 서비스에 의해 노출되는 리소스를 대상으로 작업을 수행할 때 적용됩니다. URI와 비슷한 이름으로 식별되는 리소스는 액세스 제어를 지정하는 단위입니다. 서비스를 구현할 때 리소스에 대한 액세스 제어의 세분성 및 지원되는 권한을 선택할 수 있습니다. 예를 들어, 특정 데이터베이스 서비스는 테이블 수준에서만 액세스 제어를 지정하도록 허용하는 반면 다른 데이터베이스 서비스는 열 수준에서도 액세스 제어를 지정하도록 허용할 수 있습니다.
정책 구조
google.iam.v1.Policy를 참조하세요.
액세스 제어 정책은 정책이 연결되는 리소스와 함께 암묵적으로 생성 및 삭제되므로 의도적으로 CRUD 스타일 API가 아닌 형태로 설계되었습니다.
GetIamPolicy |
---|
리소스의 액세스 제어 정책을 가져옵니다. 리소스가 존재하지만 설정된 정책이 없는 경우 빈 정책을 반환합니다.
|
SetIamPolicy |
---|
지정된 리소스의 액세스 제어 정책을 설정합니다. 기존 정책을 대체합니다.
|
TestIamPermissions |
---|
지정된 리소스에 대해 호출자가 보유한 권한을 반환합니다. 리소스가 없으면 참고: 이 작업은 승인 확인이 아닌 권한 인식 UI 및 명령줄 도구를 만들기 위해 설계되었습니다. 이 작업은 경고 없이 'fail open'될 수 있습니다.
|
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 로깅을 사용 설정합니다. 또한 DATA_READ 로깅에서 jose@example.com
을 제외하고 DATA_WRITE 로깅에서 aliya@example.com
을 제외합니다.
필드 | |
---|---|
service |
감사 로깅을 사용 설정할 서비스를 지정합니다. 예를 들면 |
audit_log_configs[] |
각 권한 유형의 로깅에 대한 구성입니다. |
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 |
이 구성이 사용 설정하는 로그 유형입니다. |
exempted_members[] |
이 권한 유형을 로깅하지 않는 ID를 지정합니다. |
LogType
로깅을 구성할 수 있는 유효한 권한 유형의 목록입니다. 관리자 쓰기는 항상 로깅되며 구성할 수 없습니다.
열거형 | |
---|---|
LOG_TYPE_UNSPECIFIED |
경우의 기본값. 이 값을 지정하면 안 됩니다. |
ADMIN_READ |
관리자 읽기. 예: CloudIAM getIamPolicy |
DATA_WRITE |
데이터 쓰기. 예: CloudSQL Users create |
DATA_READ |
데이터 읽기. 예: CloudSQL Users list |
Binding
members
또는 주 구성원을 role
과 연결합니다.
필드 | |
---|---|
role |
|
members[] |
Google Cloud 리소스에 대한 액세스를 요청하는 주 구성원을 지정합니다.
|
condition |
이 결합에 연결된 조건입니다. 조건이 조건이 IAM 정책의 지원을 지원하는 리소스에 대해 알아보려면 IAM 문서를 참조하세요. |
GetIamPolicyRequest
GetIamPolicy
메서드의 요청 메시지입니다.
필드 | |
---|---|
resource |
필수 항목입니다. 정책을 요청할 리소스입니다. 이 필드의 적절한 값은 리소스 이름을 참조하세요. |
options |
선택사항입니다. |
GetPolicyOptions
GetIamPolicy에 제공된 설정을 캡슐화합니다.
필드 | |
---|---|
requested_policy_version |
선택사항입니다. 정책 형식을 지정하는 데 사용할 최대 정책 버전입니다. 유효한 값은 0, 1, 3입니다. 잘못된 값을 지정하는 요청은 거부됩니다. 조건부 역할 바인딩이 있는 정책 요청은 버전 3을 지정해야 합니다. 조건부 역할 바인딩이 없는 정책은 유효한 값을 지정하거나 필드를 설정되지 않은 상태로 둘 수 있습니다. 응답의 정책은 지정된 정책 버전을 사용하거나 더 낮은 정책 버전을 사용할 수 있습니다. 예를 들어 버전 3을 지정했지만 정책에 조건부 역할 바인딩이 없으면 응답은 버전 1을 사용합니다. IAM 정책의 지원을 지원하는 리소스에 대해 알아보려면 IAM 문서를 참조하세요. |
정책
ID 및 액세스 관리(IAM) 정책은 Google Cloud 리소스에 대한 액세스 제어를 지정합니다.
Policy
는 bindings
의 모음입니다. 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 |
정책의 형식을 지정합니다. 유효한 값은 조건부 역할 결합에 영향을 미치는 모든 작업은
중요: IAM 조건을 사용하는 경우 정책에 조건이 포함되어 있지 않으면 해당 정책에 대한 작업에서 유효한 버전을 지정하거나 필드를 설정하지 않은 상태로 둘 수 있습니다. IAM 정책의 지원을 지원하는 리소스에 대해 알아보려면 IAM 문서를 참조하세요. |
bindings[] |
하나의 |
audit_configs[] |
이 정책의 Cloud Audit Logging 구성을 지정합니다. |
etag |
중요: IAM 조건을 사용하는 경우 |
SetIamPolicyRequest
SetIamPolicy
메서드의 요청 메시지입니다.
필드 | |
---|---|
resource |
필수 항목입니다. 정책을 지정할 리소스입니다. 이 필드의 적절한 값은 리소스 이름을 참조하세요. |
policy |
필수 항목입니다. |
update_mask |
선택사항. 수정할 정책 필드를 지정하는 FieldMask입니다. 마스크에 있는 필드만 수정됩니다. 마스크를 제공하지 않으면 다음 기본 마스크가 사용됩니다.
|
TestIamPermissionsRequest
TestIamPermissions
메서드의 요청 메시지입니다.
필드 | |
---|---|
resource |
필수 항목입니다. 정책 세부정보를 요청하는 리소스입니다. 이 필드의 적절한 값은 리소스 이름을 참조하세요. |
permissions[] |
|
TestIamPermissionsResponse
TestIamPermissions
메서드의 응답 메시지입니다.
필드 | |
---|---|
permissions[] |
|