用证书加密的Kubernetes机密?

时间:2019-06-04 17:05:22

标签: kubernetes kubernetes-secrets

当Kubernetes创建秘密时,它们是否使用证书对给定的用户名和密码进行加密?

apiVersion: v1
kind: Secret
metadata:
  name: mysecret
type: Opaque
data:
  username: YWRtaW4=
  password: MWYyZDFlMmU2N2Rm

2 个答案:

答案 0 :(得分:1)

取决于情况,但是可以-静态加密。机密存储在etcd(用于存储所有Kubernetes对象的数据库)中,您可以启用将用于加密机密的密钥管理系统。您可以在documentation上找到所有相关的详细信息。

请注意,这不保护清单文件-清单文件未加密。机密仅在etcd上加密,但是当使用kubectl或API来获取机密时,就会将其解密。

如果您还希望对清单文件进行加密,则可以使用多种好的解决方案,例如Sealed Secrets,Helm Secrets或Kamus。您可以在我的blog post上阅读有关它们的更多信息。

答案 1 :(得分:0)

秘密存储在etcd中,这是群集信息数据的高可用键值存储。静态数据被加密。默认情况下,身份提供程序用于保护etcd中的机密,但不提供加密。

引入了

EncryptionConfiguration以使用本地管理的密钥在本地加密机密。 使用本地管理的密钥对机密进行加密可以防止etcd受到破坏,但不能防止主机受到破坏。 由于加密密钥存储在EncryptionConfig YAML文件中的主机上,因此熟练的攻击者可以访问该文件并提取加密密钥。这是kms提供程序开发的垫脚石,kms提供程序从1.10版本开始引入,并且从1.12版本开始提供beta版本。信封加密会建立对独立密钥的依赖,而不是存储在Kubernetes中。 在这种情况下,攻击者将需要破坏etcd,kubeapi服务器和第三方KMS提供程序来检索纯文本值,从而提供比本地存储的加密密钥更高的安全级别。

更多信息,请点击此处: secretsencryption

希望对您有帮助。