k8s集群安全机制
机制说明
安全主要是围绕 api server 来展开的
认证(Authentication)
当用户访问到api server 的时候,需要进行相关的认证
token信息存储在文件中,不安全
用户名加密码的认证信息是用的 base64 算法,但是该算法不安全
https证书最安全,所有节点的证书都是根据ca签发出来的子证书。目前均采用 https 双向认证
HTTPS 证书认证(双向)
认证过程
客户端和服务端都需要向ca申请证书,然后ca进行下发证书
双方访问时进行证书认证
需要认证的节点
可以在master关闭非安全端口,让master节点的其他组件被迫访问安全端口
ServiceAccount 是 负责循环访问的,避免pod 重建销毁过程中大量证书资源的浪费
JWT科普
认证总结
鉴权
上面的认证通过后并不意味着你就可以进行资源的访问了,还需要进行鉴权
类似于相亲,认证只是表明可以见面了,而鉴权则是决定是否能在一起。。。。。
目前常用的RBAC
RBAC 鉴权模式
RBAC 资源对象
把一些相关的操作 作为角色然后进行绑定
Role 和 ClusterRole
role是pod级别,ClusterRole 是集群级别
role
role 是命名空间级别
意思是:当把上面的role 赋予某个用户时,该用户就可以在默认的命名空间下对pod(仅对指定的资源类型)进行 get 、 watch、list 操作
ClusterRole
含义:把创建的角色赋予给某个用户后,即所谓的ClusterRoleBinding 后,该用户可以在所有的命名空间下进行对 指定资源(目前指定的时 secrets)的指定操作
RoleBinding 和 ClusterRoleBinding
RoleBinding
RoleBinding 绑定 ClusterRole
ClusterRoleBinding 方案
Resources
在Role和ClusterRole 中会引用