索引
IAMPolicy
(介面)AuditConfig
(訊息)AuditLogConfig
(訊息)AuditLogConfig.LogType
(enum)Binding
(訊息)GetIamPolicyRequest
(訊息)GetPolicyOptions
(訊息)Policy
(訊息)SetIamPolicyRequest
(訊息)TestIamPermissionsRequest
(訊息)TestIamPermissionsResponse
(訊息)
IAMPolicy
API 總覽
管理身分與存取權管理 (IAM) 政策。
任何提供存取權控管功能的 API 實作項目都會實作 google.iam.v1.IAMPolicy 介面。
資料模型
當主體 (使用者或服務帳戶) 對服務公開的資源採取某些動作時,系統就會套用存取權控制機制。資源會以類似 URI 的名稱識別,是存取控制規範的單位。服務實作可以選擇存取權控制的精細程度,以及資源支援的權限。舉例來說,某個資料庫服務可能只允許在資料表層級指定存取權控管,而另一個服務則可能允許在資料欄層級指定存取權控管。
政策結構
請參閱 google.iam.v1.Policy
這項 API 並非 CRUD 樣式,因為存取權控管政策會與其所附加的資源一併建立及刪除。
GetIamPolicy |
---|
取得資源的存取權控管政策。如果該資源存在且未設定政策,則會傳回空的政策。
|
SetIamPolicy |
---|
設定指定資源的存取權控管政策,取代任何現有的政策。 可能會傳回
|
TestIamPermissions |
---|
傳回呼叫者對指定資源所擁有的權限。如果資源不存在,則會傳回空白的權限組合,而非 附註:這項作業是設計用於建構權限感知 UI 和指令列工具,而不是用於授權檢查。這項作業可能會在沒有警告的情況下產生「失敗開放」。
|
AuditConfig
指定服務的稽核設定。這類設定可判斷要記錄的權限類型,以及哪些身分識別不必記錄 (如適用)。AuditConfig 必須具有一或多個 AuditLogConfig。
如果 allServices
和特定服務都有 AuditConfigs,則該服務會使用這兩個 AuditConfig 的聯集:每個 AuditConfig 中指定的 log_types 都會啟用,而每個 AuditLogConfig 中的 exempted_members 則不啟用。
具有多個 AuditConfigs 的範例政策:
{
"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 |
指定要啟用稽核記錄功能的服務,例如: |
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」記錄功能,同時避免 DATA_READ 記錄 jose@example.com。
欄位 | |
---|---|
log_type |
此設定啟用的記錄類型。 |
exempted_members[] |
指定不會導致記錄這類權限的身分識別,遵循 |
LogType
可設定記錄的有效權限類型清單。管理員寫入一律記錄,且無法設定。
列舉 | |
---|---|
LOG_TYPE_UNSPECIFIED |
預設大小寫。一律不應為此值。 |
ADMIN_READ |
管理員讀取,例如 CloudIAM getIamPolicy |
DATA_WRITE |
資料寫入,例如 CloudSQL Users create |
DATA_READ |
資料讀取,例如 CloudSQL Users list |
繫結
將 members
(或主要實體) 與 role
建立關聯。
欄位 | |
---|---|
role |
指派給 如要瞭解 IAM 角色和權限的總覽,請參閱 身分與存取權管理說明文件。如需可用預先定義角色的清單,請參閱這裡。 |
members[] |
指定要求 Google Cloud 資源存取權的主體。
|
condition |
與此繫結相關聯的條件。 如果條件評估為 如果條件評估為 如要瞭解哪些資源支援 IAM 政策中的條件,請參閱 IAM 說明文件。 |
GetIamPolicyRequest
GetIamPolicy
方法的要求訊息。
欄位 | |
---|---|
resource |
必要:要求政策的資源。如要瞭解這個欄位的適當值,請參閱「資源名稱」。 |
options |
選用:用來指定 |
GetPolicyOptions
封裝提供給 GetIamPolicy 的設定。
欄位 | |
---|---|
requested_policy_version |
(非必要) 用於格式化政策的最高政策版本。 有效值為 0、1 和 3。系統會拒絕指定無效值的要求。 如要要求含有任何條件式角色繫結的政策,請務必指定第 3 版。沒有條件式角色繫結的政策可以指定任何有效值,也可以不設定該欄位。 回應中的政策可能會使用您指定的政策版本,也可能會使用較舊的政策版本。舉例來說,如果您指定版本 3,但政策中沒有條件式角色繫結,回應就會使用版本 1。 如要瞭解哪些資源支援 IAM 政策中的條件,請參閱 IAM 說明文件。 |
政策
身分與存取權管理 (IAM) 政策,可指定 Google Cloud 資源的存取權控管。
Policy
是 bindings
的集合。binding
會將一或多個 members
(或主體) 繫結至單一 role
。主體可以是使用者帳戶、服務帳戶、Google 群組和網域 (例如 G Suite)。role
是具名權限清單,每個 role
可以是 IAM 預先定義的角色,或使用者建立的自訂角色。
對於某些類型的 Google Cloud 資源,binding
也可以指定 condition
,這是邏輯運算式,只有在運算式評估為 true
時,才能存取資源。條件可以根據要求或資源的屬性 (或兩者) 新增限制。如要瞭解哪些資源支援 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 說明文件。
欄位 | |
---|---|
version |
指定政策的格式。 有效值為 任何影響條件角色繫結的作業都必須指定
重要事項:如果您使用 IAM 條件,每次呼叫 如果政策不包含任何條件,對該政策執行的作業可以指定任何有效版本,也可以不指定欄位。 如要瞭解哪些資源支援 IAM 政策中的條件,請參閱 IAM 說明文件。 |
bindings[] |
將
|
audit_configs[] |
指定此政策的雲端稽核記錄設定。 |
etag |
重要事項:如果您使用 IAM 條件,每次呼叫 |
SetIamPolicyRequest
SetIamPolicy
方法的要求訊息。
欄位 | |
---|---|
resource |
必要:指定政策的資源。如要瞭解這個欄位的適當值,請參閱「資源名稱」。 |
policy |
必要:要套用至 |
update_mask |
選用:為 FieldMask,用來指定要修改的策略欄位。系統僅會修改遮罩中的欄位。如果未提供遮罩,則使用下列預設遮罩:
|
TestIamPermissionsRequest
TestIamPermissions
方法的要求訊息。
欄位 | |
---|---|
resource |
必要:要求政策詳細資訊的資源。如要瞭解這個欄位的適當值,請參閱「資源名稱」。 |
permissions[] |
針對 |
TestIamPermissionsResponse
TestIamPermissions
方法的回應訊息。
欄位 | |
---|---|
permissions[] |
已授予呼叫者 |