为什么Docker的秘密比环境variables更安全?
我正在阅读Docker的秘密,并继续阅读,Docker的人故意select在/run/secrets
下的文件中存储秘密,而不是使用环境variables。 但是我什么都找不到解释。
所以我问:为什么使用Docker Secrets机制比将环境variables注入到容器(通过-e
或者--env-file
)更安全?
因为秘密被encryption。 从文档 :
秘密在运输过程中encryption,在 Docker群中rest 。 给定的秘密只有被授予明确访问权限的服务才能访问,只有在这些服务任务正在运行的情况下。
你也可以
使用Docker机密来集中pipe理这些数据,并将其安全地传输给那些需要访问的容器。
环境variables的问题在于,所有的密码和ssh密钥都以明确的方式存储,所有具有相同权限或更多权限的进程也可以访问这些凭据。 在* nix OS中,您可以轻松读取pid值<pid>
的进程的环境variables:
cat /proc/<pid>/environ