k8s RBAC权限控制

前言

在之前的文章中介绍了k8s如何生成一个完整的kubeconfig文件,单纯的生成kubeconfig文件,不对user或group进行权限绑定是无法访问k8s集群的,今天就介绍一下k8s中RBAC鉴权相关的内容

RBAC介绍

基于角色的权限控制,在k8s为了实现这种机制,RBAC API 声明了四种 Kubernetes 对象:Role、ClusterRole、RoleBinding 和 ClusterRoleBinding
k8s的RBAC是白名单机制,想让他具备什么权限,就先创建某个角色Role然后定制rules,再将某个用户user与该role进行绑定bind得到这种绑定关系为RoleBind

ROLE

role 是用来在某个namespace内设置访问权限; 在创建 Role 时,必须指定该 Role 所属的namespace,可以为namespaced级别的资源设置权限,如pods,statefulsets,deployments等

示例

  1. 通过命令行创建
  • --resource: 资源,多个资源以,分割
  • --verb: 对资源的操作权限,包括get,list,watch等等
kubectl create role pod-reader --resource=pods --verb=get,list,watch -n default
  1. 通过yml创建
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  namespace: default
  name: pod-reader
rules:
- apiGroups: [""] # "" 标明 core API 组
  resources: ["pods"]
  verbs: ["get", "watch", 

你可能感兴趣的:(kubernetes,kubernetes,容器,云原生)