【问题标题】:Docker environment variable securityDocker 环境变量安全
【发布时间】:2014-09-29 21:57:48
【问题描述】:

我有一个 docker 应用程序,我需要将一条安全信息传递给它,因为它使用密码来加密/解密存储的数据。我试图弄清楚使用环境变量传递这些信息有多安全。我知道如果我使用

docker run -e passphrase="secretkey123" --name containername imagename

然后可以通过以下方式找到该值:

docker inspect containername

因此它必须存储在磁盘上的某个位置(我假设在 /var/lib/docker 中)。有没有更安全的方法将环境变量传递给 docker?我应该在链接到主机文件系统的卷中使用临时文件吗?有没有更好的办法?

【问题讨论】:

    标签: security environment-variables docker


    【解决方案1】:

    无论它存储在哪里,都可以通过“docker inspect”清楚地访问它。我认为这归结为您希望它有多安全。例如,您可以改为使用具有文件权限的共享卷来限制对磁盘上密码文件的访问。或者您可以使用 socker/ssh/etc 来避免将密码放入磁盘上的文件中。这仅取决于您真正想要的安全程度。

    我确实注意到,如果您说在容器中运行的 Web 服务器,我假设如果有人从 Web 服务器中断,他们只能访问容器可以访问的内容(而不是运行 docker 的主机操作系统)。

    【讨论】:

      【解决方案2】:

      接受的答案并未指出您可以要求 root 访问权限来与 Docker 进程/资产进行交互。

      要求 root 访问权限(并使用 shell 内插值,以隐藏执行命令在 ps 中显示),将保护您的秘密进行在线访问。离线,文件系统应该加密,或者临时容器可以使用 RAM 磁盘进行容器存储。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-12-07
        • 2017-12-13
        • 2020-08-15
        • 2015-06-17
        • 2021-06-24
        • 1970-01-01
        • 1970-01-01
        • 2013-09-17
        相关资源
        最近更新 更多