減少 Docker 守護程式的功能

減少 Docker 守護程式的功能

我想減少用於運行生產容器的 Docker 守護程序的功能,以減少其攻擊面。

我想要:

  • 限制從單一註冊表中提取
  • 不允許push
  • 不允許build
  • 可能不允許許多其他功能

這可能是為了阻止守護程式的 REST API 的某些路由。

我讀過這個有關減少守護程序攻擊面的 Docker 文檔但它沒有提到禁用守護程式功能。

有可能嗎?我怎樣才能做到這一點?

答案1

首先,對 docker API 的存取通常相當於主機上的 root 存取。請勿授予您不信任其 root 身分的使用者存取此 API 的權限。無根支援的工作正在透過 docker 引擎進入 GA,因此您可能需要對此進行調查,而不是嘗試鎖定 API。

大多數限制引擎的嘗試都涉及使用更高層級的 API 來包裝 docker API,例如 Kubernetes、Docker EE 和其他更高層級的抽象提供細粒度的 RBAC,而不提供對 docker API 的直接存取。

也就是說,您可以按照您的要求使用授權插件。最初我所知道的唯一開源實作是由扭鎖。最近,OPA 提供了自己的實現。只需要意識到,任何具有該 API 存取權的使用者都可以使用 docker 擁有的根級存取權來停用或繞過該外掛程式。

相關內容