IAM 主體

在 Identity and Access Management (IAM) 中,您可以控管「主體」的存取權。主體代表已向 Google Cloud驗證的一或多個身分。

在政策中使用主體

如要在政策中使用主體,請按照下列步驟操作:

  1. 設定可辨識的身分。 Google Cloud 設定身分是建立 Google Cloud 可辨識身分的程序。您可以為使用者和工作負載設定身分。

    如要瞭解如何設定身分,請參閱下列文章:

  2. 判斷要使用的主要 ID。主體 ID 是您在政策中參照主體的方式。這個 ID 可以指單一身分或一組身分。

    您使用的主體 ID 格式取決於下列事項:

    • 主體類型
    • 要將主體納入的政策類型

    如要查看每種政策類型中,各類型主體的原則 ID 格式,請參閱「主體 ID」。

    瞭解 ID 格式後,您就能根據主體的屬性 (例如主體的電子郵件地址),判斷主體的專屬 ID。

  3. 在政策中加入主體的 ID。按照政策格式,將主體新增至政策。

    如要瞭解身分與存取權管理中的不同政策類型,請參閱政策類型

支援主體類型

每種 IAM 政策類型都支援 IAM 支援的部分主體類型。如要查看各項政策類型支援的主體類型,請參閱「主體 ID」。

主體類型

下表簡要說明 IAM 支援的不同主體類型。如要查看在政策中使用主體類型時的詳細說明和範例,請按一下表格中的主體類型名稱。

主體類型 說明 單一主體或主體組合 Google 代管或同盟 政策類型支援
Google 帳戶 代表與 Google API 和服務互動的使用者帳戶。 單一主體 Google 代管

下列政策類型支援 Google 帳戶:

  • 允許
  • 拒絕

下列政策類型不支援 Google 帳戶:

  • 主體存取邊界
服務帳戶 這類帳戶是由機器工作負載使用,而非真人。 單一主體 Google 代管

下列政策類型支援服務帳戶:

  • 允許
  • 拒絕

下列政策類型不支援服務帳戶:

  • 主體存取邊界
Google 網路論壇 這是具名的 Google 帳戶集合,包含人類或機器使用者。

可包含下列項目的主體集:

  • Google 帳戶
  • 服務帳戶
Google 代管

下列政策類型支援 Google 群組:

  • 允許
  • 拒絕

下列政策類型不支援 Google 群組:

  • 主體存取邊界
網域 代表虛擬群組的 Google Workspace 帳戶或 Cloud Identity 網域。群組可以包含使用者和服務帳戶。

主體集,可包含下列主體類型:

  • Google 帳戶
  • 服務帳戶
Google 代管

下列政策類型支援網域:

  • 允許
  • 拒絕
  • 主體存取邊界
allAuthenticatedUsers 這種特殊身分識別代表任何透過 Google 帳戶進行驗證的服務帳戶和使用者。

主體集,可包含下列主體類型:

  • Google 帳戶
  • 服務帳戶
  • 工作團隊身分
  • 工作負載身分
Google 代管

下列政策類型支援部分資源的 allAuthenticatedUsers

  • 允許

下列政策類型不支援 allAuthenticatedUsers

  • 拒絕
  • 主體存取邊界
allUsers 這種特殊 ID 代表網際網路上的所有使用者,包括已驗證和未驗證的使用者。

主體集,可包含下列主體類型:

  • Google 帳戶
  • 服務帳戶
  • 工作團隊身分
  • 工作負載身分
兩者並用

下列政策類型支援 allUsers

  • 允許 (部分資源)
  • 拒絕

下列政策類型不支援 allUsers

  • 主體存取邊界
員工身分集區中的單一身分 身分由外部 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 資源相關聯的一組人員或機器使用者。

主體集,可包含下列主體類型:

  • Google 帳戶
  • 服務帳戶
  • 工作團隊身分
  • 工作負載身分
兩者並用

下列政策類型支援 Resource Manager 主體集:

  • 主體存取邊界

下列政策類型不支援 Resource Manager 主體集:

  • 允許
  • 拒絕

下列各節將詳細說明這些主要類型。

Google 帳戶

Google 帳戶代表開發人員、管理員,或任何其他與 Google Cloud 互動的人員,他們會使用透過 Google 建立的帳戶。與 Google 帳戶相關聯的任何電子郵件地址 (也稱為受管理的使用者帳戶) 都可以做為主體。包括電子郵件地址和含有其他網域的電子郵件地址。gmail.com

以下範例說明如何在不同類型的政策中識別 Google 帳戶:

如要進一步瞭解主體 ID 格式,請參閱「主體 ID」。

在允許和拒絕政策中,與 Google 帳戶或受管理使用者帳戶相關聯的電子郵件別名,會自動替換為主要電子郵件地址。也就是說,當您授予電子郵件別名存取權時,政策會顯示使用者的主要電子郵件地址。

如要進一步瞭解如何設定 Google 帳戶,請參閱「Cloud Identity 或 Google Workspace 帳戶」。

服務帳戶

服務帳戶是應用程式或運算工作負載的帳戶,而非個別使用者的帳戶。執行Google Cloud託管的程式碼時,您可以指定要使用的服務帳戶,做為應用程式的身分。您可以依您所需建立多個服務帳戶,來代表應用程式的不同邏輯元件。

以下範例說明如何在不同類型的政策中識別服務帳戶:

如要進一步瞭解主體 ID 格式,請參閱「主體 ID」。

如要進一步瞭解服務帳戶,請參閱服務帳戶總覽

Google 網路論壇

Google 群組是 Google 帳戶的統稱。每個 Google 群組都有與該群組相關聯的專屬電子郵件地址。如要查看與 Google 網路論壇相關聯的電子郵件地址,請在每個 Google 網路論壇的首頁上按一下「關於」。如要進一步瞭解 Google 網路論壇,請參閱 Google 網路論壇首頁。

Google 群組可輕鬆對一組主體套用存取權控管。您可以一次對整個群組執行存取權授予和變更作業,省去逐一為個別主體執行存取權授予和變更作業的麻煩。您也可以在 Google 群組中新增或移除主體,不必更新允許政策。

Google 群組沒有登入憑證,因此您無法使用 Google 群組建立身分,要求存取資源。

以下範例說明如何在不同類型的政策中識別 Google 群組:

如要進一步瞭解主體 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。請改用下列其中一種做法:

部分資源類型不支援這類主體。

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」。

後續步驟