我为什么要使用 Docker 个密文?
Why should I use Docker Secrets?
在过去的几个月里,我通过将它们放在 ENV 变量中来管理 docker 容器的密码。
示例:
web:
environment:
- PASSWORD=123456
然后我遇到了 Docker 个秘密。所以我的问题是:
- 我应该使用它们的原因是什么?
- 它们更安全吗?怎么样?
- 能否提供一个简单的例子来说明它们的功能?
基本的docker inspect
(除其他外)会显示所有环境变量,所以这根本不安全。
你也可以看看
键神
square.github.io/keywhiz
或金库
hashicorp.com/blog/vault.html
这取决于用例。
如果您 运行 自己机器上的一个应用程序仅访问一个机密,则不需要 docker 个机密。
如果您的 运行 生产环境中有数十台机器,其中有许多集群服务都需要彼此的秘密,那么您确实需要秘密管理。
除了安全问题之外,使用标准化的方式来访问、创建和删除您的机密显然更容易。
发件人:https://github.com/moby/moby/issues/13490
- 环境变量。 不鼓励使用环境变量,因为它们是:
- 容器中的任何进程都可以访问,因此很容易 "leaked"
- 保留在图像的中间层中,并在 docker inspect
中可见
- 与链接到容器的任何容器共享
在过去的几个月里,我通过将它们放在 ENV 变量中来管理 docker 容器的密码。
示例:
web:
environment:
- PASSWORD=123456
然后我遇到了 Docker 个秘密。所以我的问题是:
- 我应该使用它们的原因是什么?
- 它们更安全吗?怎么样?
- 能否提供一个简单的例子来说明它们的功能?
基本的docker inspect
(除其他外)会显示所有环境变量,所以这根本不安全。
你也可以看看
键神
square.github.io/keywhiz
或金库
hashicorp.com/blog/vault.html
这取决于用例。
如果您 运行 自己机器上的一个应用程序仅访问一个机密,则不需要 docker 个机密。
如果您的 运行 生产环境中有数十台机器,其中有许多集群服务都需要彼此的秘密,那么您确实需要秘密管理。
除了安全问题之外,使用标准化的方式来访问、创建和删除您的机密显然更容易。
发件人:https://github.com/moby/moby/issues/13490
- 环境变量。 不鼓励使用环境变量,因为它们是:
- 容器中的任何进程都可以访问,因此很容易 "leaked"
- 保留在图像的中间层中,并在 docker inspect 中可见
- 与链接到容器的任何容器共享