如何为`docker exec`命令

时间:2017-12-29 22:32:24

标签: docker

我已经从ubuntu图片创建了一个docker容器。其他用户可以通过docker exec -it CONTAINER_ID bash附加到此容器。有没有办法为此命令添加用户名和密码?我不希望其他用户访问我的容器。我希望当用户执行docker exec命令附加到我的容器时,它会提示询问用户名和密码。用户只能在输入正确的用户名和密码后附加到它。就像ssh那样。

1 个答案:

答案 0 :(得分:1)

访问docker套接字(由docker命令行使用)应被视为对主机的sysadmin级别访问以及在该主机上运行的所有容器。

您可以将docker守护程序配置为侦听具有TLS凭据和客户端证书验证的端口。但是,一旦用户可以访问任何docker API调用,他们就可以访问所有这些,并且没有任何登录提示。

您可以尝试使用Twistlock提供的第三方插件来实现docker的authz插件。这将允许您限制对特定TLS客户端证书的exec调用的访问。但是,它不会限制它们可以执行的容器。

可能最接近您想要的是Docker的EE产品,特别是UCP。它是一种商业工具,但它们提供了一个不同的API入口点,可以执行自己的身份验证,包括基于Web的请求的用户/密码选项,以及允许您限制对特定用户exec等调用的访问的RBAC安全性和特定的容器集合。

如果你想从容器方面这样做,我担心这样做不行。 Exec作为Linux exec系统调用直接在容器命名空间内运行,因此容器内部没有任何东西可以阻止这种访问。最好的选择是从图像中删除任何不希望任何人能够在容器中运行的命令。