檢視次數:
設定檔適用性:等級 1
舊版授權,也稱為基於屬性的存取控制 (ABAC),已被基於角色的存取控制 (RBAC) 取代,且不再積極開發。RBAC 是在 Kubernetes 中管理權限的推薦方式。
在 Kubernetes 中,RBAC 用於在叢集和命名空間層級授予資源的權限。RBAC 允許定義具有包含一組權限的規則的角色,而 Kubernetes Engine 中的舊版授權者 (ABAC) 則授予廣泛且靜態定義的權限。由於 RBAC 相較於 ABAC 提供了顯著的安全優勢,因此建議作為存取控制的選擇。在可能的情況下,必須為 GKE 叢集停用舊版授權。
注意
注意
Kubernetes Engine 叢集執行 GKE 版本 1.8 及以上時,預設會關閉舊版授權系統,因此基於角色的存取控制權限會生效,無需採取特別的處理行動。

影響

一旦叢集已停用舊版授權者,必須授予使用者使用 RBAC 創建授權角色的能力,以確保角色型存取控制權限生效。

稽核

使用 Google 雲端主控台:
  1. 前往Kubernetes Engine 網站
  2. 從群集列表中,點擊每個群集以開啟詳細資訊窗格,並確保舊版授權已設為停用。
使用命令列:
要檢查現有叢集的舊授權狀態,請執行以下命令:
gcloud container clusters describe <cluster_name> --zone <compute_zone> 
--format json | jq '.legacyAbac'
如果舊版授權已停用,則輸出應返回 null ({})。如果舊版授權已啟動,則上述命令將返回 true 值。

補救

使用 Google 雲端主控台:
  1. 前往Kubernetes Engine 網站
  2. 選擇已啟動舊版授權的 Kubernetes 叢集。
  3. 點擊「EDIT」
  4. 將舊版授權設為停用。
  5. 點擊「SAVE」
使用命令列:
要關閉現有叢集的舊版授權,請執行以下命令:
gcloud container clusters update <cluster_name> --zone <compute_zone> 
--no-enable-legacy-authorization

其他資訊:

在執行 GKE 1.6 或 1.7 的叢集上,Kubernetes 服務帳戶預設擁有 Kubernetes API 的完整權限。為確保角色型存取控制權限對 Kubernetes 服務帳戶生效,必須使用選項 --no-enable-legacy-authorization 來建立或更新叢集。此要求在執行 GKE 1.8 或更高版本的叢集上已移除。