RBAC是kubernetes的一種認(rèn)證訪問授權(quán)機(jī)制,通過設(shè)置–authorization-mode=RBAC開啟RBAC。RBAC的授權(quán)步驟分為兩步:
1)定義角色:在定義角色時(shí)會(huì)指定此角色對于資源的訪問控制的規(guī)則;
創(chuàng)新互聯(lián)公司2013年成立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢想脫穎而出為使命,1280元仁壽做網(wǎng)站,已為上家服務(wù),為仁壽各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:13518219792
2)綁定角色:將主體與角色進(jìn)行綁定,對用戶進(jìn)行訪問授權(quán)。
如下是官網(wǎng)的圖解:
role是權(quán)限的定義,在kubernetes中角色分為兩種一種是role針對特定的命名空間,一種是clusterrole在整個(gè)集群范圍內(nèi)都生效。
例子如下:
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
namespace: default
name: pod-reader
rules:
- apiGroups: [""] # "" indicates the core API group
resources: ["pods"]
verbs: ["get", "watch", "list"]
clusterrole 例子如下:
kind:ClusterRole
apiVersion:rbac.authorization.k8s.io/v1
metadata:
name:secret-reader
rules:
- apiGroups:[""]
resources:["secrets"] #明確資源類型
verbs:["get","watch","list"]
三. serviceaccount
Service account是為了方便Pod里面的進(jìn)程調(diào)用Kubernetes API或其他外部服務(wù)而設(shè)計(jì)的,可以簡單的理解為服務(wù)賬戶,一般RBAC的最普遍的使用都是使用serviceaccount,因?yàn)閗8s默認(rèn)的user資源是不在集群管理內(nèi)的,而且使用方式過于繁瑣。serviceaccount可以簡單方便的實(shí)現(xiàn)認(rèn)證和授權(quán)。
四. RoleBinding和clusterrolebinging
定義好了角色也就是一個(gè)權(quán)限的集合,然后創(chuàng)建了一個(gè)serviceaccount也就是一個(gè)服務(wù)賬號,然后將這兩個(gè)東西綁定起來,就是授權(quán)的過程了。
例子如下:
kind:RoleBinding
apiVersion:rbac.authorization.k8s.io/v1
metadata:
name:read-pods
namespace:default
subjects: #主體
- kind:ServiceAccount
name:jane
apiGroup:rbac.authorization.k8s.io
roleRef: #引用的角色
kind:Role
name:pod-reader
apiGroup:rbac.authorization.k8s.io
集群角色綁定同上
kind:ClusterRoleBinding
apiVersion:rbac.authorization.k8s.io/v1
metadata:
name:read-secrets-global
subjects:
- kind:ServiceAccount
name:manager
apiGroup:rbac.authorization.k8s.io
roleRef:
kind:ClusterRole
name:secret-reader
apiGroup:rbac.authorization.k8s.io
這樣就完成了一個(gè)完整的授權(quán)?。。?/p>
網(wǎng)頁名稱:K8SRBAC詳解
網(wǎng)站鏈接:http://weahome.cn/article/jegieg.html