因此,我已经配置了OpenShift 3.9构建配置,使得environment variables are populated from an OpenShift secret在构建时。我正在使用这些环境变量在图像的ENTRYPOINT
脚本中为PostgreSQL角色设置密码。
显然,这些环境变量被烘焙到映像中,不仅是构建映像,还包括生成的数据库映像。 (我在运行容器中发出set
时可以看到它们的值。)一方面,这似乎是必要的,因为ENTRYPOINT
脚本需要访问它们,并且仅在映像运行时执行(而不是构建) -时间)。另一方面,这有点令人不安,因为获得图像的FWIK现在可以提取这些密码。使用后取消设置环境变量不会对此进行更改。
那么,有没有更好的方法(甚至最佳实践)以更安全的方式处理此类情况?
更新在这一阶段,我看到两种可能的前进方式(更好的选择优先):
将DeploymentConfig
配置为mounts the secret作为卷(而不是:BuildConfig
从中填充环境变量)。
答案 0 :(得分:0)
如评论中所建议,有意义的是将环境变量的提供从秘密从BuildConfig
转移到DeploymentConfig
。供参考:
oc explain bc.spec.strategy.dockerStrategy.env.valueFrom.secretKeyRef
oc explain dc.spec.template.spec.containers.env.valueFrom.secretKeyRef