檢視次數:
設定檔適用性:等級 1
舊版授權,也稱為基於屬性的存取控制 (ABAC),已被基於角色的存取控制 (RBAC) 取代,並且不再積極開發。RBAC 是在 Kubernetes 中管理權限的推薦方式。
在 Kubernetes 中,RBAC 用於在叢集和命名空間層級授予資源的權限。RBAC 允許定義包含一組權限的角色,而 Kubernetes Engine 中的舊版授權者 (ABAC) 則授予廣泛且靜態定義的權限。由於 RBAC 在存取控制方面提供了比 ABAC 更顯著的安全優勢,因此建議選擇 RBAC。若有可能,必須為 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 或更高版本的叢集上已移除。