禁用某些Docker运行选项

我目前正在进行一项设置,使Docker在高性能集群(HPC)上可用。 这个想法是,我们组中的每个用户都应该能够预留一台机器一段时间,并且能够以“正常的方式”使用Docker。 通过Docker CLI访问Docker守护进程的含义。

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

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

但是只要用户能够通过–userns = host来绕过这一点,这不会以任何方式增加安全性。

有没有办法来禁用这个和其他Docker运行选项?

如问题22223所述

有很多方法可以让用户通过--privileged运行提升权限,比如使用--privileged
你可以通过以下方式来阻止

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

(这不是你想要的)

  • 或者通过使用auth插件来禁止某些选项。

那是:

 dockerd --authorization-plugin=plugin1 

这可能导致:

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