來自博客:25-k8s集群中-RBAC用戶角色資源權限_權限 資源 角色-CSDN博客
一.RBAC概述(基于角色的訪問控制)
1.圖解
用戶:
? ? ? ? 1.user
? ? ? ? 2.serviceAccount
? ? ? ? 3.Group
用戶角色
? ? ? ? 1.Role:局部資源角色
? ? ? ? 2.clusterRole:全局資源角色額
角色綁定:
? ? ? ? 1.RoleBinding
? ? ? ? 2.ClisterRolebinding
2.集群默認的角色
kubectl get clusterrole | grep -v systemadmin:主要用于授權命名空間所有讀寫的權限
cluster:admin超級管理員,有集群所有權限
edit:允許對大多數對象進行讀寫操作,不允許查看或者修改角色,角色綁定
view:允許對命名空間大多數對象進行讀寫,不允許查看角色,角色綁定
二.用戶的創建流程
1.用戶的創建
? ?(1)ssl流程介紹
? ? ? ?實際上k8s中的根證書在kubeadmin部署的時候,以及自動生成了,k8s是模擬ca機構,給自己辦法證書,也驗證自己,所以證書中有私鑰,公鑰等;
?????????本質上講,k8s的用戶就是一個文件,該文件在當前登陸用戶的家目錄下;這個文件config,就代表我是誰;但角色和權限信息在其他位置
ls ./kube/config
(2)生成用戶證書?
? ? ? ? 一個用戶一個證書,這個用戶證書,即使用來生成用戶文件的(也就是家目錄下的config)
(3)生成kubecongi用戶授權文件
? ? ? ? 有了這個授權文件,就像魚擁有了一個用戶
? ? ? ? 但是還沒有任何權限,無法使用
2.創建角色和規則
? ? ? ? 通過資源清單的方式,創建角色和規則
? ? ? ? 角色:
role:局部資源角色
clusterole:全局資源角色
? ? ? ? 規則:這角色的權限,能使用 什么資源,不能使用什么資源
kubectl api-resource
kubectl get role
3.角色的綁定
????????根據角色的不同,對應不同綁定資源清單的編寫
rolebinding
clusterbinding
? ? ? ? 只要角色和用戶綁定完成,RBAC的整個流程就結束了
? ? ? ? 我們創建成功一個帶有特定權限的用戶,就可以分發給同事進行使用
4.把創建好的文件,發送給同事就可以使用了
kubectl get pod --kubeconfig=xinjizhiwa.kubeconfig:指定使用的集群認證配置文件將文件拷貝到 ./kube/config下就不用指定文件位置了
5.流程總結
6.用戶組
????????只要擁有了用戶組,我們創建用戶的時候,簽名中“O”字段,與用戶組名相同,那么創建出來的用戶,就擁有了用戶組的權限,就不在需要配置角色、綁定了;方便了很多;
7.serviceAccount:集群內部資源權限
? #這里就是sa賬號,指定sa的名稱,請確認該賬號是有權限訪問K8S集群的喲!
? ? ? serviceAccountName: py02