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