禁用某些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
这可能导致: