Security

如何保護 docker 主機不允許生根

  • June 2, 2016

我正在嘗試使伺服器上的 docker 更加安全。主要問題是大多數人說“如果一個人可以訪問 docker,那麼他們也可以是 root”,因為管理員很少這樣做,這不是您想要的。

詳細地說,他們可以使用-v並掛載/etc/mnt容器中並更改影子文件並獲得對主機的訪問權限。他們也可以使用-d, 或特權選項來做更多事情。

所以基本上,我想“嘗試”和限制一些事情。

  1. 卷綁定掛載
  2. 特權
  3. --add-cap
  4. -d(某些項目?)

到目前為止我的想法:

  • docker bash 腳本的別名,在其上使用 sudo 並正則表達式所有他們不應該做的事情。
  • 打開遠端 api,保護它,也許用 nginx 和 nginx 中的正則表達式對其進行反向代理,這是他們不應該做的事情。
  • 使用其他工具?Mesos/馬拉松/蜂群/造船廠/隨便

可選項目是使容器送出到 git 程式碼,並讓“檢查器”驗證內容Dockerfile並為它們創建圖像。然後簽署該映像並自動部署它。(但這不會再給他們太多的自由了)

此外,刪除綁定卷也不是最好的。如果我們有一個 docker 外掛,上面寫著“你只能/data以使用者 X 的身份掛載”,那會簡單得多,其中那個USERDockerfile使用者 X。

docker-novolume-plugin這樣的東西已經是卷的一個很好的開始,雖然不限制綁定卷。

最後的問題是,我怎樣才能讓使用者以他們自己的使用者/docker 身份建構/拉取/執行 docker 映像,而不能 root 系統。不一定是完美的,只要它有效。

保護docker引擎需要關注許多不同的方面,而縱深防禦總是與安全****層有關。

您列出的要求之一是限制使用者可以命令docker引擎執行的操作,這可能是最重要的要求之一,因為到目前為止,docker引擎還沒有實現授權控制。

您的選擇包括:

我還建議研究引擎可以部署到的不同作業系統docker,並建議不要使用通用作業系統,而是使用專用作業系統,例如Atomic。Atomic 和 OpenShift 一起,將確保您還可以:

引用自:https://serverfault.com/questions/779197