如何撤销Kubernetes集群中的签名证书?

时间:2016-04-28 15:36:53

标签: certificate kubernetes ca

kube-apiserver似乎没有提供使用认证吊销列表(CRL)的选项。

如果客户端证书丢失或不再使用,有没有办法撤销客户端证书?

1 个答案:

答案 0 :(得分:3)

据我所知,没有办法通过CRL直接撤销证书。但是,工作以及我们当前使用的是 ABAC policies 来识别用户(通过证书的公用名设置),以及他们是否可以访问给定资源Kubernetes。

例如,假设您有一个名为" random"的用户。您将从您的授权证书颁发机构为其生成客户端证书,其公用名称为"随机"。

从那里,你可以拥有一个ABAC策略文件(一个csv文件,每行都是一些JSON),为用户设置权限"随机"这将为他们提供对Kubernetes API的一定级别的访问权限。您可以让他们访问所有内容或某些名称空间或其他API参数。如果需要撤消权限,只需从ABAC策略文件中删除该用户即可。我们对此进行了测试,效果很好。不幸的是,我要说的是,必须重新启动 Kubernetes API服务才能使这些更改生效,因此可能会有几秒钟的停机时间才能发生此更改。显然,在开发环境中,这不是什么大问题,但在生产中,您可能需要安排时间来添加用户。

希望将来一个简单的" kube-apiserver重新加载"将允许重新读取该ABAC策略文件。

最后要注意的一点是:在使用客户端证书进行ABAC身份验证时,您需要为用户设置INDIVIDUALLY权限。与使用ABAC的身份验证令牌不同,您无法在"组中设置客户端证书用户。"导致我们头疼的事情,因此认为值得传递。 :)

希望这有帮助!