权限控制

此处要介绍的是基于rbac 的权限控制,主要涉及四个概念,角色(role,clusterrole),角色绑定(rolebinding,clusterrolebinding),授权对象(serviceaccount, user),权限(apiGroups,resources,verbs)

serviceaccount 与 user 区别

sa 通常都是用于pod 中的应用授权,例如pod 中的程序要访问集群做一些操作就可以使用sa ,默认pod 都都有一个default sa

user 通常是给人使用的,标记的是个人,例如在kubectl 配置文件中的多用户就是用user 定义的。

但是两者的使用没有严格限制

基于serviceaccount 的权限分配

命名空间的角色授权

###角色就是绑定了一些权限,角色是基于命名空间的,集群角色才是全局的,也就是角色绑定给用户或者sa都是作用在固定命名空间的。
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  name: {{ .Release.Name }}
rules:
  - apiGroups:
    - "*"
    resources:
    - "*"
    verbs:
    - list
    - get
    - create


###RoleBinding 是命名空间资源对象,把serviceaccount 与role 绑定在一起
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: {{ .Release.Name }}-binding
RoleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: Role
  name: {{ .Release.Name }}
subjects:
- kind: ServiceAccount
  name: {{ .Release.Name }}


###serviceaccount 是基于命名空间的,伴随着它的创建,命名空间内会自动生成与它同名的token
apiVersion: v1
kind: ServiceAccount
metadata:
  name: {{ .Release.Name }}
View Code

相关文章:

  • 2022-12-23
  • 2021-07-11
  • 2021-07-14
  • 2021-09-26
  • 2021-12-11
  • 2021-10-04
  • 2022-12-23
  • 2022-02-08
猜你喜欢
  • 2022-02-08
  • 2022-02-08
  • 2021-07-17
  • 2021-07-22
相关资源
相似解决方案