設定檔適用性:等級 1
RBAC 角色
cluster-admin 提供對環境的廣泛權限,應僅在必要時使用。Kubernetes 提供了一組使用 RBAC 的預設角色。其中一些角色如
cluster-admin 提供了廣泛的權限,應僅在絕對必要時使用。像 cluster-admin 這樣的角色允許超級使用者訪問,以對任何資源執行任何操作。在
ClusterRoleBinding中使用時,它賦予對叢集中所有資源及所有命名空間的完全控制。在RoleBinding中使用時,它賦予對角色綁定命名空間中每個資源的完全控制,包括命名空間本身。
注意預設情況下,提供了一個名為
cluster-admin 的單一 clusterrolebinding,其主要群組為 system:masters。 |
影響
在從環境中移除任何
clusterrolebindings 之前,應謹慎行事,以確保它們不是集群運行所需的。特別是,不應對具有 system: 前綴的 clusterrolebindings 進行修改,因為它們是系統組件運行所必需的。稽核
檢查每個具有
cluster-admin角色訪問權限的角色綁定的clusterrolebinding輸出,以獲取有權訪問cluster-admin角色的主體列表。以下是一個簡潔且有效的 CLI 語句,用於列出所有綁定至
cluster-admin 角色的主體(使用者、群組或服務帳戶):kubectl get clusterrolebinding -o jsonpath='{range .items[?(@.roleRef.name=="cluster-admin")]}{.metadata.name}{"\n"}{range .subjects[*]}{.kind}{"\t"}{.name}{"\n"}{end}{"\n"}{end}'
檢查每個列出的主體,並確保它需要
cluster-admin權限。補救
識別所有與
cluster-admin角色相關的clusterrolebindings。檢查它們是否被使用,以及是否需要此角色,或者是否可以使用權限較少的角色。在可能的情況下,先將使用者綁定到較低權限的角色,然後移除
cluster-admin角色的clusterrolebinding:kubectl delete clusterrolebinding [name]
