加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

为Docker容器指定超级用户PostgreSQL密码

发布时间:2020-12-16 03:34:57 所属栏目:安全 来源:网络整理
导读:在Docker容器中运行PostgreSQL数据库时,官方PostgreSQL Docker映像的documentation指定应在环境变量中设置管理员密码,如: docker run --name some-postgres -e POSTGRES_PASSWORD=mysecretpassword -d postgres 对于那些不想在脚本中对纯文本密码进行硬编码

在Docker容器中运行PostgreSQL数据库时,官方PostgreSQL Docker映像的documentation指定应在环境变量中设置管理员密码,如:

docker run --name some-postgres -e POSTGRES_PASSWORD=mysecretpassword -d postgres

对于那些不想在脚本中对纯文本密码进行硬编码的人,是否有更安全的选项需要考虑?

最佳答案
将配置设置作为环境变量注入是12 factor app网站推荐的应用程序配置方法.

> http://12factor.net/config

或者,您可以创建自己的容器,从自定义配置文件中读取其配置:

docker run -d mydockerapp --config mydevconfig.yaml

但实际上,环境变量的使用在灵活性方面具有优势,因为它在所有平台上无处不在.要使环境变量更加可口,您可以在文件中指定它们.这至少会确保同一台计算机上的恶意用户无法从进程列表中收集凭据:

$cat env.db 
POSTGRES_DB=myappdb
POSTGRES_USER=admin
POSTGRES_PASSWORD=pleasechangeme

$docker run --name postgres --env-file=env.db -d postgres

最后,我发现有一些未完成的功能请求可以让docker更好地保密:

> https://github.com/docker/docker/issues/13490

根据我的经验,便利性习惯于超越安全性,因此我认为获得足够的思维分享需要时间来获得可接受的解决方案.我个人认为新出现的解决方案模仿了Kubernetes项目对加密数据量的作用:

> https://kubernetes.io/docs/concepts/configuration/secret/

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读