禁用某些Docker运行选项

时间:2016-11-07 15:25:19

标签: security docker command-line-interface

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

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

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

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

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

1 个答案:

答案 0 :(得分:4)

正如issue 22223

中所述
  

用户可以通过很多方式通过泊坞机运行来提升权限,例如使用--privileged
  您可以通过以下方式停止

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

(这不是你想要的)

  

那是:

dockerd --authorization-plugin=plugin1

这可能会导致:

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