减少 Docker 守护进程的功能

减少 Docker 守护进程的功能

我想减少用于运行生产容器的 Docker 守护进程的功能,以减少它们的攻击面。

我想要:

  • 限制从单个注册表提取数据
  • 不允许push
  • 不允许build
  • 可能不允许许多其他功能

这可能是关于阻止守护进程的 REST API 的一些路由。

我读过这个有关减少守护进程攻击面的 Docker 文档但它没有提到禁用守护进程功能。

有可能吗?我该怎么做?

答案1

首先,访问 docker API 通常相当于主机上的 root 访问权限。不要向不信任 root 权限的用户授予此 API 的访问权限。docker 引擎正在努力实现无 root 支持,因此您可能需要调查此事,而不是尝试锁定 API。

大多数限制引擎的尝试都涉及使用更高级别的 API 包装 docker API,例如 Kubernetes、Docker EE 和其他更高级别的抽象提供细粒度的 RBAC,而无需直接访问 docker API。

也就是说,你可以使用authz 插件。最初我所知道的唯一开源实现是由扭锁. 最近,OPA 提供了自己的实现。只需意识到任何拥有该 API 访问权限的用户都可以使用他们在 docker 中拥有的根级别访问权限来禁用或绕过该插件。

相关内容