設定檔適用性:等級 1
舊版授權,也稱為屬性為基礎的存取控制(ABAC),已被角色為基礎的存取控制(RBAC)取代,且不再積極開發。RBAC 是在 Kubernetes 中管理權限的建議方式。
在 Kubernetes 中,RBAC 用於在叢集和命名空間層級授予資源的權限。RBAC 允許定義具有一組權限規則的角色,而 Kubernetes Engine 中的傳統授權者(ABAC)則授予廣泛且靜態定義的權限。
由於 RBAC 相較於 ABAC 提供了顯著的安全優勢,因此建議作為存取控制的選擇。在可能的情況下,必須為 GKE Clusters 停用舊版授權。
注意Kubernetes 引擎叢集運行 GKE 版本 1.8 及更高版本時,預設會關閉舊版授權系統,因此基於角色的存取控制權限會自動生效,無需採取特別的處理行動。
|
注意在執行 GKE 1.6 或 1.7 的叢集中,Kubernetes 服務帳戶預設具有 Kubernetes API 的完整權限。為確保角色型存取控制權限對 Kubernetes
服務帳戶生效,必須在建立或更新叢集時使用選項
--no-enable-legacy-authorization。此要求在執行 GKE 1.8 或更高版本的叢集中已移除。 |
影響
一旦叢集停用舊版授權者,必須授予使用者使用 RBAC 創建授權角色的能力,以確保角色型存取控制權限生效。
稽核
使用 Google Cloud 主控台:
- 前往 Kubernetes Engine,請造訪:Google Cloud Console Kubernetes Engine 頁面。
- 從群集列表中,點擊每個群集以打開詳細資訊窗格,並確保舊版授權設置為已停用。
使用命令列:
要檢查現有叢集的舊版授權狀態,首先定義叢集名稱、位置資訊和專案的三個變數,然後執行以下命令:
gcloud container clusters describe $CLUSTER_NAME --location $LOCATION -- project $PROJECT_ID --format json | jq '.legacyAbac'
如果舊版授權已停用,則輸出應返回 (
null) null。若舊版授權已啟動,則上述命令將返回 true 值。補救
使用 Google Cloud 主控台:
- 前往 Kubernetes Engine,請造訪:Google Cloud Console Kubernetes Engine 頁面。
- 選擇已啟動傳統授權的 Kubernetes 叢集。
- 點擊編輯。
- 將舊版授權設為停用。
- 點擊儲存。
使用命令列:
要關閉現有叢集的舊版授權,請執行以下命令:
gcloud container clusters update <cluster_name> --location <location> --no- enable-legacy-authorization
