使用 IAM 控管存取權

本文說明如何使用 Identity and Access Management,控管 Config Connector 建立及管理 Google Cloud 資源的方式。

如要安裝 Config Connector,請先建立 IAM 服務帳戶進行驗證,然後使用 Workload Identity Federation for GKE,將 IAM 服務帳戶與 Kubernetes 服務帳戶繫結。Config Connector 可透過 IAM 對特定資源執行操作。限制指派給服務帳戶的權限,可進一步控管 Config Connector 可建立的資源類型。

您可以選擇使用單一或多個服務帳戶管理資源。

單一服務帳戶

使用 GKE 外掛程式或手動安裝 Config Connector 時,您可以在 ConfigConnector CustomResource 中設定叢集模式。使用叢集模式時,您可以透過單一 IAM 服務帳戶建立及管理資源,即使您使用 Config Connector 管理多個專案也沒問題。

下圖顯示這個模式的運作方式,其中名為 my-service-account 的相同服務帳戶管理兩個專案:

使用單一服務帳戶管理多個專案的 Config Connector

多個服務帳戶

您可以在 ConfigConnector CustomResource 中設定命名空間模式,使用多個服務帳戶。命名空間模式可讓您根據不同 IAM 服務帳戶的相關問題劃分權限,並在不同 Kubernetes 命名空間之間隔離權限,因為您可以為每個命名空間關聯不同的服務帳戶。

如果您符合以下情況,請選擇命名空間模式:

  • 希望在 Kubernetes 命名空間層級隔離 IAM 權限。
  • 預期在單一叢集上管理多個專案的大量 Google Cloud 資源 Google Cloud 。

舉例來說,您可以為每個專案建立一個 IAM 服務帳戶,在同一個 Kubernetes 命名空間中整理每個專案的資源,然後將對應的 IAM 服務帳戶繫結至 Kubernetes 命名空間。這樣一來,您就能為每個專案分別設定 IAM 權限,讓每個專案都有一組不相關的權限。

下圖概述命名空間模式的運作方式,其中每個專案都由不同的服務帳戶管理。專案 1 由 my-service-account 管理,專案 2 由 another-service-account 管理:

Config Connector 使用兩個不同的服務帳戶管理多個專案

在命名空間模式中,每個 IAM 服務帳戶預設都會繫結至命名空間。在該命名空間中建立資源時,Config Connector 會使用這個服務帳戶建立資源。 Google Cloud每個命名空間都有專屬的 Config Connector cnrm-controller-manager Pod,會模擬與命名空間相關聯的 IAM 服務帳戶。

如要瞭解如何設定命名空間模式,請參閱「使用命名空間模式安裝 Config Connector」。

後續步驟