古詩詞大全網 - 字典詞典 - 十二 K8S細粒度權限控制

十二 K8S細粒度權限控制

壹個K8S集群並不只有管理員在使用,如果是壹個開發或者壹個測試,就不能有太高的權限,預防出錯。 此時就要通過K8S壹個機制RBAC對權限經行細粒度劃分,例如張三,可設置只能在namespaceA進行操作,不能在其他命名空間操作。

官網: 的用戶:

對於名稱為 frontend-admins 的用戶組:

RoleBinding示例:對於名稱為 alice@example.com 的用戶:

對於任何名稱空間中的 “qa” 組中所有的服務賬戶:

對於所有已經過認證的用戶:

對於所有用戶:

默認 ClusterRole和默認 ClusterRoleBinding 壹些默認的 ClusterRole 不是以前綴 system: 開頭的。這些是面向用戶的角色。 它們包括超級用戶(Super-User)角色(cluster-admin)、 使用 ClusterRoleBinding 在集群範圍內完成授權的角色(cluster-status)、 以及使用 RoleBinding 在特定名字空間中授予的角色(admin、edit、view)。 面向用戶的 ClusterRole 使用 ClusterRole 聚合以允許管理員在 這些 ClusterRole 上添加用於定制資源的規則。如果想要添加規則到 admin、edit 或者 view, 可以創建帶有以下壹個或多個標簽的 ClusterRole:

假設有2個ClusterRole,ClusterRoleA和ClusterRoleB,ClusterRoleA設置了rule並打上了標簽,ClusterRoleB就可以引用A的標簽,ClusterRoleB就會自動補上ClusterRoleA的rule.

示例:

驗證:創建sa,並查看sa創建的secret,獲得token

創建壹個名稱叫test-aggregation的clusterrolebinding,把clusterrole:test-aggregation授權給SA:default命名空間下 的test-aggregation

登錄測試,發現並沒有權限,只能登錄

創建b-ClusterRole,使其聚合a-ClusterRole

再次驗證,發現可以查看命名空間和svc等監控

問題:

1.創建壹個名為deployment-clusterrole的clusterrole

a)該clusterrole只允許創建Deployment、Daemonset、Statefulset的create操作

2.在名字為app-team1的namespace下創建壹個名為cicd-token的serviceAccount,並且將上壹步創建clusterrole的權限綁定到該serviceAccount

實操:

創建namespace和serviceAccount

創建名為deployment-clusterrole的clusterrole

綁定權限並查看

編輯壹份deployment模板

驗證:通過sa創建的secret的token登錄dashboard,選擇右上+,選擇app-team1參試創建yaml,發下最終有權限創建。

通過token登錄dashboard

最後查看deployment,已創建

企業中的權限劃分:

2.根據需求先創建2個用戶dotbalo,dukuan(sa,通過Sa創建的secret的token管理節點)

3.根據需求總***有4中權限分別是只讀命名空間,刪除日誌,執行pod命名,查看日誌,然後創建4種權限的ClusterRole

4.綁定全局命名空間查看權限(clusterrolebinding)

5.綁定用戶dotbalo兩個命名空間default、kube-system的查看pod日誌的權限(rolebinding)

6.綁定用戶dukuan在deefault中執行pod命令權限和刪除Pod權限

1.Kubernetes多集群圖形化管理工具Ratel介紹&使用

2.圖形化管理Kubernetes多租戶權限