【Kubernetes 018】cfssl创建证书并结合RBAC的RoleBinding配置新用户config文件操作详解

安全性是企业生产环境中的头等大事,对于访问同一集群的不同用户或者用户组来说,将权限分级是很有必要的。和很多云厂商一样,k8s也是采用按照角色和用户绑定的方式来分配权限的,这一节我们就来实际操作下,新建一个用户,并只让他在指定的namespace进行管理。

我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,如果有问题欢迎在底下的评论区交流,谢谢。

RBAC

RBAC,全称Role-based access control,会创建很多Role,每个Role对应着一系列的权限。通过将用户和Role进行绑定来给用户赋予不同类型的权限。

Role和ClusterRole

K8s中的资源要么是在某个namespace下,例如pod和service,要么是全局的,例如node。所有权限也就分为两种,Role下的权限是针对某个namespace的,在定义的时候必须要加上具体namespace;与之相对的ClusterRole下的权限是集群级别的,不用加namespace。

需要注意,所有的权限都是允许类型,而没有拒绝类型,所以赋予权限只能进行添加操作。一个用户绑定了某个Role,就只有Role下赋予的权限。

Role和ClusterRole都是集群中的单独资源,可以用yaml文件来创建。

例如下面是一个Role的声明

apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  namespace: default
  name: pod-reader
rules:
- apiGroups: [""] # "" indicates the core API group
  resources: ["pods"]
  verbs: ["get", "watch", "list"]

其中的apiGroupsresources是资源列表,可以参考官方API文档,而verbs是允许对资源的操作动作,可以参考全部操作

同样下面是一个ClusterRole的声明

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  # "namespace" omitted since ClusterRoles are not namespaced
  name: secret-reader
rules:
- apiGroups: [""]
  #
  # at the HTTP level, the name of the resource for accessing Secret
  # objects is "secrets"
  resources: ["secrets"]
  verbs: ["get", "watch", "list"]

但是通常来说系统自带的Role和ClusterRole就基本够用了,如下

[root@k8s-master ~]# kubectl get role --all-namespaces
NAMESPACE       NAME                                             AGE
ingress-nginx   ingress-nginx                                    6d19h
ingress-nginx   ingress-nginx-admission                          6d19h
kube-public     kubeadm:bootstrap-signer-clusterinfo             16d
kube-public     system:controller:bootstrap-signer               16d
kube-system     extension-apiserver-authentication-reader        16d
kube-system     kube-proxy                                       16d
kube-system     kubeadm:kubelet-config-1.15                      16d
kube-system     kubeadm:nodes-kubeadm-config                     16d
kube-system     system::leader-locking-kube-controller-manager   16d
kube-system     system::leader-locking-kube-scheduler            16d
kube-system     system:controller:bootstrap-signer               16d
kube-system     system:controller:cloud-provider                 16d
kube-system     system:controller:token-cleaner                  16d
[root@k8s-master ~]# kubectl get clusterrole
NAME                                                                   AGE
admin                                                                  16d
cluster-admin                                                          16d
edit                                                                   16d
flannel                                                                16d
ingress-nginx                                                          6d19h
ingress-nginx-admission                                                6d19h
system:aggregate-to-admin                                              16d
system:aggregate-to-edit                                               16d
system:aggregate-to-view                                               16d
system:auth-delegator                                                  16d
system:basic-user                                                      16d
system:certificates.k8s.io:certificatesigningrequests:nodeclient       16d
system:certificates.k8s.io:certificatesigningrequests:selfnodeclient   16d
system:controller:attachdetach-controller                              16d
system:controller:certificate-controller                               16d
system:controller:clusterrole-aggregation-controller                   16d
system:controller:cronjob-controller                                   16d
system:controller:daemon-set-controller                                16d
system:controller:deployment-controller                                16d
system:controller:disruption-controller                                16d
system:controller:endpoint-controller                         
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值