k8s 基于RBAC的认证、授权介绍和实践

本文介绍了Kubernetes中的认证与授权机制,重点讲解了通过证书认证和基于RBAC的授权。内容包括证书认证的过程,创建和配置客户端证书,以及RBAC中的Role、ClusterRole、RoleBinding和ClusterRoleBinding的使用。通过实践操作,演示了如何为用户授予读取命名空间的权限。
摘要由CSDN通过智能技术生成

Python微信订餐小程序课程视频

https://edu.csdn.net/course/detail/36074

Python实战量化交易理财系统

https://edu.csdn.net/course/detail/35475
在K8S中,当我们试图通过API与集群资源交互时,必定经过集群资源管理对象入口kube-apiserver。显然不是随随便便来一个请求它都欢迎的,每个请求都需要经过合规检查,包括Authentication(身份验证)、Authorization(授权)和Admission Control(准入控制)。通过一系列验证后才能完成交互。

Kubernetes API 请求从发起到持久化到ETCD数据库中的过程如下:

image-20220121201812274

“三个A”我们可以简单理解为:

  • Authentication:**你是谁?**你能登录系统么?
  • Authorization:**你想做什么?**你有相应的权限么?
  • Admission Control: 在apiserver中准入控制会以控制器插件的方式存在,类似于各类web框架中的中间件,可以在kube-apiserver的yml中添加控制器插件--enable-admission-plugins开启。

这篇小作文我们主要来学习K8S中关于认证与授权相关的知识,看看他们是如何实现的。包含如下内容:

  • K8S 通过证书认证
  • K8S 通过RBAC 授权
一、 K8S 通过证书认证

Authentication(身份认证),即核查用户能否进入K8s集群。一般来说k8s中有两类用户,普通用户和服务账户(Service Account)。

普通用户,使用者是人,即用户可以通过 kubectl 命令、或通过REST请求访问 API,但是请注意K8s不提供普通用户管理的资源对象,那所谓的普通用户哪里的?很简单只要你能通过k8s身份认证策略那么你就是一个普通用户。而Service Account 则是针对运行在 Pod 中的进程而言的。

K8S的几种验证方式:

  • Certificate
  • Token
  • OpenID
  • Web Hook

其中Certificate(证书)是在普通用户(客户端)中被广泛使用的验证方式。通过客户端证书进行身份验证时,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值