我目前正在进行一项设置,以便在高性能群集(HPC)上使用Docker。我们的想法是,我们组中的每个用户都应该能够在一定时间内保留一台机器,并能够以“正常方式”使用Docker。意味着通过Docker CLI访问Docker守护程序。
为此,用户将被添加到Docker组。但是这给我们带来了很大的安全问题,因为这基本上意味着用户在该机器上拥有root权限。
新想法是利用用户命名空间映射选项(如https://docs.docker.com/engine/reference/commandline/dockerd/#/daemon-user-namespace-options中所述)。正如我所看到的,这将解决我们最大的安全问题,即容器中的根与主机上的根相同。
但只要用户能够通过--userns = host绕过此功能,就不会以任何方式增加安全性。
有没有办法禁用此和其他Docker运行选项?
答案 0 :(得分:4)
用户可以通过很多方式通过泊坞机运行来提升权限,例如使用
--privileged
。
您可以通过以下方式停止
- 要么不直接提供对生产中守护进程的访问,要么使用脚本
(这不是你想要的)
- 或使用auth plugin禁止某些选项。
那是:
dockerd --authorization-plugin=plugin1
这可能会导致: