本頁說明如何使用 Organization Policy Service 自訂限制,限制對下列 Google Cloud 資源執行的特定作業:
iam.googleapis.com/AllowPolicy
如要進一步瞭解機構政策,請參閱自訂機構政策。
關於機構政策和限制
Google Cloud 機構政策服務可讓您透過程式以集中方式控管機構的資源。身為機構政策管理員,您可以定義機構政策,也就是一組稱為「限制」的限制,適用於Google Cloud 資源和Google Cloud 資源階層中這些資源的子系。您可以在機構、資料夾或專案層級強制執行機構政策。
機構政策提供各種 Google Cloud 服務的內建代管限制。不過,如要更精細地自訂機構政策中受限的特定欄位,也可以建立自訂限制,並在機構政策中使用這些自訂限制。
政策繼承
根據預設,機構政策會由您強制執行政策的資源子系繼承。舉例來說,如果您對資料夾強制執行政策, Google Cloud 系統會對該資料夾中的所有專案強制執行政策。如要進一步瞭解這項行為及如何變更,請參閱「階層評估規則」。
優點
您可以透過參照 IAM 屬性的自訂機構政策,控管允許政策的修改方式。具體來說,您可以控管下列項目:
- 可授予角色的對象
- 哪些人的角色可以撤銷
- 可授予哪些角色
- 可撤銷的角色
舉例來說,您可以禁止將含有 admin
字詞的角色授予電子郵件地址結尾為 @gmail.com
的主體。
限制
模擬執行模式中參照 IAM 屬性的自訂機構政策有一些限制。也就是說,涉及
setIamPolicy
方法的違規事項稽核記錄,可能缺少下列欄位:resourceName
serviceName
methodName
並非所有與 IAM 相關的自訂機構政策違規事項,都會產生稽核記錄。也就是說,如果自訂機構政策導致機構資源的
setIamPolicy
作業失敗,則Google Cloud 不會為該事件產生稽核記錄。參照 IAM 屬性的自訂機構政策不會影響下列項目:
- Cloud Storage ACL 的預設授權。
- 自動授予 Cloud Storage 便利性值和 BigQuery 預設資料集存取權的角色。
- 預設允許政策授予的角色,例如專案建立者會自動獲得專案的擁有者角色 (
roles/owner
)。
即使您有自訂機構政策,禁止授予擁有者角色 (
roles/owner
),使用者仍可收到成為擁有者的邀請。不過,自訂機構政策不會禁止傳送邀請,但會禁止授予受邀使用者「擁有者」角色。受邀使用者嘗試接受邀請時,會遇到錯誤,且不會獲得擁有者角色。在 Google Cloud中執行部分動作 (例如建立資源或啟用 API) 時,系統會自動將角色授予服務代理或預設服務帳戶。如果動作涉及自動授予角色,但組織政策禁止授予該角色,則整個作業可能會失敗。
如果遇到這個問題,可以使用標記暫時停用限制,允許授予角色。然後執行動作。完成後,請重新啟用限制。
事前準備
-
如要測試參照 IAM 資源的自訂機構政策,請建立新專案。在現有專案中測試這些機構政策,可能會中斷安全性工作流程。
-
In the Google Cloud console, go to the project selector page.
-
Select or create a Google Cloud project.
-
必要的角色
如要取得管理機構政策所需的權限,請要求管理員授予下列 IAM 角色:
-
機構政策管理員 (
roles/orgpolicy.policyAdmin
) 機構 -
測試本頁面所述的機構政策:
專案 IAM 管理員 (
roles/resourcemanager.projectIamAdmin
) 在專案中
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。
這些預先定義角色具備管理機構政策所需的權限。如要查看確切的必要權限,請展開「必要權限」部分:
所需權限
如要管理組織政策,您必須具備下列權限:
-
orgpolicy.*
機構 -
測試本頁面所述的機構政策:
resourcemanager.projects.setIamPolicy
專案
建立自訂限制
自訂限制是在 YAML 檔案中定義,當中包含您要強制執行機構政策的服務所支援的資源、方法、條件和動作。自訂限制的條件是使用一般運算語言 (CEL) 定義。如要進一步瞭解如何使用 CEL 在自訂限制中建構條件,請參閱「建立及管理自訂限制」一文的 CEL 一節。
如要建立自訂限制,請使用下列格式建立 YAML 檔案:
name: organizations/ORGANIZATION_ID/customConstraints/CONSTRAINT_NAME
resourceTypes:
- RESOURCE_NAME
methodTypes:
- CREATE
- UPDATE
condition: "CONDITION"
actionType: ACTION
displayName: DISPLAY_NAME
description: DESCRIPTION
更改下列內容:
ORGANIZATION_ID
:您的機構 ID,例如123456789
。CONSTRAINT_NAME
:新自訂限制的名稱。自訂限制條件必須以custom.
開頭,且只能包含大寫英文字母、小寫英文字母或數字。例如,custom.denyProjectIAMAdmin
。這個欄位的長度上限為 70 個字元。RESOURCE_NAME
:包含要限制物件和欄位的Google Cloud 資源完整名稱。例如:iam.googleapis.com/AllowPolicy
。CONDITION
:針對支援服務資源的代表項目編寫的 CEL 條件。這個欄位的長度上限為 1000 個字元。如要進一步瞭解可編寫條件的資源,請參閱「支援的資源」。例如:
。resource.bindings.exists(binding, RoleNameMatches(binding.role, ['roles/resourcemanager.projectIamAdmin']))
ACTION
:如果符合condition
,應採取的動作。可能的值為ALLOW
和DENY
。DISPLAY_NAME
:限制條件的易記名稱。這個欄位的長度上限為 200 個字元。DESCRIPTION
:違反政策時,要以錯誤訊息形式顯示的限制說明。這個欄位的長度上限為 2000 個字元。
如要進一步瞭解如何建立自訂限制,請參閱「定義自訂限制」。
設定自訂限制
為新的自訂限制建立 YAML 檔案後,您必須進行設定,才能在貴機構的機構政策中使用該檔案。如要設定自訂限制,請使用gcloud org-policies set-custom-constraint
指令:
gcloud org-policies set-custom-constraint CONSTRAINT_PATH
CONSTRAINT_PATH
替換為自訂限制檔案的完整路徑。例如:/home/user/customconstraint.yaml
。
完成後,自訂限制就會顯示在 Google Cloud 機構政策清單中,做為機構政策使用。如要確認自訂限制存在,請使用 gcloud org-policies list-custom-constraints
指令:gcloud org-policies list-custom-constraints --organization=ORGANIZATION_ID
ORGANIZATION_ID
替換為機構資源的 ID。
詳情請參閱「查看機構政策」。強制執行自訂機構政策
如要強制執行限制,請建立參照該限制的機構政策,然後將該政策套用至 Google Cloud 資源。控制台
- 前往 Google Cloud 控制台的「Organization policies」(組織政策) 頁面。
- 在專案選擇工具中,選取要設定機構政策的專案。
- 在「Organization policies」(機構政策) 頁面上的清單中選取限制條件,即可查看該限制條件的「Policy details」(政策詳情) 頁面。
- 如要設定這項資源的機構政策,請按一下「管理政策」。
- 在「編輯政策」頁面中,選取「覆寫上層政策」。
- 按一下「新增規則」。
- 在「Enforcement」(強制執行) 區段中,選取是否要強制執行這項機構政策。
- 選用:如要根據標記設定機構政策條件,請按一下「新增條件」。請注意,如果為組織政策新增條件式規則,您必須至少新增一項無條件規則,否則無法儲存政策。詳情請參閱「使用標記設定組織政策」。
- 按一下「測試變更」,模擬機構政策的影響。舊版受管理限制不支援政策模擬。詳情請參閱「 使用 Policy Simulator 測試組織政策變更」。
- 如要完成並套用機構政策,請按一下「設定政策」。這項政策最多需要 15 分鐘才會生效。
gcloud
如要建立含有布林值規則的機構政策,請建立參照限制的政策 YAML 檔案:
name: projects/PROJECT_ID/policies/CONSTRAINT_NAME spec: rules: - enforce: true
取代下列項目:
-
PROJECT_ID
:要強制執行限制的專案。 -
CONSTRAINT_NAME
:您為自訂限制定義的名稱。例如:custom.denyProjectIAMAdmin
。
如要強制執行包含限制的機構政策,請執行下列指令:
gcloud org-policies set-policy POLICY_PATH
將 POLICY_PATH
替換為機構政策 YAML 檔案的完整路徑。這項政策最多需要 15 分鐘才會生效。
測試自訂機構政策
(選用) 您可以設定機構政策,然後嘗試執行政策應禁止的動作,藉此測試政策。
建立限制
將下列檔案儲存為
constraint-deny-project-iam-admin
。name: organizations/ORG_ID/customConstraints/custom.denyProjectIAMAdmin resourceTypes: iam.googleapis.com/AllowPolicy methodTypes: - CREATE - UPDATE condition: "resource.bindings.exists( binding, RoleNameMatches(binding.role, ['roles/resourcemanager.projectIamAdmin']) && binding.members.exists(member, MemberSubjectMatches(member, ['user:EMAIL_ADDRESS']) ) )" actionType: DENY displayName: Do not allow EMAIL_ADDRESS to be granted the Project IAM Admin role.
替換下列值:
ORG_ID
:您Google Cloud 機構的數值 ID。MEMBER_EMAIL_ADDRESS
:您要用來測試自訂限制的主體電子郵件地址。限制生效期間,這個主體無法在您強制執行限制的專案中,獲派專案 IAM 管理員角色 (roles/resourcemanager.projectIamAdmin
)。
套用限制:
gcloud org-policies set-custom-constraint ~/constraint-deny-project-iam-admin.yaml
確認限制條件是否存在:
gcloud org-policies list-custom-constraints --organization=ORGANIZATION_ID
建立政策
將下列檔案儲存為
policy-deny-project-iam-admin.yaml
:name: projects/PROJECT_ID/policies/custom.denyProjectIamAdmin spec: rules: - enforce: true
將
PROJECT_ID
替換為您的專案 ID。套用政策:
gcloud org-policies set-policy ~/policy-deny-project-iam-admin.yaml
確認政策存在:
gcloud org-policies list --project=PROJECT_ID
套用政策後,請等待約兩分鐘, Google Cloud 就會開始強制執行政策。
測試政策
嘗試將「專案 IAM 管理員」角色 (roles/resourcemanager.projectIamAdmin
) 授予您在自訂限制中加入電子郵件地址的主體。執行指令前,請先取代下列值:
PROJECT_ID
:您強制執行限制的專案 ID Google CloudEMAIL_ADDRESS
:您建立組織政策限制時指定的主體電子郵件地址。
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=user:EMAIL_ADDRESS --role=roles/resourcemanager.projectIamAdmin
輸出內容如下:
Operation denied by custom org policies: ["customConstraints/custom.denyProjectIAMAdmin": "EMAIL_ADDRESS can't be granted the Project IAM Admin role."]
常見用途的自訂機構政策範例
下表提供常見用途的一些自訂限制語法。
下列範例使用 CEL 巨集 all
和 exists
。如要進一步瞭解這些巨集,請參閱「巨集來評估清單」。
說明 | 限制語法 |
---|---|
禁止授予特定角色。 |
name: organizations/ORG_ID/customConstraints/custom.denyRole resourceTypes: iam.googleapis.com/AllowPolicy methodTypes: - CREATE - UPDATE condition: "resource.bindings.exists( binding, RoleNameMatches(binding.role, ['ROLE']) )" actionType: DENY displayName: Do not allow the ROLE role to be granted |
只允許授予特定角色。 |
name: organizations/ORG_ID/customConstraints/custom.specificRolesOnly resourceTypes: iam.googleapis.com/AllowPolicy methodTypes: - CREATE - UPDATE condition: "resource.bindings.all( binding, RoleNameMatches(binding.role, ['ROLE_1', 'ROLE_2']) )" actionType: ALLOW displayName: Only allow the ROLE_1 role and ROLE_2 role to be granted |
禁止授予任何以 roles/storage. 開頭的角色。
|
name: organizations/ORG_ID/customConstraints/custom.dontgrantStorageRoles resourceTypes: iam.googleapis.com/AllowPolicy methodTypes: - CREATE - UPDATE condition: "resource.bindings.exists( binding, RoleNameStartsWith(binding.role, ['roles/storage.']) )" actionType: DENY displayName: Prevent roles that start with "roles/storage." from being granted |
防止系統撤銷名稱中含有 admin 的角色。
|
name: organizations/ORG_ID/customConstraints/custom.dontRevokeAdminRoles resourceTypes: iam.googleapis.com/AllowPolicy methodTypes: - REMOVE_GRANT condition: "resource.bindings.exists( binding, RoleNameContains(binding.role, ['admin']) )" actionType: DENY displayName: Prevent roles with "admin" in their names from being revoked |
僅允許特定主體獲得角色。 |
name: organizations/ORG_ID/customConstraints/custom.allowSpecificPrincipals resourceTypes: iam.googleapis.com/AllowPolicy methodTypes: - CREATE - UPDATE condition: "resource.bindings.all( binding, binding.members.all(member, MemberSubjectMatches(member, ['user:USER','serviceAccount:SERVICE_ACCOUNT']) ) )" actionType: ALLOW displayName: Only allow roles to be granted to USER and SERVICE_ACCOUNT |
防止從特定主體撤銷任何角色。 |
name: organizations/ORG_ID/customConstraints/custom.denyRemovalOfSpecificPrincipals resourceTypes: iam.googleapis.com/AllowPolicy methodTypes: - REMOVE_GRANT condition: "resource.bindings.exists( binding, binding.members.exists(member, MemberSubjectMatches(member, ['user:USER_1','user:USER_2']) ) )" actionType: DENY displayName: Do not allow roles to be revoked from USER_1 or USER_2 |
禁止授予電子郵件地址結尾為「@gmail.com 」的主體角色。 |
name: organizations/ORG_ID/customConstraints/custom.dontGrantToGmail resourceTypes: iam.googleapis.com/AllowPolicy methodTypes: - CREATE - UPDATE condition: "resource.bindings.exists( binding, binding.members.exists(member, MemberSubjectEndsWith(member, ['@gmail.com']) ) )" actionType: DENY displayName: Do not allow members whose email addresses end with "@gmail.com" to be granted roles |
僅允許授予特定角色,且僅授予特定主體。 |
name: organizations/ORG_ID/customConstraints/custom.allowSpecificRolesAndPrincipals resourceTypes: iam.googleapis.com/AllowPolicy methodTypes: - CREATE - UPDATE condition: "resource.bindings.all( binding, RoleNameMatches(binding.role, ['ROLE_1', 'ROLE_2']) && binding.members.all(member, MemberSubjectMatches(member, ['serviceAccount:SERVICE_ACCOUNT', 'group:GROUP']) ) )" actionType: ALLOW displayName: Only allow ROLE_1 and ROLE_2 to be granted to SERVICE_ACCOUNT and GROUP |
禁止將 Cloud Storage 角色授予 allUsers 和 allAuthenticatedUsers 。 |
name: organizations/ORG_ID/customConstraints/custom.denyStorageRolesForPrincipalAllUsers resourceTypes: iam.googleapis.com/AllowPolicy methodTypes: - CREATE - UPDATE condition: "resource.bindings.exists( binding, RoleNameStartsWith(binding.role, ['roles/storage.']) && binding.members.exists(member, MemberSubjectMatches(member, ['allUsers', 'allAuthenticatedUsers']) ) )" actionType: DENY displayName: Do not allow storage roles to be granted to allUsers or allAuthenticatedUsers |
防止機構外部的身分獲得角色。 |
name: organizations/ORG_ID/customConstraints/custom.allowInternaldentitiesOnly resourceTypes: iam.googleapis.com/AllowPolicy methodTypes: - CREATE - UPDATE condition: "resource.bindings.all( binding, binding.members.all(member, MemberInPrincipalSet(member, ['//cloudresourcemanager.googleapis.com/organizations/ORG_ID']) ) )" actionType: ALLOW displayName: Only allow organization members to be granted roles |
只允許將角色授予服務帳戶。 |
name: organizations/ORG_ID/customConstraints/custom.allowServiceAccountsOnly resourceTypes: iam.googleapis.com/AllowPolicy methodTypes: - CREATE - UPDATE condition: "resource.bindings.all( binding, binding.members.all(member, MemberTypeMatches(member, ['iam.googleapis.com/ServiceAccount']) ) )" actionType: ALLOW displayName: Only allow service accounts to be granted roles |
防止從角色繫結中移除 Google 代管服務代理程式。 |
name: organizations/ORG_ID/customConstraints/custom.denyRemovalOfGoogleManagedServiceAgents resource_types: iam.googleapis.com/AllowPolicy method_types: - REMOVE_GRANT condition: |- resource.bindings.all( binding, binding.members.all(member, MemberTypeMatches(member, ['iam.googleapis.com/ServiceAgent']) ) ) action_type: DENY display_name: Deny Removal Of Google-Managed Service Agents description: Restricts the removal of Google-managed service agents from role bindings. Please reach out to your organization admins for if you have any questions. |
有條件的機構政策
您可以使用標記,為自訂機構政策設定條件。舉例來說,假設您編寫了下列自訂限制,禁止授予任何以 roles/storage.
開頭的角色:
name: organizations/ORG_ID/customConstraints/custom.dontgrantStorageRoles
resourceTypes: iam.googleapis.com/AllowPolicy
methodTypes:
- CREATE
- UPDATE
condition:
"resource.bindings.exists(
binding,
RoleNameStartsWith(binding.role, ['roles/storage.'])
)"
actionType: DENY
displayName: Prevent roles that start with "roles/storage." from being granted
如要有條件地強制執行限制,可以建立類似下列的機構政策:
name: organizations/ORG_ID/policies/custom.dontgrantStorageRoles
spec:
rules:
- condition:
expression: "resource.matchTag('ORG_ID/environment', 'dev')"
enforce: true
- enforce: false
這項機構政策會禁止在含有 environment=dev
標記的任何資源上,授予以 roles/storage.
開頭的角色。
身分與存取權管理支援的資源
IAM 支援 AllowPolicy
資源。這項資源具有 resources.bindings
屬性,所有會修改資源允許政策的方法都會傳回這項屬性。所有會修改資源允許政策的方法都會以 setIamPolicy
結尾。
resource.bindings
屬性的結構如下,其中 BINDINGS
是在允許政策變更期間修改的角色繫結陣列:
{
"bindings": {
BINDINGS
}
}
resource.bindings
中的每個繫結都具有下列結構,其中 ROLE
是角色繫結中的角色名稱,MEMBERS
則是已新增至或從角色繫結中移除的所有主體 ID 清單:
{
"role": "ROLE"
"members": {
MEMBERS
}
}
如要查看主要 ID 的格式,請參閱「主要 ID」。
您只能使用支援的函式評估 resource.bindings
屬性和其欄位。系統不支援其他運算子和函式,例如 ==
、!=
、in
、contains
、startsWith
和 endsWith
。
支援的函式
您可以使用下列 CEL 函式,評估繫結中的個別角色和成員。
如要評估 bindings
陣列中的所有繫結,或 members
陣列中的所有成員,請使用 all
和 exists
巨集。詳情請參閱本頁面的「巨集來評估清單」。
您也可以使用邏輯運算子 &&
(and
) 和 ||
(or
) 編寫多部分條件。
函式 | 說明 |
---|---|
RoleNameMatches(
bool
|
如果角色
|
RoleNameStartsWith(
bool
|
如果角色
|
RoleNameEndsWith(
bool
|
如果角色
|
RoleNameContains(
bool
|
如果角色
|
MemberSubjectMatches(
bool
|
如果成員
如果
|
MemberSubjectStartsWith(
bool
|
如果成員
如果
|
MemberSubjectEndsWith(
bool
|
如果成員
如果
|
MemberInPrincipalSet(
bool
|
如果成員屬於至少一個列出的主體集,就會傳回
|
MemberTypeMatches(
bool
|
如果成員是列出的主體類型之一,就會傳回
|
評估清單的巨集
使用 all
和 exists
巨集評估項目清單的條件運算式。
微距 | 說明 |
---|---|
list. all(
bool
|
如果
這個巨集通常用於自訂機構政策,並搭配
|
list. exists(
bool
|
如果
這個巨集通常用於自訂機構政策,搭配
|
含有巢狀清單的條件
一般來說,如果條件包含巢狀清單,您應該為條件中的所有清單使用相同巨集。
請見以下範例:
- 如果政策包含
actionType
ALLOW
,請對members
清單和bindings
清單使用all
巨集,確保只有在所有修改後的繫結中的所有成員都符合條件時,才允許修改政策。 - 如果您的政策具有
actionType
DENY
,請對members
清單和bindings
清單使用exists
巨集,確保如果任何修改後的繫結中的任何成員符合條件,系統就不允許修改政策。
在單一條件中混用巨集,可能會導致條件的行為與預期不符。
舉例來說,假設您想禁止將角色授予 example.com
機構外部的成員,example.com
機構的 ID 為 123456789012
。
為達成這個目標,請撰寫下列條件:
不建議使用 - 條件設定錯誤
"resource.bindings.all( binding, binding.members.exists(member, MemberInPrincipalSet(member, ['//cloudresourcemanager.googleapis.com/organizations/123456789012']) ) )"
這項條件似乎會禁止將角色授予 example.com
機構以外的成員。不過,如果每個修改的角色繫結中「任何」成員位於 example.com
機構,條件就會評估為 true
。因此,如果您也將相同角色授予example.com
機構成員,還是可以將角色授予example.com
機構外部成員。
舉例來說,即使其中一個成員不在 example.com
機構中,下列繫結組合的條件仍會評估為 true
:
"bindings": [ { "members": [ "user:raha@altostrat.com", "user:jie@example.com" ], "role": "roles/resourcemanager.projectCreator" } ],
建議改為編寫類似下列的條件:
建議:條件設定正確
"resource.bindings.all( binding, binding.members.all(member, MemberInPrincipalSet(member, ['//cloudresourcemanager.googleapis.com/organizations/123456789012']) ) )"
針對 members.bindings
陣列和 resource.bindings
陣列使用 all
巨集,可確保只有在所有繫結中的所有成員都位於 example.com
主體集中時,條件才會評估為 true
。
MemberTypeMatches
支援的主體類型
MemberTypeMatches
函式需要您指定指定成員必須符合的主體類型。
下表列出可輸入的主體類型,以及主體類型代表的意義。此外,這份清單也會列出與各主體類型對應的主體 ID。這些 ID 是 IAM 政策中使用的值。
主體類型 | 說明 | 主體 ID |
---|---|---|
iam.googleapis.com/ |
個人 Google 帳戶。這些帳戶的電子郵件地址通常會以 gmail.com 結尾。 |
user:USER_EMAIL_ADDRESS |
iam.googleapis.com/ |
屬於 Cloud Identity 或 Google Workspace 帳戶的 Google 帳戶。這類帳戶也稱為 受管理使用者帳戶。 | user:USER_EMAIL_ADDRESS |
iam.googleapis.com/ |
以 Google 個人帳戶建立的
Google 群組。這些群組不屬於 Cloud Identity 或 Google Workspace 帳戶。這些群組的電子郵件地址通常會以 googlegroups.com 結尾。 |
group:GROUP_EMAIL_ADDRESS |
iam.googleapis.com/ |
由 Cloud Identity 或 Google Workspace 帳戶擁有的 Google 群組。 | group:GROUP_EMAIL_ADDRESS |
iam.googleapis.com/ |
Cloud Identity 或 Google Workspace 帳戶。 | domain:DOMAIN |
iam.googleapis.com/ |
工作團隊身分集區中的單一主體。 | principal://iam.googleapis.com/ |
iam.googleapis.com/ |
主體組合,內含工作團隊身分集區中的一組身分。舉例來說,包含員工身分集區中所有主體的組合。 |
|
iam.googleapis.com/ |
工作負載身分集區中的單一身分 | principal://iam.googleapis.com/projects/ |
iam.googleapis.com/ |
主體組合,內含工作負載身分集區中的一組身分。舉例來說,主體組合包含工作負載身分集區中的所有主體。 |
|
iam.googleapis.com/ |
任何服務帳戶。服務帳戶是一種特殊帳戶,代表工作負載,而非真人使用者。
在 |
serviceAccount:SERVICE_ACCOUNT_EMAIL_ADDRESS |
iam.googleapis.com/ |
任何服務代理。服務代理是一種特殊的服務帳戶,由 Google Cloud 建立及管理。在專案中獲派角色後,服務代理人可讓 Google Cloud 服務代表您執行動作。 | serviceAccount:SERVICE_AGENT_EMAIL_ADDRESS |
iam.googleapis.com/ |
主體 allUsers 和 allAuthenticatedUsers 。 |
|
iam.googleapis.com/ |
根據授予的角色定義主體。這些主體也稱為「便利值」。 |
|
iam.googleapis.com/ |
具有內建身分識別的資源。 | 單一資源的主體 ID 中列出的任何主體 ID。 |
iam.googleapis.com/ |
具有內建身分識別的資源,且這些資源共用特定特徵,例如類型或祖先。 | 資源集的主體 ID 中列出的任何 ID。 |