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系统来保存适当的密钥,提供更安全的密钥处理过程。
2. ConfigMap和Secrets API的常见最佳实践
使用ConfigMap或秘密时出现的大多数问题,是由于对对象数据更新时如何处理更改存在错误假设。遵循以下最佳实践可以
超级会员免费看
订阅专栏 解锁全文
1761

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



