禁用某些Docker运行选项

Sta*_*t89 11 security command-line-interface docker

我目前正在进行一项设置,以便在高性能集群(HPC)上使用Docker.我们的想法是,我们组中的每个用户都应该能够在一定时间内保留一台机器,并能够以"正常方式"使用Docker.意味着通过Docker CLI访问Docker守护程序.

为此,用户将被添加到Docker组.但是这给我们带来了很大的安全问题,因为这基本上意味着用户在该机器上拥有root权限.

新的想法是使用用户命名空间映射选项(如https://docs.docker.com/engine/reference/commandline/dockerd/#/daemon-user-namespace-options中所述).正如我所看到的,这将解决我们最大的安全问题,即容器中的根与主机上的根相同.

但只要用户能够通过--userns = host绕过这个,这就不会以任何方式增加安全性.

有没有办法禁用此和其他Docker运行选项?

Von*_*onC 5

问题22223中所述

用户可以通过多种方式通过docker run提升特权,例如使用--privileged
您可以通过以下方法停止此操作

  • 要么不直接提供对生产环境中守护程序的访问,要么不使用脚本,

(这不是您想要的)

那是:

dockerd --authorization-plugin=plugin1
Run Code Online (Sandbox Code Playgroud)

可能导致:

https://docs.docker.com/engine/extend/images/authz_deny.png

  • 这是一个基本的Docker授权插件示例:https://github.com/twistlock/authz (2认同)