Kubernetes v1.37:Pod 证书与集群信任存储 笔记

Kubernetes v1.37:Pod 证书与集群信任存储

Kubernetes 引入了 Pod 证书(Pod Certificates)和集群信任捆绑包(Cluster Trust Bundles)作为新的生产级身份机制。该功能现已普遍可用,将 X.509 证书签发直接集成到核心 Kubernetes 中,用于 TLS 和 mTLS。这是相对于之前主要机制——服务账户 JWT——的重大进步。虽然 JWT 具有易用性和广泛的兼容性,但其存在一个关键弱点:作为持有者令牌(bearer tokens),一旦泄露便容易遭受未经授权的访问。相比之下,Pod 证书基于非对称密码学的“持有证明”凭据,主要采用 X.509 证书。这通过要求证明持有者身份而非仅仅共享凭据本身,从而增强了安全性。目标是使 Kubernetes 工作负载使用 X.509 证书的过程与使用 JWT 一样简便,同时保持高标准的安全性。Pod 证书旨在提供灵活性,通过可插拔接口支持单个集群内多种类型的证书,这与服务账户 JWT 单一标准化的形式形成对比。未来的 Kubernetes 版本预计将提供内置的证书颁发程序,用于服务 DNS 名称和 SPIFFE 客户端证书。该架构涉及应用程序请求证书、Kubelet 发起请求并管理信任捆绑包,以及签名控制器(signer controller)履行这些请求并发布信任捆绑包。签发过程按时间顺序进行,从 Pod 调度开始,直至应用程序访问其密钥和证书。自动轮换已内置,应用程序需处理这些更新。安全检测已集成到 kube-apiserver 中,以强制实施隔离并防止受损节点获得不当访问权限。若要实验这些功能,用户需要安装第三方签名器(如 Tinycert),它提供示例签名器和库,以帮助应用程序加载 SPIFFE 证书。