我正在尝试使服务器上的docker更安全。 主要的问题是,大多数人都说“如果一个人可以访问泊坞窗,他们也可以是root”,对于一个pipe理员来说,这不是你想要的。
详细说一下,他们可以使用-v
并将/etc
挂载到容器中的/mnt
上,并更改影子文件并获得对主机的访问权限。 他们可以使用-d
或特权选项来做更多的事情。
所以基本上,有一些我想“尝试”和限制的东西。
--add-cap
-d
(某些项目?) 我的想法到目前为止:
可选项是将容器提交给git代码,并让“检查器”validationDockerfile
的内容并为其创build映像。 然后签署该图像并自动部署。 (但是这不会给他们太多的自由)
另外,删除绑定量并不是最好的。 如果我们有一个Dockerfile
插件,说“你只能挂载在/data
,用户X”, Dockerfile
中的USER
是那个用户X,会更简单些。
像docker-novolume-plugin这样的东西对于卷来说已经是一个不错的开始,但是并不限制绑定卷。
最后问题是,我怎么让用户build立/拉/运行泊坞窗图像作为自己的用户/docker,不能根系统。 只要工作,就不一定是完美的。
保护docker
引擎需要关注许多不同的方面,纵深防御总是关于安全层 。
你列出的要求之一,限制什么用户可以命令docker
引擎做,可能是最重要的,因为,目前, docker
引擎不实施授权控制。
您的select包括:
像Twistlock这样的闭源解决scheme,这是一个实施RBAC和策略控制来访问Docker API的项目
OpenShift Origin是一个开源项目,以安全约束和细粒度授权策略的forms实现基于angular色的访问控制。 部署起来相当容易,对于开箱即用的解决scheme有很大的帮助。
我也build议研究docker
引擎可以部署到的不同操作系统,并build议不要使用通用操作系统,而要使用专门的操作系统,如Atomic 。 primefaces和OpenShift一起,将确保您也可以:
docker
世界正在进行的一项工作 。 docker
套接字的访问 ,它将控制是否允许在容器之间共享文件描述符 ,它可以为每个容器/容器组分配不同的MCS级别 ,以隔离它们与主机和其他容器。