为什么Docker Secrets比环境变量更安全?

时间:2017-06-18 14:08:55

标签: security docker environment-variables docker-secrets

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

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

1 个答案:

答案 0 :(得分:8)

因为秘密是加密的。来自documentation

  

秘密在Docker群中的传输和静止期间加密。只有那些已被授予显式访问权限的服务才能访问给定的机密,并且只有在这些服务任务正在运行时才能访问。

你也可以

  

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

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

cat /proc/<pid>/environ