【编者的话】本文是对11.16欧洲DockerCon大会的简短报道。重点在Docker容器安全领域的新特性,对于在生产环境中更安全使用Docker有很大的参考价值。
Docker 公司在巴塞罗那举办的 DockerCon Europe 大会上宣布三款安全工具以及容器的一些新特性。
这些工具在不影响开发者正常工作流的情况下,使开发者使用容器更加安全。它们包括:使用Yubico硬件密钥、支持用户名称空间,这样Docker容器就不再需要root权限连接了。这两个新特性可以在Docker实验版本频道获取。
Docker公司今天还宣布它们会定期扫描Docker Hub上的90多个官方仓库,来检查是否有潜在的漏洞,并且发布它们的扫描结果。
Docker创始人兼CTO Solomon Hykes在他的keynote中强调安全非常重要,但是人们往往在事后才注意到。“这些就像烘焙中需要在开始就备烘焙的食材”【译者注:Solomon Hykes在这里以烤面包为例子,在开始就要先烤一些原料备用】。他指出:“你们需要在使用Docker初期就考虑好它的安全问题”。
作为Docker的产品总监,Scott Johnston在本周早些就告诉我,Docker团队的目标是改善Docker平台同时确保使用Docker的开发者们不会去做一些“让他们平时的工作流不自然的事情”(Hykes称之为“美好而舒适的开发流”)。例如,新的硬件签名特性,它是基于最近推出的新的Docker Content Trust框架,这个框架允许容器的数字签名。
现在,拥有同样是今天推出的YubiKey 4的开发者可以签名他们的容器,确保他们的Apps在Docker整个开发流程中完整一致。Docker与Yubico合作建立了触摸即签名的编码签名系统使得开发人员能够快速进入Docker命令行。
正如Johnston强调的那样,可信任的内容在镜像层又增加了安全层,但是开发者并不需要使用这一层。
当人们谈到容器和安全时,事实是Docker守护式进程和容器需要root权限才能连接到宿主机上,而这长期以来一直被人们所诟病。Johnston也承认这一点,他指出早期使用Docker也有好处因为它“促进市场的发展”。但是随着容器日益流行安全问题也日益凸显。
在新的实验版本中,管理员可以分离容器和Docker守护式进程间的权限。Docker守护式进程仍然需要root权限,容器不再需要。但是Docker公司指出,这一改进使得运行中的Docker容器更加安全,例如,现在部门和团队可以获得连接控制容器的权限了。
在很多情况下,容器的安全开始于运行在容器中的应用。为了在此做些改进,今天Docker公司宣布将开始扫描官方Docker Hub仓库中的容器是否存在潜在的漏洞(Heartbleed就是一个很好的例子)。
如果这些你听起来很熟悉的话,是因为你可能了解到CoreOS最近对它的注册表中的容器做很类似的事情。就像CoreOS公司一样,Docker将会发布容器的安全报告,就像Johnston对我说的那样,这将协同上游的生态系统以保证这些问题尽快得以修复。
90个注册Docker Trust的官方仓库,大约占Docker Hub上所有下载镜像数量的20%。今天Hykes指出,经团队测试后,实际上这项服务已经在静静地保护着这些版本库两个月了。该项计划目的是要在未来拓展这个工具到所有的镜像,包括私有的镜像。