|NO.Z.00218|——————————|CloudNative|——|KuberNetes&細粒度許可權控制.V02|------------------------------------------------|RBAC.v02|role&ClusterRole|
阿新 • • 發佈:2022-03-31
[CloudNative:KuberNetes&細粒度許可權控制.V02] [Applications.KuberNetes] [|DevOps|k8s|細粒度許可權控制|RBAC|許可權管理概念|]
一、rbac在安裝k8s的時候就已經啟用了
二、role只作用於namespace之下### --- rbac在安裝的時候就已經啟用它了 ~~~ RBAC是可以接入第三方的。 [root@k8s-master01 ~]# more /usr/lib/systemd/system/kube-apiserver.service [Service] ExecStart=/usr/local/bin/kube-apiserver \ --authorization-mode=Node,RBAC \ // 基於RBAC認證已經啟用了
### --- 檢視Ingress-nginx的role [root@k8s-master01 ~]# kubectl get role --all-namespaces ingress-nginx ingress-nginx 2021-04-21T16:09:29Z [root@k8s-master01 ~]# kubectl get role -n ingress-nginx [root@k8s-master01 ~]# kubectl get role -n ingress-nginx -oyaml - apiVersion: rbac.authorization.k8s.io/v1 kind: Role
三、ClusterRole:作用與所有的namespace### --- 指定的role的型別是role [root@k8s-master01 ~]# kubectl get role -n ingress-nginx ingress-nginx -oyaml kind: Role ~~~ 注:kind:是role rules: - apiGroups: // 這個角色是切片形式的,每個APIGroups是一個切片的集合。 - "" resources: // 是對那些資源配置許可權 - namespaces verbs: // verbs是許可權的型別,作用於什麼,get是隻能檢視 - get ~~~ 注:這是一個定義許可權 - apiGroups: - "" resourceNames: // 這個resourceNames是隻能對這一個configmaps進行更新和檢視 - ingress-controller-leader-nginx resources: // 也是對configmaps進行授權 - configmaps verbs: // 操作型別是:get和update - get - update ~~~ 注:這是一個更細維度的許可權控制 - apiGroups: - "" resources: - configmaps verbs: - create ~~~ 注:定義了對configmap的建立許可權 - apiGroups: - "" resources: - endpoints verbs: - create - get - update ~~~ 注:對endpoints進行授權的
### --- 檢視當前的ClusterRole
~~~ 注:k8s內建的許可權,可以檢視整個叢集的許可權,就是可以檢視整個namespace的所有資源
[root@k8s-master01 ~]# kubectl get clusterrole
view 2021-04-09T13:52:18Z
### --- 匯出view.的許可權
[root@k8s-master01 ~]# kubectl get clusterrole view -oyaml > /tmp/view.yaml
[root@k8s-master01 ~]# vim /tmp/view.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole // 可以看到kind是ClusterRole許可權
#許可權的規則的寫法是一致的,就是型別不一樣。
rules:
- apiGroups:
- ""
resources:
- configmaps
- endpoints
- persistentvolumeclaims
- persistentvolumeclaims/status // 這個status相當於PVC的下級資源
- pods
- replicationcontrollers
- replicationcontrollers/scale
- serviceaccounts
- services
- services/status
verbs:
- get
- list
- watch
- apiGroups:
- ""
resources:
- bindings
- events
- limitranges
- namespaces/status
- pods/log // 經常用到的是pods/log,
- pods/status
- replicationcontrollers/status
- resourcequotas
- resourcequotas/status
verbs:
- get // 檢視
- list // 列出所有資源
- watch // 檢視相當於w的許可權
===============================END===============================
Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart ——W.S.Landor
來自為知筆記(Wiz)