侧边栏壁纸
博主头像
爱运维 博主等级

行动起来,活在当下

  • 累计撰写 197 篇文章
  • 累计创建 143 个标签
  • 累计收到 21 条评论

目 录CONTENT

文章目录
K8S

我所理解的K8S RBAC权限管理

Administrator
2018-11-13 / 0 评论 / 0 点赞 / 7 阅读 / 0 字

1、Role:角色,也就是权限,它其实是一组规则,定义了一组对Kubernetes API对象的操作权限

2、Subject:被作用者,图中用户,既可以是“人”,也可以是“机器”,也可以是Kubernetes里定义的“用户”
3、RoleBinding:定义了“被作用者”和“角色”的绑定关系

Role和RoleBinding对象都是Namespaced对象,它们对权限限制规则仅在它们自己的Namespace内有效,roleRef也只能引用当前Namespace里的Role对象

ClusterRole和ClusterRoleBinding针对整个集群,不限于单个namespace


范例:

1.新建K8S内建用户sa

apiVersion: v1
kind: ServiceAccount
metadata:
  namespace: mynamespace
  name: iyunw-sa

2.新建权限Role


kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  namespace: mynamespace  ## 指定它能产生作用的Namespace
  name: iyunw-role
rules:    ##  定义权限规则
- apiGroups: [""]
  resources: ["pods"]  ## 对mynamespace下面的Pod对象
  verbs: ["get", "watch", "list"]   ## 进行GET、WATCH、LIST操作
3.建立角色绑定



kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: iyunw-rolebinding
  namespace: mynamespace
subjects:
- kind: ServiceAccount
  name: iyunw
  namespace: mynamespace
roleRef:
  kind: Role
  name: iyunw-role
  apiGroup: rbac.authorization.k8s.io


到此iyunw  sa用户就对namespace mynamespace下pod有get watch list权限


0

评论区