一文读懂 TKE 及 Kubernetes 访问权限控制 (5)

当然,除了TKE控制台提供的预设授权策略,管理员也可以通过kubectl操作ClusterRole/Role来实现自定义角色的灵活配置细粒度权限,以及操作ClusterRoleBinding/RoleBinding进行权限绑定,绑定到任意的角色权限之上。

例如你想设置CAM侧用户组为productA产品的pod-dev的用户权限只能够get/list/watch product-a命名空间下的pods资源,则你可以这样操作:

创建自定义ClusterRole/Role:dev-pod-reader,yaml实例如下,文件名为developer.yaml

apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole # 这里使用ClusterRole可以复用给产品其他命名空间 metadata: name: pod-dev # pod-dev此角色为只能读取pod的开发 rules: - apiGroups: [""] # "" 指定核心 API 组 resources: ["pods"] verbs: ["get", "watch", "list"]

使用kubectl或者通过TKE控制台YAML创建资源创建上述Role

一文读懂 TKE 及 Kubernetes 访问权限控制

绑定dev用户组下的dev1、dev2、dev3用户,绑定自定义权限pod-dev到product-a命名空间下

一文读懂 TKE 及 Kubernetes 访问权限控制

从此dev1,dev2,dev3用户则只能使用get/list/watch访问product-a下的pods资源

$ kubectl --kubeconfig=./dev.kubeconfig get pods Error from server (Forbidden): pods is forbidden: User "10000001xxxx-1592395536" cannot list resource "pods" in API group "" in the namespace "default" $ kubectl --kubeconfig=./dev.kubeconfig get pods -n product-a No resources found.

参考

kubernetes认证介绍

kubernetes授权介绍

kubernetesRBAC介绍

【腾讯云原生】云说新品、云研新术、云游新活、云赏资讯,扫码关注同名公众号,及时获取更多干货!!

一文读懂 TKE 及 Kubernetes 访问权限控制

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpwfjw.html