2016-11-28 99 views
3

this blog article,我发现在评论下面的话:/var/run/docker.sock的Docker安全风险是什么?

本Firshman

是 - 你说得对,我应该指出,安全问题与泊坞插座。目前,这是制作中实用的主要障碍,我们一定会寻求帮助,使其更好地发挥作用,正如您从待办事项列表中注意到的那样。

虽然我确信这对许多人有意义,对于我们其他人来说,有人可以用清晰的术语解释这个“安全问题”究竟是什么?我认为它是指:码头写作文件中的

volumes: 
    - "/var/run/docker.sock:/var/run/docker.sock" 

。那是对的吗?这将如何被利用?这是否有效地禁止生产使用这种方法?如果是这样,是否有解决方法?

回答

6

对于我们其他人来说,有人可以用清晰的术语来解释这个“安全问题”究竟是什么?

的搬运工/var/run/docker.sock的所有者是其中容器在运行中,采用默认组成员身份docker组主机root。这就是为什么在另一个容器中安装var/run/docker.sock可以为您提供root权限,因为现在您可以执行组合成员为docker的用户可以执行的任何操作。

这是否有效地禁止生产使用这种方法?如果是这样,是否有解决方法?

一种解决办法可能是这些职位将帮助:https://integratedcode.us/2016/04/08/user-namespaces-sharing-the-docker-unix-socket/https://integratedcode.us/2016/04/20/sharing-the-docker-unix-socket-with-unprivileged-containers-redux/

退一步说,这将是明白的地方,你需要安装var/run/docker.sock的用例有用的,看看是否有其他办法满足用例。不幸的是,如果没有问题中的用例描述,很难提供一种避免安装unix插槽的替代方案。

祝你好运,并努力做正确的事情!

2

任何可以写入dockerd套接字的进程也可以有效地在主机上进行root访问...... 那么,您可以在生产中使用或不使用该功能吗?

+1

这似乎是一个(更好)重述的报价。我认为自己写得够多了,但我一直在寻找“如何” - 一旦我看到“如何”可以利用这种方式获得root权限,那么不仅会更好地理解,而且能够确定我是否“生产“ – JoeG

+1

https://www.lvh.io/posts/dont-expose-the-docker-socket-not-even-to-a-container.html – mestia

+1

伟大的联系,因为它提供了明确的警告,不要在生产中这样做。但是,我的问题没有更多的清晰性。该链接指出:“任何可写入dockerd套接字的进程也可以有效地拥有root权限。”我的问题是:你们许多人可能会清楚,但“对于我们其他人”,这可以解释一下吗?这说明了吗? – JoeG