Kubernetes 安全配置:TLS、ConfigMap、Secrets 与 RBAC 最佳实践
1. TLS 秘密创建
TLS(传输层安全)在保障网络通信安全方面起着至关重要的作用。我们可以使用有效的公私钥对来创建 TLS 秘密。只要证书采用有效的 PEM 格式,密钥对就会被编码为秘密,并可传递给 Pod 以满足 SSL/TLS 需求。创建 TLS 秘密的命令如下:
kubectl create secret tls www-tls --key=./path_to_key/wwwtls.key --cert=./path_to_crt/wwwtls.crt
TLS 秘密仅会挂载到需要该秘密的 Pod 所在的节点的 tmpfs 中,并且在不需要该秘密的 Pod 消失后会被删除,这样可以防止任何秘密数据残留在节点磁盘上。不过,需要注意的是,默认情况下,秘密数据会以明文形式存储在 Kubernetes 的 etcd 数据存储中。因此,系统管理员或云服务提供商需要采取措施确保 etcd 环境的安全性,包括在 etcd 节点之间启用 mTLS 以及对 etcd 数据进行静态加密。较新的 Kubernetes 版本使用 etcd3,并且具备启用 etcd 原生加密的能力,但这是一个手动过程,需要在 API 服务器配置中指定提供者和适当的密钥介质,以正确加密存储在 etcd 中的秘密数据。从 Kubernetes v1.10 版本开始(在 v1.12 版本中已升级为 Beta 版),引入了 KMS 提供者,它承诺通过使用第三方 KMS 系统来保存适当的密钥,从而提供更安全的密钥管理流程。
超级会员免费看
订阅专栏 解锁全文
111

被折叠的 条评论
为什么被折叠?



