在 Identity and Access Management (IAM) 中,您可以控管「主體」的存取權。主體代表已向 Cloud de Confiance驗證的一或多個身分。
在政策中使用主體
如要在政策中使用主體,請按照下列步驟操作:
設定可辨識的身分。 Cloud de Confiance 設定身分是建立 Cloud de Confiance 可辨識身分的程序。您可以為使用者和工作負載設定身分。
如要瞭解如何設定身分,請參閱下列文章:
判斷要使用的主要 ID。主體 ID 是您在政策中參照主體的方式。這個 ID 可以指單一身分或一組身分。
您使用的主體 ID 格式取決於下列事項:
- 主體類型
- 要將主體納入的政策類型
如要查看每種政策類型中,各類型主體的原則 ID 格式,請參閱「主體 ID」。
瞭解 ID 格式後,您就能根據主體的屬性 (例如主體的電子郵件地址),判斷主體的專屬 ID。
在政策中加入主體的 ID。按照政策格式,將主體新增至政策。
如要瞭解身分與存取權管理中的不同政策類型,請參閱政策類型。
支援主體類型
每種 IAM 政策類型都支援 IAM 支援的部分主體類型。如要查看各項政策類型支援的主體類型,請參閱「主體 ID」。
主體類型
下表簡要說明 IAM 支援的不同主體類型。如要查看在政策中使用主體類型時的詳細說明和範例,請按一下表格中的主體類型名稱。
| 主體類型 | 說明 | 單一主體或主體組合 | Google 代管或同盟 | 政策類型支援 |
|---|---|---|---|---|
| 服務帳戶 | 這類帳戶是由機器工作負載使用,而非真人。 | 單一主體 | Google 代管 |
下列政策類型支援服務帳戶:
|
| 一組服務帳戶 | 專案、資料夾或機構中的所有服務帳戶。 | 包含服務帳戶的主體集。 | Google 代管 |
下列政策類型支援一組服務帳戶:
|
| 一組服務專員 | 與專案、資料夾或機構相關聯的所有 Google 代管服務帳戶 (服務代理)。 | 包含服務代理的主體集。 | Google 代管 |
下列政策類型支援一組服務代理人:
下列政策類型不支援一組服務專員:
|
allAuthenticatedUsers |
這種特殊身分識別代表任何透過 Google 帳戶進行驗證的服務帳戶和使用者。 |
主體集,可包含下列主體類型:
|
Google 代管 |
下列政策類型支援部分資源的
下列政策類型不支援
|
allUsers |
這種特殊 ID 代表網際網路上的所有使用者,包括已驗證和未驗證的使用者。 |
主體集,可包含下列主體類型:
|
兩者並用 |
下列政策類型支援
|
| 員工身分集區中的單一身分 | 身分由外部 IdP 管理,並透過員工身分聯盟進行聯盟的真人使用者。 | 單一主體 | 聯合 |
下列政策類型支援工作團隊身分集區中的單一身分:
|
| 員工身分集區中的一組主體 | 一組使用者,其身分由外部 IdP 管理,並透過員工身分聯盟進行同盟。 | 包含員工身分的主體組合。 | 聯合 |
下列政策類型支援工作團隊身分集區中的一組主體:
|
| Workload Identity Pool 中的單一主體 | 身分由外部 IdP 管理,並透過 Workload Identity 聯盟進行連結的工作負載 (或機器使用者)。 | 單一主體 | 聯合 |
下列政策類型支援 workload identity pool 中的單一主體:
|
| 工作負載身分集區中的一組主體 | 一組工作負載 (或機器使用者),其身分由外部 IdP 管理,並透過 Workload Identity Federation 進行聯盟。 | 包含 Workload Identity 的主體組合 | 聯合 |
下列政策類型支援 workload identity pool 中的一組主體:
|
| 一組 Google Kubernetes Engine Pod | 在 GKE 上執行並透過 GKE 聯合的工作負載 (或機器使用者)。 | 主體集,可包含一或多個聯合工作負載身分 | 聯合 |
下列政策類型支援 GKE Pod:
下列政策類型不支援 GKE Pod:
|
下列各節將詳細說明這些主要類型。
服務帳戶
服務帳戶是應用程式或運算工作負載的帳戶,而非個別使用者的帳戶。服務帳戶可分為使用者代管服務帳戶和 Google 代管服務帳戶,後者稱為「服務代理」:
執行 Cloud de Confiance上託管的程式碼時,您可以指定要使用的服務帳戶做為應用程式的身分。您可以視需要建立多個使用者管理的服務帳戶,代表應用程式的不同邏輯元件。
部分 Cloud de Confiance 服務需要存取您的資源,才能代表您執行動作。為滿足這項需求,Google 會建立及管理服務代理。
您可以透過下列方式參照服務帳戶和服務代理:
- 單一服務帳戶
- 專案中的所有服務帳戶
- 與專案相關聯的所有服務代理程式。
- 資料夾中所有專案的所有服務帳戶
- 與資料夾及其子項相關聯的所有服務代理程式
- 機構中所有專案的所有服務帳戶
- 與機構及其子系相關聯的所有服務代理程式
以下範例說明如何在不同類型的政策中找出個別服務帳戶:
- 允許政策中的服務帳戶:
serviceAccount:my-service-account@my-project.s3ns.iam.gserviceaccount.com - 拒絕政策中的服務帳戶:
principal://iam.googleapis.com/projects/-/serviceAccounts/my-service-account@my-project.s3ns.iam.gserviceaccount.com
下列範例說明如何在不同類型的政策中,找出專案、資料夾或機構的所有服務帳戶:
- 允許政策中專案的所有服務帳戶:
principalSet://cloudresourcemanager.googleapis.com/projects/123456789012/type/ServiceAccount - 拒絕政策中與資料夾相關聯的所有服務代理:
principalSet://cloudresourcemanager.googleapis.com/folders/123456789012/type/ServiceAgent
如要進一步瞭解主體 ID 格式,請參閱「主體 ID」。
如要進一步瞭解服務帳戶,請參閱下列頁面:
allAuthenticatedUsers
allAuthenticatedUsers 值是一種特殊身分識別,代表所有服務帳戶。
這個主體類型不包含聯合身分,這類身分是由外部身分識別提供者 (IdP) 管理。如要納入聯合身分,請使用下列其中一種做法:
- 如要納入所有 IdP 的使用者,請使用
allUsers。 - 如要納入特定外部 IdP 的使用者,請使用員工身分集區中的所有身分或workload identity pool 中的所有身分的 ID。
部分資源類型不支援這個主體類型。
allUsers
allUsers 值是一個特殊識別碼,代表網際網路上的任何使用者,包括已驗證和未驗證的使用者。
部分資源類型不支援這個主體類型。
以下範例說明不同類型的政策中,allUsers ID 可能的樣貌:
- 支援資源類型的允許政策:
allUsers - 拒絕政策:
principalSet://goog/public:all
如要進一步瞭解主體 ID 格式,請參閱「主體 ID」。
員工身分集區中的聯合身分
工作團隊身分集區是一組使用者身分,由外部 IdP 管理,並透過員工身分聯盟進行聯合。您可以透過下列方式參照這些集區中的主體:
- 工作團隊身分集區中的單一身分
- 指定群組中的所有員工身分
- 具有特定屬性值的所有員工身分
- 員工身分集區中的所有身分
以下範例說明如何在不同類型的政策中,識別同盟工作人員身分集區:
- 允許政策中的單一身分:
principal://iam.googleapis.com/locations/global/workforcePools/altostrat-contractors/subject/raha@altostrat.com - 拒絕政策中的一組身分:
principalSet://iam.googleapis.com/locations/global/workforcePools/altostrat-contractors/group/administrators-group@altostrat.com
如要進一步瞭解主體 ID 格式,請參閱「主體 ID」。
Workload Identity Pool 中的聯合身分
工作負載身分集區是由外部 IdP 管理的一組工作負載身分,並透過 Workload Identity 聯盟進行聯盟。您可以透過下列方式參照這些集區中的主體:
- Workload Identity Pool 中的單一身分
- 指定群組中的所有工作負載身分
- 具有特定屬性值的所有工作負載身分
- 特定 workload identity pool 中的所有身分
下列範例說明如何在不同類型的政策中,識別聯盟工作負載身分集區:
- 允許政策中的單一身分:
principal://iam.googleapis.com/projects/123456789012/locations/global/workloadIdentityPools/altostrat-contractors/subject/raha@altostrat.com - 拒絕政策中的一組身分:
principalSet://iam.googleapis.com/projects/123456789012/locations/global/workloadIdentityPools/altostrat-contractors/group/administrators-group@altostrat.com
如要進一步瞭解主體 ID 格式,請參閱「主體 ID」。
GKE Pod
在 GKE 上執行的工作負載會使用 Workload Identity Federation for GKE 存取 Cloud de Confiance 服務。如要進一步瞭解 GKE Pod 的主體 ID,請參閱「在 IAM 政策中參照 Kubernetes 資源」。
以下範例說明如何在允許政策中,識別特定叢集中的所有 GKE Pod:
principalSet://iam.googleapis.com/projects/123456789012/locations/global/workloadIdentityPools/123456789012.s3ns.svc.id.goog/kubernetes.cluster/https://container.googleapis.com/v1/projects/123456789012/locations/global/clusters/example-gke-cluster
如要進一步瞭解主體 ID 格式,請參閱「主體 ID」。