假设我在本地服务器上运行多个 docker 容器。当我授予第三方对我的服务器的 ssh 访问权限时,任何第三方都可以控制 docker 管理器。如何确保每个远程用户只能访问某些特定容器?
答案1
EEAA 是正确的,没有内置方法可以做到这一点。目前最好的方法是像您在其他系统上执行此操作一样。例如,您可以在 docker 容器上运行 SSH 守护程序,使用类似 Supervisord 的工具启动多个应用程序。docker 容器旨在运行一个应用程序,supervisord 等工具通过为您启动多个进程并保持它们启动来解决这个问题。
此时,您只需确保他们的公钥位于他们应该有权访问的每个 docker 容器上。但请记住,您需要启用 SELinux,最好USER
在 docker 中配置指令以作为受限用户启动容器。
答案2
Docker 没有内置此功能。您需要编写自定义包装脚本来执行访问控制。
此外,从安全角度来看,你可能需要认真考虑一下 docker 的隔离性是否足够。从一开始,Docker 就没有强调安全,而是应用程序的可移植性和部署的简易性。他们正在努力解决安全问题,但还有很多工作要做,我才会放心任何第三方访问我的其中一台主机上运行的容器。