Kubernetes是一個開源的容器編排引擎,用來對容器化應用進行自動化部署、擴縮和管理。它是一個強大的集群管理系統,提供了豐富的功能。他的一個核心組件是Kubernetes API Server,這是集群中所有資源管理的入口點,提供了一組RESTful API接口,用于管理和操作Kubernetes集群中的各種資源。
為了保障API Server訪問安全,需要對集群用戶或集群中的Pod發起的請求進行鑒權操作,以驗證用戶是否具有訪問操作某種資源的權限。這個過程在Kubernetes集群中是通過RBAC子系統進行的。
Kubernetes的RBAC(Role-Based Access Control)子系統是一種授權機制,用于管理和控制對Kubernetes集群資源的訪問權限。RBAC子系統允許管理員定義不同角色和權限,并將這些角色授予不同的用戶或用戶組。
RBAC子系統由以下幾個核心概念組成:
1.????? Role(角色):是對命名空間作用域的資源一組權限規則,用來授予在某一命名空間中的資源的訪問權限;
2.????? ClusterRole(集群角色):是集群作用域的資源一組權限規則,可以配置不止一個命名空間域和集群作用域的資源的訪問權限;
3.????? RoleBinding(角色綁定):將Role中定義的權限賦予若干“主體”(服務賬戶、用戶或用戶組)
4.????? ClusterRoleBinding(集群角色綁定):將ClusterRole中定義的權限賦予若干“主體”(服務賬戶、用戶或用戶組)
下面簡要說明使用RBAC子系統對用戶進行權限配置的過程:
1.????? 創建角色(Role)或集群角色(ClusterRole):定義一個角色或集群角色,用來描述用戶所擁有的權限。角色的定義包括所能訪問的API組、資源類型(如Pod、Service等)和操作(如get、list、delete等);
2.????? 創建角色綁定(RoleBinding)或集群角色綁定(ClusterRoleBinding):創建一個角色綁定或集群角色綁定,將角色與用戶或用戶組進行關聯;
3.????? 驗證用戶權限:完成角色和角色綁定的創建后,可以使用命令行工具,以當前用戶身份執行命令訪問API資源,檢查用戶權限配置是否符合預期。
傳統的通過命令行操作集群資源的方式操作復雜性比較高、命令行輸出的文本形式可讀性差,容易出現輸入錯誤或遺漏關鍵步驟,并且難以全面了解資源之間的依賴關系和拓撲結構。這些問題給故障排查和安全性監控等方面帶來了困難,增加了運維難度。
為了解決這些問題,浪潮海岳云原生平臺通過對Kubernetes集群權限進行封裝,為用戶提供了便捷的圖形化界面,用于對集群相關權限配置資源進行操作。此外,該平臺還基于RBAC權限模型,提供了數據權限和控制臺權限配置功能,以進一步加強對平臺用戶的權限管理和控制。
浪潮海岳云原生平臺包含的主要特性:
1.????? 支持Kubernetes訪問控制的界面化配置
支持用戶利用圖形化界面對訪問控制資源進行模糊搜索、快速查找,通過操作表單實現權限信息的快速配置,以直觀的方式了解配置的權限信息;
2.????? 支持基于RBAC的菜單權限和數據權限控制
支持根據用戶的角色和職責定義菜單和數據權限,用戶權限修改無須逐個修改每個用戶的權限設置,簡化了用戶操作,同時保證了平臺和集群數據的私密性和安全性;
3.????? 支持集群控制臺和容器控制臺權限控制
支持自動將用戶的權限信息同步至集群控制臺和容器控制臺,確保權限信息始終保持一致,避免用戶通過控制臺操作資源時出現越權問題;
4.????? 支持分級授權控制
支持用戶根據實際需求和業務流程靈活調整組織權限,進行分級授權,因此這一特性特別適用于大型、復雜的組織架構的人員授權。
通過浪潮海岳云原生平臺,用戶可以使用直觀的圖形化界面對Kubernetes權限模型的相關資源進行運維操作,這一操作方式大大降低了運維的門檻,提高了運維的效率。此外,平臺實現了分級授權以及菜單權限和數據權限的細粒度配置,通過將系統用戶權限與集群權限系統之間的無縫對接,使得對不同用戶的權限進行更加精細化的控制成為可能。這種精細化的權限控制不僅提升了集群資源的訪問安全性,也增強了整個平臺系統的安全性。
安利時刻:歡迎大家下載我們的inBuilder開源社區版,可免費下載使用,加入我們,開啟開發之旅!