Yan*_*ang 5 certificate ca kubernetes
kube-apiserver
似乎没有提供使用证书撤销列表(CRL)的选项。
如果客户端证书丢失或不再使用,有没有办法撤销它?
小智 4
据我所知,没有办法通过 CRL 直接撤销证书。然而,真正有效且我们目前正在使用的是ABAC 策略来识别用户(通过证书的通用名称设置),以及他们是否有权访问 Kubernetes 上的给定资源。
举个例子,假设您有一个名为“random”的用户。您将从给定的证书颁发机构为它们生成一个客户端证书,通用名称为“随机”。
从那里,您可以拥有一个 ABAC 策略文件(一个 csv 文件,每行都是一些 JSON),并为用户“随机”设置权限,这将为他们提供对 Kubernetes API 的一定级别的访问权限。您可以让他们有权访问所有内容或某些命名空间或其他 API 参数。如果您需要撤销权限,只需从 ABAC 策略文件中删除该用户即可。我们对此进行了测试,效果很好。我要说的是,不幸的是,您必须重新启动Kubernetes API 服务才能使这些更改生效,因此可能需要几秒钟的停机时间才能发生此更改。显然,在开发环境中这不是什么大问题,但在生产环境中,您可能需要安排添加用户的时间。
希望将来一个简单的“kube-apiserver 重新加载”将允许重新读取该 ABAC 策略文件。
最后要注意的一件事:使用客户端证书进行 ABAC 身份验证时,您需要单独为用户设置权限。与 ABAC 的身份验证令牌不同,您无法在“组”中设置客户端证书用户。一些让我们头疼的事情,所以认为值得传递。:)
希望这可以帮助!
归档时间: |
|
查看次数: |
3542 次 |
最近记录: |