存取權控管總覽

當您建立 Google Cloud Platform 專案時,您是專案的唯一使用者。根據預設,其他使用者都不能存取您的專案或專案資源 (包括 Google Kubernetes Engine 資源)。Google Kubernetes Engine 支援使用角色型存取權控管 (RBAC),可讓您透過多種選項來管理專案及其叢集內資源的存取權。

這些機制有部分功能重疊,但是以不同類型的資源為目標。我們將於以下部分逐一提供簡單扼要的說明:

  • Kubernetes 內建 Kubernetes RBAC,可針對 Kubernetes 叢集內的物件授予精細的權限。權限是以 ClusterRole 或角色物件的形式存在於叢集內。RoleBinding 物件可將角色授予 Kubernetes 使用者、GCP 使用者、GCP 服務帳戶或 Google 網路論壇 (Beta 版)

    如果您主要都是使用 GKE,且叢集內的所有物件和作業都需要精細的權限設定,Kubernetes RBAC 會是最佳選擇。

  • Cloud IAM 會管理 GCP 資源,包括叢集,以及叢集內的物件類型。權限會指派給存在於 GCP、G Suite 或 Cloud Identity 內的 Cloud IAM 成員

    沒有任何可針對 Cloud IAM 內特定 Kubernetes 物件授予權限的機制。舉例來說,您可以授予使用者建立 CustomResourceDefinitions (CRD) 的權限,但您無法授予使用者只建立一個特定 CustomResourceDefinition 的權限,或將建立動作限定於特定命名空間,或限定於專案中的特定叢集。Cloud IAM 角色可授予專案中所有叢集間的權限,或所有子專案中所有叢集的權限 (如果該角色是在資料夾層級套用)。

    如果您使用多個 GCP 元件,且不需要管理精細的 Kubernetes 特定權限,Cloud Identity and Access Management 是個不錯的選擇。

Kubernetes RBAC

Kubernetes 可提供內建 RBAC 支援,可讓您建立存在於 Kubernetes 叢集內的精細角色。角色的範圍可界定於某個特定 Kubernetes 物件或某種類型的 Kubernetes 物件,以及定義角色針對該物件授予哪些相關動作 (稱為動詞)。RoleBinding 也是一種 Kubernetes 物件,且可將角色授予使用者。在 GKE 中,使用者可以是下列任何一種:

  • GCP 使用者
  • GCP 服務帳戶
  • Kubernetes 服務帳戶
  • G Suite 使用者
  • G Suite Google 網路論壇 (Beta 版)

詳情請參閱角色型存取權控管

Cloud IAM

Cloud Identity and Access Management 可讓您定義角色,並將角色指派給成員。角色其實就是一組權限,指派給成員後,即可控制一或多項 GCP 資源 的存取權。 角色概略分為以下三類:

成員可以是下列任何一種:

  • Google 帳戶
  • 服務帳戶
  • Google 群組
  • G Suite 網域
  • Cloud Identity 網域

Cloud IAM 政策可指派一組權限給一或多個 Google Cloud Platform 成員。

您也可以使用 Cloud IAM 來建立並設定服務帳戶,這類帳戶是與專案相關聯的 GCP 帳戶,可代表您執行工作。您必須為服務帳戶指派角色和權限,指派方式與指派人類使用者的角色和權限相同。

服務帳戶也提供其他功能。詳情請參閱建立 Cloud IAM 政策

後續步驟