14

我正在阅读Docker Secrets并继续阅读 Docker 的人们故意选择将秘密存储在文件中/run/secrets而不是使用环境变量。但我无处可解释为什么

所以我问:为什么使用 Docker Secrets 机制比将环境变量注入我的容器(通过-e或 a --env-file)更安全?

4

1 回答 1

14

因为秘密是加密的。从文档

秘密在传输过程中被加密,在Docker 群中处于静止状态。一个给定的秘密只能被那些被授予显式访问权限的服务访问,并且只有在这些服务任务正在运行时才可以访问。

你也可以

使用 Docker 机密集中管理这些数据,并将其安全地传输到需要访问它的容器。

环境变量的问题在于您的所有密码和 ssh 密钥都以明文形式存储,并且与您具有相同或更多权限的所有进程也可以访问这些凭据。在 *nix OS 中,您可以轻松读取 pid 值为<pid>with 的进程的环境变量:

cat /proc/<pid>/environ
于 2017-06-18T14:27:48.547 回答