使用 IAM 控管存取權

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

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

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

單一服務帳戶

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

下圖顯示這種模式的運作方式,其中同一個服務帳戶 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」。

後續步驟