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

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



