【k8s】只分享实用干货!简单几步实现k8s集群RBAC权限控制!

背景:在你的公司肯定也遇到一些帅气的developer想看集群pod日志,但又不想通过Dashborad/kibana/rancher/kubesphere这些图形界面来看,毕竟还是命令行tailf更方便嘛,哈哈,这是非常理解的!但是又不能把所有权限给到到开发人员,万一做个delete的sao操作,整个集群可能就跪了,那可能离提桶跑路就不远了!

需求:结合背景需求就很明了啦,就是创建一个只具有read集群pod资源的用户即可,结合RBAC授权即可。

开干前先简单介绍下RBAC:

RBAC:Role-base access control,字面意思就是基于角色的权限控制。定义一个角色,对哪些资源对象有哪些操作权限,这里特别说明是不能定义拒绝权限的。再把用户(serviceaccount或useraccount)binding绑定到定义好的角色上,从而使用户具有对应的权限就okk啦!

理解了上面的概念,那我们就开始拆解实现步骤:

# 1.创建私钥(umask 077; openssl genrsa -out support.key 2048)​​​
# 2.基于这个私钥生成一个自签证书,由ca.crt签署,生成证书签署请求("/CN=support" 就是账号的名字)openssl req -new -key support.key -out support.csr -subj "/CN=support"
# 3.用ca.crt签证openssl x509 -req -in support.csr -CA ./ca.crt -CAkey ./ca.key -CAcreateserial -out support.crt -days 365
# 4.查看证书信息openssl x509 -in support.crt -text -noout​​​​​​
# 5.support用户账号添加到用户认证kubectl config set-credentials support --client-certificate=./support.crt --client-key=./support.key --embed-certs=true​​​​​​​​​​​​​​
# 6.查看用户信息kubectl config view​​​​​​​
# 7.设定上下文,让support也能访问kubernetes这个集群(不赋权限)kubectl config set-context support@kubernetes --cluster=kubernetes --user=support​​​​​
# 8.RBAC授权部分# 定义一个角色,对哪些对象有哪些操作权限,(不能定义拒绝权限)# 再把用户(serviceaccount或useraccount)binding绑定到定义好的角色上,从而使用户具有权限
# 8.1创建rolekubectl create role pods-reader --verb=get,list,watch --resource=podskubectl get role

# 8.2.创建rolebindingkubectl create rolebinding bind-pod-reader --role=pods-reader --user=supportkubectl get rolebinding

# 8.3.创建clusterrolekubectl create clusterrole cluster-reader --verb=get,list,watch --resource=podskubectl get rolebinding

# 8.4.创建clusterrolebindingkubectl create clusterrolebinding support-read-all-pods --clusterrole=cluster-reader --user=supportkubectl get clusterrolebinding​​​​​​​
# 9.切换上下文kubectl config use-context support@kubernetes

结束语:切换上下文之后,此时support对集群pod资源有read权限了,也就实现了上述需求,是不是很easy!哈哈哈,每天分享点小技巧,希望对大家的工作有些许帮助,因为时间有限每一步骤后没有贴图!有问题欢迎私信留言!

如果对文章感兴趣,欢迎关注公众号,一起探讨SRE相关技术!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

frank hwang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值