gpt4 book ai didi

docker - 如何限制传递给链接容器的环境变量

转载 作者:行者123 更新时间:2023-12-02 20:28:01 26 4
gpt4 key购买 nike

我们已经开始广泛使用 docker(我们喜欢它),但发现了一个相当讨厌的安全问题。链接容器可以完全访问源容器的环境设置。

例如,假设您创建了一个 mysql 容器。

docker run --name db -e MYSQL_ROOT_PASSWORD=mysecretpassword -d mysql

现在你创建了一个 wordpress 容器
docker run --name wp --link db:db \
-e WORDPRESS_DB_USER=wp \
-e WORDPRESS_DB_PASSWORD=1234 \
-d wordpress

如果您现在检查 wordpress 容器中的环境,您将能够看到 mysql root 密码。
docker exec -i wp sh -c "env|grep ^MYSQL_MYSQL_ENV"

MYSQL_ENV_MYSQL_MAJOR=5.7
MYSQL_ENV_MYSQL_ROOT_PASSWORD=mysecretpassword
MYSQL_ENV_MYSQL_VERSION=5.7.5-m15

这是一个重大的安全漏洞! wordpress 容器中的任何随机代码或模块都可以使用 mysql root 密码进​​行连接并造成严重破坏。如果 mysql 数据库与多个 wordpress 容器(和 joomla 容器)共享,那么破坏可能是全局性的。

我的问题是,有没有办法限制链接容器之间传递的环境变量?

第二个问题——我仔细检查了有关链接容器的文档 https://docs.docker.com/userguide/dockerlinks/#environment-variables

但它没有描述这种行为。我在想也许这是一个意外的副作用,也许我应该打开一个错误报告?

最佳答案

My question is, is there a way to limit what environment variables are passed between linked containers?



如果这是您的环境中的一个问题,您最好的选择可能是采用容器链接以外的解决方案来进行服务发现。例如,您可以使用各种 etcd 之一。支持的发现机制——使用 etcd直接,或类似 consul , registratorskydns .

关于docker - 如何限制传递给链接容器的环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28963880/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com