【k8s系列】k8s架构(二):认证

wric福建

基本概念

关于k8s的认证,首先我们应该清楚密码学中的对称加密和非对称加密

对称加密中,双方持有相同的密钥
非对称加密中,双方持有一个密钥对,加密时使用公钥,解码时使用私钥

k8s中的service是对外提供的服务,同时服务间也需要进行通信等一系列操作,因此有必要在通信时做好安全措施。
由于非对称加密的加密算法较为复杂,对称加密的安全性又不够高,故service在通信时先使用非对称加密发送密钥,再使用密钥进行对称加密,这也是大名鼎鼎的SSL/TLS协议

公钥在使用前需要经过CA认证

k8s中的认证与授权

认证

外部访问:例如:kubectl访问ApiServer。ApiServer一般是一个集群的标准入口,集群中有常见的组件scheduler,controlmanger,etcd等都需要通过ApiServer与外部对接
1.客户端证书认证(TLS双向认证)
2.BearerToken
内部访问:例如集群内部的pod需要访问ApiServer。
3.ServiceAccount:包括namespace,token,ca三部分组成,通过挂载存储于pod的目录中

授权

k8s中的授权方式包括三种:ABAC,WebHook,RBAC。其中RBAC是kubernetes1.6引入的,也是我们需要重点了解的。
RBAC(Role Based Access Control)分为三层架构:user,role与authority
image.png
其中
user有内部与外部之分,ServiceAccount是集群内部的用户
authority是角色所拥有的权限,包括对资源的使用,以及最基本的增删改查等动作。
角色是两者之间的桥梁,通过rolebinding与user联系,并拥有自己的命名空间。
同时,为了方便用户使用所有的权限,设计了CLusterRole

后续

在完成授权之后,还应通过准入控制(admision control),其效果类似于filter

准入控制器(Admission Controller)位于 API Server 中,在对象被持久化之前,准入控制器拦截对 API Server 的请求,一般用来做身份验证和授权。

深入学习:SSL/TLS协议https://zhuanlan.zhihu.com/p/...
https://www.cnblogs.com/wqbin...
RBAC与ServiceAccounthttps://zhuanlan.zhihu.com/p/...
admision control参考https://jimmysong.io/kubernet...

阅读 188
10 声望
3 粉丝
0 条评论
10 声望
3 粉丝
文章目录
宣传栏