設定檔適用性:等級 1
舊版授權,也稱為基於屬性的存取控制 (ABAC),已被基於角色的存取控制 (RBAC) 取代,且不再積極開發。RBAC 是在 Kubernetes 中管理權限的推薦方式。
在 Kubernetes 中,RBAC 用於在叢集和命名空間層級授予資源的權限。RBAC 允許定義具有包含一組權限的規則的角色,而 Kubernetes Engine
中的舊版授權者 (ABAC) 則授予廣泛且靜態定義的權限。由於 RBAC 相較於 ABAC 提供了顯著的安全優勢,因此建議作為存取控制的選擇。在可能的情況下,必須為
GKE 叢集停用舊版授權。
注意Kubernetes Engine 叢集執行 GKE 版本 1.8 及以上時,預設會關閉舊版授權系統,因此基於角色的存取控制權限會生效,無需採取特別的處理行動。
|
影響
一旦叢集已停用舊版授權者,必須授予使用者使用 RBAC 創建授權角色的能力,以確保角色型存取控制權限生效。
稽核
使用 Google 雲端主控台:
- 前往Kubernetes Engine 網站。
- 從群集列表中,點擊每個群集以開啟詳細資訊窗格,並確保舊版授權已設為停用。
使用命令列:
要檢查現有叢集的舊授權狀態,請執行以下命令:
gcloud container clusters describe <cluster_name> --zone <compute_zone> --format json | jq '.legacyAbac'
如果舊版授權已停用,則輸出應返回 null (
{})。如果舊版授權已啟動,則上述命令將返回 true 值。補救
使用 Google 雲端主控台:
- 前往Kubernetes Engine 網站。
- 選擇已啟動舊版授權的 Kubernetes 叢集。
- 點擊「EDIT」。
- 將舊版授權設為停用。
- 點擊「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 或更高版本的叢集上已移除。
