提取到环境变量后以安全的方式处理OpenShift秘密

时间:2018-10-03 17:39:57

标签: postgresql security openshift

因此,我已经配置了OpenShift 3.9构建配置,使得environment variables are populated from an OpenShift secret在构建时。我正在使用这些环境变量在图像的ENTRYPOINT脚本中为PostgreSQL角色设置密码。

显然,这些环境变量被烘焙到映像中,不仅是构建映像,还包括生成的数据库映像。 (我在运行容器中发出set时可以看到它们的值。)一方面,这似乎是必要的,因为ENTRYPOINT脚本需要访问它们,并且仅在映像运行时执行(而不是构建) -时间)。另一方面,这有点令人不安,因为获得图像的FWIK现在可以提取这些密码。使用后取消设置环境变量不会对此进行更改。

那么,有没有更好的方法(甚至最佳实践)以更安全的方式处理此类情况?

更新在这一阶段,我看到两种可能的前进方式(更好的选择优先):

  1. DeploymentConfig配置为mounts the secret作为卷(而不是:BuildConfig从中填充环境变量)。

  2. 秘密存储PostgreSQL password hashes(不是逐字口令)。

1 个答案:

答案 0 :(得分:0)

如评论中所建议,有意义的是将环境变量的提供从秘密从BuildConfig转移到DeploymentConfig。供参考:

oc explain bc.spec.strategy.dockerStrategy.env.valueFrom.secretKeyRef
oc explain dc.spec.template.spec.containers.env.valueFrom.secretKeyRef