首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将秘密钥匙安全地传递到码头集装箱

将秘密钥匙安全地传递到码头集装箱
EN

Security用户
提问于 2014-10-16 02:11:50
回答 1查看 20.5K关注 0票数 37

我想传递一个在Docker容器中运行的应用程序所需要的秘密值。这个特定的容器是短暂的,它启动,运行一个命令,然后终止。

方法1:在启动容器时,将值作为环境变量通过命令行传递(Docker支持作为命令行参数启动容器)。我觉得这很糟糕,因为命令将显示在启动docker容器的主机上的进程列表(带键和全部)中。

方法2:通过env变量文件将值作为env变量传递。这解决了进程列表问题,但是在从主机运行的容器上运行docker info会显示为该容器设置的所有环境变量的列表。这使我相信Docker将这些内容存储在不安全的主机上的某个磁盘上(因为在运行的容器中添加一个新的环境变量不会更新这个列表,所以不能直接实时读取它)。

一般来说,我觉得环境变量不足以安全地存储秘密数据(即使只是暂时的),但是我没有足够的知识来支持这种想法。

向容器传递机密数据的安全方法是什么?

EN

回答 1

Security用户

回答已采纳

发布于 2014-10-16 20:36:56

环境变量是最好的方法,特别是方法2。默认情况下,Docker不允许除root之外的用户运行自己。禁止访问套接字。我会说,方法2是相当安全的,因为如果攻击者有根访问权限(并且可以在您的码头容器中穿插),那么您的状态已经很糟糕了。

一般两份码头保安通知书。在启用API时要非常小心,因为默认情况下不存在加密或身份验证。他们有一种使用他们所记录的证书和TLS的方法,但要谨慎行事。

此外,如果可能的话,可以在服务器上启用SELinux。较新的版本能够实际看到码头容器,并自动为每个容器构建安全上下文。这样,容器就不会轻易地回到主机中。默认情况下,docker作为根用户运行,即使使用用户指令,它仍然直接与内核接口,而不像VM。一旦码头容器被破坏,主机就会受到任何本地特权攻击。

票数 11
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/70827

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档