微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

K8S权限管理-RBAC

1、RBAC:基于角色的访问控制,将权限授予角色,为用户分配角色,完成授权。RBAC的特点:

(1)对集群中的资源和非资源型URL的权限实现了完整覆盖

(2)整个RBAC完全由少数几个API对象实现,可以通过kubectl或者API调用进行操作

(3)支持权限的运行时调整,无需重新启动APIServer

2、角色

Kubernetes将RBAC授权插件将角色分为Role和ClusterRole

Role:作用于名称空间级别,承载名称空间内的资源权限集合。

ClusterRole:能同时承载名称空间和集群级别的资源权限集合

2.1、Role资源清单

  创建一个属于test名称间的Role

kind: Role
apiVersion: rbac.authorization.k8s.io/v1
Metadata:
  namespace: test
  name: pods-reader    
rules: 
- apiGroups: [""] 
  resources: ["pods","services","pods/log"]  
  verbs: ["get","watch","list"] 
role-pod-reader.yaml

2.2、Rolebinding

为test用户增加test名称间的访问权限

kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
Metadata:
  name: podreader
  namespace: test
subjects:
- kind: ServiceAccount
  name: test
  namespace: default
roleRef:
  kind: Role
  name: pods-reader
  apiGroup: rbac.authorization.k8s.io
role-binding.yaml

2.3、验证

状态查看:

使用test ServiceAccount token登录dashbord测试:可以看到这个serviceaccount可以访问default和test两个名称间的信息,且在test名称空间只能查看role定义的权限

 3、ClusterRole和ClusterRoleBinding配置与role和RoleBinding配置类似。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐