首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么码头保密员被认为是安全的?

为什么码头保密员被认为是安全的?
EN

Stack Overflow用户
提问于 2018-01-07 20:27:57
回答 2查看 5K关注 0票数 17

我读过关于码头群秘密的文章,也做了一些测试。据我所知,机密可以替换docker-come.yml文件中提供的敏感环境变量(例如数据库密码)。因此,当我检查坞-组合文件或正在运行的容器时,我将不会看到密码。很好-但它有什么真正的帮助呢?

如果攻击者在我的码头主机上,他可以很容易地查看/run/机密

代码语言:javascript
复制
docker exec -it df2345a57cea ls -la /run/secrets/

还可以查看内部的数据:

代码语言:javascript
复制
docker exec -it df27res57cea cat /run/secrets/MY_PASSWORD

同样的攻击者可以在运行的容器上打开bash,看看它是如何工作的.

此外,如果攻击者在容器本身,他可以四处看看。

所以我不明白为什么对接者的秘密更安全,就好像我直接把它们写到docker -come.yml文件中一样?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-01-07 21:21:19

存储在docker-compose.yml中的秘密在该文件中是可见的,它也应该被签入版本控制中,在那里其他人可以看到该文件中的值,并且它将在容器上的命令(如docker inspect )中可见。从那里,它也可以在你的容器内看到。

相反,停靠者秘密将加密管理器上磁盘上的秘密,只将其存储在需要该秘密的工作人员的内存中(容器中可见的文件是存储在ram中的tmpfs ),并且在docker inspect输出中不可见。

这里的关键部分是,您将您的秘密保存在您的版本控制系统之外。有了Docker的RBAC这样的工具,您还可以通过将其docker exec功能移到生产容器中或在生产环境中使用码头机密,从而使不需要访问的任何人都知道它们的秘密。这可以在仍然允许开发人员查看日志和检查容器的能力的同时完成,这是生产支持所必需的。

还要注意,您可以在docker容器中配置一个秘密,使其只能由特定用户(例如root用户)读取。然后,您可以删除作为非特权用户运行应用程序的权限(像gosu这样的工具对此很有用)。因此,防止攻击者读取容器内的应用程序的秘密是可行的,这对于环境变量来说就不那么简单了。

票数 25
EN

Stack Overflow用户

发布于 2021-07-07 03:17:44

Docker是针对群的,而不是针对某个容器的一个节点,也不是为一台机器编写的(虽然它可以使用,但并不主要用于此目的)。如果您有多个节点,那么Docker比将您的秘密部署在多个工作机器上更安全,只部署到那些需要基于哪个容器在那里运行的秘密的机器。

参见这个博客:浅谈码头秘密管理

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

https://stackoverflow.com/questions/48141233

复制
相关文章

相似问题

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