Helm Charts中的秘密管理

时间:2018-12-05 18:26:53

标签: kubernetes devops kubernetes-helm

我正在尝试使用Helm charts在Kubernetes集群中安装应用程序。有人可以提出什么更好的秘密管理解决方案吗?使用helm secrets是个好主意还是Hashicorp Vault

1 个答案:

答案 0 :(得分:3)

保管库在技术上很棒,但是可能会带来管理负担。无论“秘密”如何,您都可以得到有力的保护;您可以通过生成一次性密码来避免共享诸如中央数据库密码之类的魔术秘密;如果您需要签名或加密的东西,可以要求Vault为您执行此操作,而不必自己知道加密秘密。最大的缺点是,它是一项单独的管理服务,从其中获取秘密并不是完全无缝的,并且如果您需要重新启动服务器,则有时需要由管理员来解封。

Kubernetes机密实际上只是具有不同名称的ConfigMap。使用默认设置,操作员很容易获得Secret的值(kubectl get secret ... -o yaml,然后对字符串进行base64解码),因此它们实际上并不是那个秘密。如果您有一个有趣的名称空间设置,通常就无法在其他名称空间中访问Secret,这可能意味着被迫在Secrets周围进行大量复制。仅使用kubectl之类的本机工具来管理Secrets也有点笨拙。

通过Helm推送凭据可能是最无缝的路径-从Helm值转换为Secret对象以将其推送到容器中非常容易,并且很容易从CI系统之类的地方推送值-而且最不安全的。除了可以通过kubectl转储值之外,您还可以在Helm版本中helm get values来查找值。

因此,这是一个让您真正保密的重要性,以及您要付出多少努力。如果您希望无缝集成,并且可以限制对授权运营商的集群访问并有效使用RBAC,这是一个问题可能已经足够了。如果您可以投资技术上最好,也是最复杂的解决方案,并且想要一些高级功能,那么Vault可以很好地工作。维护一个普通的Kubernetes秘密是一种中间立场,它比使用Helm安全一些,但几乎没有可管理性。