Docker对安全的支持是与生俱来的。作为一个平台,Docker为跑在其中的所有应用程序提供安全保障,不需要在Docker之外,单独部署一套安全解决方案。
目前,Docker Engine支持Linux Kernel中的所有功能。不仅如此,Docker还为用户提供了默认的安全配置,提供一种简单的用户体验。这些默认的安全配置可以为跑在Docker Engine中的应用程序提供更全面的保护,保障跑在容器中的应用程序更安全。当然,管理员可以根据自己的环境,修改和定制这些配置,设计出自己的安全方案。
最近两家第三方独立机构评估了Docker Engine使用默认配置时的安全性,以下是相关报告。
Gartner的分析师Joerg Fritsch最近在他的博客中发布了一篇文章,题目是How to Secure Docker Containers in Operation。其中提到:
“Gartner声称应用程序跑在容器中比直接跑在操作系统中更安全。即使容器崩溃了,造成的危害也是有限的。因为应用程序以容器为单位,被相互隔离开来。一个容器出错,不会影响其他容器中的应用程序,也不会影响宿主机上的应用程序。”
NCC也发布了一份白皮书,题目是Understanding and Hardening Linux Containers,对比了目前各种容器技术的安全性,包括LXC、Docker和CoreOS。测试内容涵盖攻击范围、威胁程度、以及相关的防护功能,并对比了各种容器技术使用的默认配置和推荐配置。该白皮书中提到的一个结论值得注意,在容器中运行应用程序时,添加某些推荐配置会更安全。
“容器技术具有许多优点。从安全方面来说,容器技术创造了一种新的防护方法。通过这种方法可以减少攻击范围,并通过隔离技术,使每个应用程序仅仅暴露需要的组件、接口、函数库和网络连接。”
“技术发展到现在,我相信没有借口不把Linux应用程序跑在容器中。”
– Aaron Grattafiori, NCC Group
下图描述了三种主流容器技术的安全评估结果。其中,Docker Engine的默认配置安全性最强。
Docker提出的默认安全概念包括了平台安全、内容安全和访问安全,为企业提供了一套先进的软件支持链,从根本上保证安全。Docker使用Linux的各种隔离技术,建立起一套安全框架。Docker Datacenter也发布了一系列增强功能,包括应用程序扫描、签名、基于角色的访问权限控制(Role Based Access Control)和集群配置安全等,这些功能保证了整个软件生命周期的安全。
一些领先的企业也开始使用Docker Datacenter提供的服务,帮助加强自身容器的安全性,比如世界最大的人力资源、HR业务流程外包解决方案提供商-ADP。这些企业为百万雇主管理他们员工的财务信息,已经使用容器处理支票,管理收益和存储敏感数据等。