Kubernetes 之RBAC基于角色的访问控制

RBAC基于角色的访问控制--全拼Role-Based Access Control


创建k8s账号与RBAC授权使用
1、创建私钥
(umask 077; openssl genrsa -out soso.key 2048)
用此私钥创建一个csr(证书签名请求)文件
openssl  req -new -key soso.key -out soso.csr -subj  "/CN=soso"
拿着私钥和请求文件生成证书
openssl x509 -req -in soso.csr -CA  /opt/kubernetes/ssl/ca.pem  -CAkey /opt/kubernetes/ssl/ca-key.pem -CAcreateserial -out soso.crt -days 365

2、查看证书内容
openssl  x509 -in soso.crt -text -noout
生成账号
kubectl config set-credentials soso --client-certificate=soso.crt --client-key=soso.key --embed-certs=true

3、设置上下文环境--指的是这个账号只能在这个环境中才能用
kubectl config set-context soso@kubernetes --cluster=kubernetes --user=soso

查看当前的工作上下文
kubectl config view

4、切换用户(切换上下文)
kubectl  config use-context soso@kubernetes
验证是否已经切换到了新的上下文
kubectl config current-context
5.测试(还未赋予权限)
kubectl  get pod
Error from server (Forbidden): pods is forbidden: User "soso" cannot list resource "pods" in API group "" in the namespace "default"

创建一个角色(role)---权限
1.先切回管理帐号
kubectl config use-context kubernetes-admin@kubernetes
kubectl config use-context default@kubernetes

创建角色:
kubectl  create role  sosorole --verb=get,list,watch --resource=pod,svc

2.绑定用户soso(上面创建的用户),绑定role为sosorole
kubectl  create  rolebinding sosorole-binding  --role=sosorole  --user=soso

3.切换用户
kubectl  config use-context soso@kubernetes

6.删除soso账号之前绑定的rolebinding
kubectl delete rolebinding sosorole-binding

7.创建clusterrole #可以访问全部的namespace

kubectl create clusterrole sosoclusterrole --verb=get,list,watch --resource=pod,svc

8.绑定集群角色到用户soso
kubectl  create clusterrolebinding soso-rolebinding   --clusterrole=sosoclusterrole --user=soso


kubectl config set-cluster kubernetes \
  --certificate-authority=/opt/kubernetes/ssl/ca.pem \
  --embed-certs=true \
  --server=https://10.115.92.43:6443 \
  --kubeconfig=soso.kubeconfig
  
#设置客户端认证
kubectl config set-credentials soso \
  --client-key=soso.key \
  --client-certificate=soso.crt \
  --embed-certs=true \
  --kubeconfig=soso.kubeconfig
 
#设置默认上下文
kubectl config set-context kubernetes \
  --cluster=kubernetes \
  --user=soso \
  --kubeconfig=soso.kubeconfig
  
#设置当前使用配置 
kubectl config use-context kubernetes --kubeconfig=soso.kubeconfig

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值