Kubernetes访问控制之认证

2023-02-15  本文已影响0人  宏势

访问Kubernetes系统主要经过认证授权准入控制机制

认证即是身份验证,常用身份认证策略:X509客户证书、静态令牌、启动引导令牌、服务账号令牌、OpenID Connect令牌、Webhook令牌身份认证和身份认证代理.

Kubernetes允许同时启用多种身份认证方法,通常至少两种,服务账号令牌(默认启动),推荐使用X509客户证书更加安全可靠

Kubernetes 集群有两类用户:服务账号普通用户

一、X509客户证书

二、服务账号令牌

token挂载

ca.crt 用于验证kube-apiserver证书合法性;
namespace 命名空间;
token是sa.key签发的,kube-apiserver通过sa.pub验签

服务账号令牌也可以在集群外部使用,在API请求头部加入令牌,参考静态令牌方式

kubernets1.20(含)之前,sa创建的secret通过投射卷挂载到Pod,secret里的token是永久有效的
kubernets1.21-1.23版本,创建sa还是会自动创建secret,但是pod里面不会使用,而是由kubelet到TokenRequest API去申请一个token,默认有效期是1年,Pod每一个小时会更新一次token
kuberenets1.24版本以上,创建sa不再自动创建secret,只能由kubelet到TokenRequest API去申请token

ServiceAccount控制器

ServiceAccount 控制器管理名字空间内的 ServiceAccount,并确保每个活跃的名字空间中都存在名为 “default” 的 ServiceAccount

令牌控制器

服务账号令牌控制器作为 kube-controller-manager 的一部分运行,以异步的形式工作,主要职责是:

kube-controller-manager 服务通过参数 --service-account-private-key-file 设置服务账号的私钥文件,用于为所生成的服务账号令牌签名,kube-apiserver通过参数--service-account-key-file公钥 进行验签

三、启动引导令牌

启动引导令牌是一种简单的持有者令牌(Bearer Token),这种令牌是在新建集群 或者在现有集群中添加新节点时使用的。通过kube-apiserver参数--enable-bootstrap-token-auth 启用(默认是启用)

四、静态令牌

kube-apiserver 设置参数 --token-auth-file=SOMEFILE.csv, 令牌文件格式如下:

token,user,uid,"group1,group2,group3"

在请求中放入持有者令牌, 假设令牌为31ada4fd-adec-460c-809a-9e56ceb75269

Authorization: Bearer 31ada4fd-adec-460c-809a-9e56ceb75269

更改令牌文件内容,需要重启apiserver服务

上一篇 下一篇

猜你喜欢

热点阅读