IAM 主體

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

在政策中使用主體

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

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

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

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

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

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

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

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

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

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

支援主體類型

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

主體類型

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

主體類型 說明 單一主體或主體組合 Google 代管或同盟 政策類型支援
服務帳戶 這類帳戶是由機器工作負載使用,而非真人。 單一主體 Google 代管

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

  • 允許
  • 拒絕
一組服務帳戶 專案、資料夾或機構中的所有服務帳戶。 包含服務帳戶的主體集。 Google 代管

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

  • 允許
  • 拒絕
一組服務專員 與專案、資料夾或機構相關聯的所有 Google 代管服務帳戶 (服務代理)。 包含服務代理的主體集。 Google 代管

下列政策類型支援一組服務代理人:

  • 拒絕

下列政策類型不支援一組服務專員:

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

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

  • Google 帳戶
  • 服務帳戶
  • 工作團隊身分
  • Workload Identity
Google 代管

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

  • 允許

下列政策類型不支援 allAuthenticatedUsers

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

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

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

下列政策類型支援 allUsers

  • 允許 (部分資源)
  • 拒絕
員工身分集區中的單一身分 身分由外部 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) 管理。如要納入聯合身分,請使用下列其中一種做法:

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

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

後續步驟