在 Identity and Access Management (IAM) 中,您可以控管「主體」的存取權。主體代表已向 Google Cloud驗證的一或多個身分。
在政策中使用主體
如要在政策中使用主體,請按照下列步驟操作:
設定可辨識的身分。 Google Cloud 設定身分是建立 Google Cloud 可辨識身分的程序。您可以為使用者和工作負載設定身分。
如要瞭解如何設定身分,請參閱下列文章:
判斷要使用的主要 ID。主體 ID 是您在政策中參照主體的方式。這個 ID 可以指單一身分或一組身分。
您使用的主體 ID 格式取決於下列事項:
- 主體類型
- 要將主體納入的政策類型
如要查看每種政策類型中,各類型主體的原則 ID 格式,請參閱「主體 ID」。
瞭解 ID 格式後,您就能根據主體的屬性 (例如主體的電子郵件地址),判斷主體的專屬 ID。
在政策中加入主體的 ID。按照政策格式,將主體新增至政策。
如要瞭解身分與存取權管理中的不同政策類型,請參閱政策類型。
支援主體類型
每種 IAM 政策類型都支援 IAM 支援的部分主體類型。如要查看各項政策類型支援的主體類型,請參閱「主體 ID」。
主體類型
下表簡要說明 IAM 支援的不同主體類型。如要查看在政策中使用主體類型時的詳細說明和範例,請按一下表格中的主體類型名稱。
主體類型 | 說明 | 單一主體或主體組合 | Google 代管或同盟 | 政策類型支援 |
---|---|---|---|---|
Google 帳戶 | 代表與 Google API 和服務互動的使用者帳戶。 | 單一主體 | Google 代管 |
下列政策類型支援 Google 帳戶:
下列政策類型不支援 Google 帳戶:
|
服務帳戶 | 這類帳戶是由機器工作負載使用,而非真人。 | 單一主體 | Google 代管 |
下列政策類型支援服務帳戶:
下列政策類型不支援服務帳戶:
|
Google 網路論壇 | 這是具名的 Google 帳戶集合,包含人類或機器使用者。 |
可包含下列項目的主體集:
|
Google 代管 |
下列政策類型支援 Google 群組:
下列政策類型不支援 Google 群組:
|
網域 | 代表虛擬群組的 Google Workspace 帳戶或 Cloud Identity 網域。群組可以包含使用者和服務帳戶。 |
主體集,可包含下列主體類型:
|
Google 代管 |
下列政策類型支援網域:
|
allAuthenticatedUsers |
這種特殊身分識別代表任何透過 Google 帳戶進行驗證的服務帳戶和使用者。 |
主體集,可包含下列主體類型:
|
Google 代管 |
下列政策類型支援部分資源的
下列政策類型不支援
|
allUsers |
這種特殊 ID 代表網際網路上的所有使用者,包括已驗證和未驗證的使用者。 |
主體集,可包含下列主體類型:
|
兩者並用 |
下列政策類型支援
下列政策類型不支援
|
員工身分集區中的單一身分 | 身分由外部 IdP 管理,並透過員工身分聯盟進行聯盟的真人使用者。 | 單一主體 | 聯合 |
下列政策類型支援工作團隊身分集區中的單一身分:
|
員工身分集區中的一組主體 | 一組使用者,其身分由外部 IdP 管理,並透過員工身分聯盟進行同盟。 | 包含員工身分的主體組合。 | 聯合 |
下列政策類型支援工作團隊身分集區中的一組主體:
|
Workload Identity Pool 中的單一主體 | 身分由外部 IdP 管理,並透過 Workload Identity 聯盟進行連結的工作負載 (或機器使用者)。 | 單一主體 | 聯合 |
下列政策類型支援 workload identity pool 中的單一主體:
|
工作負載身分集區中的一組主體 | 一組工作負載 (或機器使用者),其身分由外部 IdP 管理,並透過 Workload Identity Federation 進行同盟。 | 包含工作負載身分的主體集 | 聯合 |
下列政策類型支援 workload identity pool 中的一組主體:
|
一組 Google Kubernetes Engine Pod | 在 GKE 上執行並透過 GKE 聯合的工作負載 (或機器使用者)。 | 主體集,可包含一或多個聯合工作負載身分 | 聯合 |
下列政策類型支援 GKE Pod:
下列政策類型不支援 GKE Pod:
|
Resource Manager 主體集 | 與專案、資料夾和機構等 Google Cloud 資源相關聯的一組人員或機器使用者。 |
主體集,可包含下列主體類型:
|
兩者並用 |
下列政策類型支援 Resource Manager 主體集:
下列政策類型不支援 Resource Manager 主體集:
|
下列各節將詳細說明這些主要類型。
Google 帳戶
Google 帳戶代表開發人員、管理員,或任何其他與 Google Cloud 互動的人員,他們會使用透過 Google 建立的帳戶。與 Google 帳戶相關聯的任何電子郵件地址 (也稱為受管理的使用者帳戶) 都可以做為主體。包括電子郵件地址和含有其他網域的電子郵件地址。gmail.com
以下範例說明如何在不同類型的政策中識別 Google 帳戶:
- 允許政策:
user:[email protected]
- 拒絕政策:
principal://goog/subject/[email protected]
如要進一步瞭解主體 ID 格式,請參閱「主體 ID」。
在允許和拒絕政策中,與 Google 帳戶或受管理使用者帳戶相關聯的電子郵件別名,會自動替換為主要電子郵件地址。也就是說,當您授予電子郵件別名存取權時,政策會顯示使用者的主要電子郵件地址。
如要進一步瞭解如何設定 Google 帳戶,請參閱「Cloud Identity 或 Google Workspace 帳戶」。
服務帳戶
服務帳戶是應用程式或運算工作負載的帳戶,而非個別使用者的帳戶。執行Google Cloud託管的程式碼時,您可以指定要使用的服務帳戶,做為應用程式的身分。您可以依您所需建立多個服務帳戶,來代表應用程式的不同邏輯元件。
以下範例說明如何在不同類型的政策中識別服務帳戶:
- 允許政策:
serviceAccount:[email protected]
- 拒絕政策:
principal://iam.googleapis.com/projects/-/serviceAccounts/[email protected]
如要進一步瞭解主體 ID 格式,請參閱「主體 ID」。
如要進一步瞭解服務帳戶,請參閱服務帳戶總覽。
Google 網路論壇
Google 群組是 Google 帳戶的統稱。每個 Google 群組都有與該群組相關聯的專屬電子郵件地址。如要查看與 Google 網路論壇相關聯的電子郵件地址,請在每個 Google 網路論壇的首頁上按一下「關於」。如要進一步瞭解 Google 網路論壇,請參閱 Google 網路論壇首頁。
Google 群組可輕鬆對一組主體套用存取權控管。您可以一次對整個群組執行存取權授予和變更作業,省去逐一為個別主體執行存取權授予和變更作業的麻煩。您也可以在 Google 群組中新增或移除主體,不必更新允許政策。
Google 群組沒有登入憑證,因此您無法使用 Google 群組建立身分,要求存取資源。
以下範例說明如何在不同類型的政策中識別 Google 群組:
- 允許政策:
group:[email protected]
- 拒絕政策:
principalSet://goog/group/[email protected]
如要進一步瞭解主體 ID 格式,請參閱「主體 ID」。
如要進一步瞭解如何使用群組控管存取權,請參閱使用 Google 群組的最佳做法。
網域
網域可以是 Google Workspace 帳戶或 Cloud Identity 網域。兩者本質上相同,因為都代表所含所有 Google 帳戶的虛擬群組。唯一不同的是,Cloud Identity 網域使用者無法存取 Google Workspace 應用程式和功能。
Google Workspace 帳戶和 Cloud Identity 網域與貴機構的網際網路網域名稱 (例如 example.com
) 相關聯。
為新使用者 (例如 [email protected]
) 建立 Google 帳戶時,該帳戶會新增至 Google Workspace 帳戶或 Cloud Identity 網域的虛擬群組。
與 Google 群組類似,網域無法用於建立身分,但可讓您輕鬆管理權限。
以下範例說明如何在不同類型的政策中找出網域:
- 允許政策:
domain:example.com
- 拒絕政策:
principalSet://goog/cloudIdentityCustomerId/C01Abc35
- 主體存取邊界政策:
//iam.googleapis.com/locations/global/workspace/C01Abc35
如要進一步瞭解主體 ID 格式,請參閱「主體 ID」。
如要進一步瞭解 Cloud Identity,請參閱「關於 Cloud Identity」。
在允許和拒絕政策中,系統會自動將次要網域替換為主網域。也就是說,當您授予次要網域的存取權時,政策會顯示主網域。
allAuthenticatedUsers
allAuthenticatedUsers
值是一種特殊身分識別,代表任何透過 Google 帳戶進行驗證的服務帳戶和使用者。這個識別包含未連結至 Google Workspace 帳戶或 Cloud Identity 網域的帳戶,例如個人 Gmail 帳戶。未通過驗證的使用者,如匿名訪客,不會具有這個識別碼。
這類主體不包含由外部身分識別提供者 (IdP) 管理的聯合身分。如果您使用員工身分聯盟或 Workload Identity 聯盟,請勿使用 allAuthenticatedUsers
。請改用下列其中一種做法:
- 如要納入所有 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/[email protected]
- 拒絕政策中的一組主體:
principalSet://iam.googleapis.com/locations/global/workforcePools/altostrat-contractors/group/[email protected]
- 主體存取邊界政策:
//iam.googleapis.com/locations/global/workforcePools/example-workforce-pool
如要進一步瞭解主體 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/[email protected]
- 拒絕政策中的主體群組:
principalSet://iam.googleapis.com/projects/123456789012/locations/global/workloadIdentityPools/altostrat-contractors/group/[email protected]
- 主體存取邊界政策:
//iam.googleapis.com/projects/123456789012/locations/global/workloadIdentityPools/example-workload-pool
如要進一步瞭解主體 ID 格式,請參閱「主體 ID」。
GKE Pod
在 GKE 上執行的工作負載會使用 Workload Identity Federation for GKE 存取 Google Cloud 服務。如要進一步瞭解 GKE Pod 的主體 ID,請參閱「在 IAM 政策中參照 Kubernetes 資源」。
下列範例說明如何在允許政策中,識別特定叢集中的所有 GKE Pod:
principalSet://iam.googleapis.com/projects/123456789012/locations/global/workloadIdentityPools/123456789012.svc.id.goog/kubernetes.cluster/https://container.googleapis.com/v1/projects/123456789012/locations/global/clusters/example-gke-cluster
如要進一步瞭解主體 ID 格式,請參閱「主體 ID」。
Resource Manager 主體集
每個 Resource Manager 資源 (專案、資料夾和機構) 都會與一組主體建立關聯。建立主體存取權範圍政策繫結時,您可以使用 Resource Manager 資源的主體集,參照與該資源相關聯的所有主體。
Resource Manager 資源的主體集包含下列主體:
- 專案主體集:指定專案中的所有服務帳戶和工作負載身分集區。
- 資料夾主體集:指定資料夾中任何專案的所有服務帳戶和所有工作負載身分集區。
機構主體組合:包含下列身分:
- 與 Google Workspace 客戶 ID 相關聯的所有網域中的所有身分
- 貴機構中的所有員工身分集區
- 機構中任何專案的所有服務帳戶和工作負載身分池
以下範例說明如何識別專案主體集的主體存取邊界政策中,專案的主體集:
//cloudresourcemanager.googleapis.com/projects/example-project
如要進一步瞭解主體 ID 格式,請參閱「主體 ID」。