乐趣区

关于kubernetes:k8s系列k8s架构二认证

基本概念

对于 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

其中
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…

退出移动版