2016-11-28 90 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

相關問題