软件容器无疑正处于上升期的,开发人员在构建更高效且能迅速带到市场的原生云应用程序时,更会看重容器所提供的灵活性。同时由于容器所带来的资源利用率的提高,也有益于提高生产力,降低成本。有些人认为,容器的安全性低于部署虚拟机(VM),但在适当的实现中,容器可以提供更安全的环境。网络安全是一个复杂的问题,但业内人士都在致力于开发所需的工具和流程来解决这个问题。
此外,容器和VM不是非此即彼的命题。如果你愿意,也可以将容器部署到虚拟机上,或使用像英特尔Clear容器或开源Hyper这样的技术去实现一个两全其美的方案:同时具备VM的隔离性与容器的灵活性。
容器和分布式系统带来了一个进展,使得灵活性与速度超过了传统流程。而越迟应用的企业,竞争力则会越弱。一旦你决定迁移到容器部署,还要确保采取了适当的办法步骤去保护你的基础设施。
这里有5个最佳的办法,可保护你的分布式系统:
1、使用一个轻量级的Linux操作系统
一个轻量级的操作系统,除了其他的收益外,也降低了表面的易受攻击性。这也使得应用更新容易得多,因为操作系统更新与应用程序不挂钩,而且更新后重新启动会花费更少的时间。
2、保持所有图像是最新的
保持所有图像是最新的,确保它们被打补丁,以防止最新的漏洞利用。实现这一目标的最好方法是使用一个集中的存储库来帮助进行版本控制。通过使用版本号标记每个容器,更新会更容易管理。容器本身也持有自己的依赖性,需要维护。
3、自动安全更新
自动更新能确保补丁很快应用于基础设施,将发布补丁与应用于生产之间的时间间隔最小化。解耦的容器可以相互独立更新,并且可以迁移到另一个主机,如果主机操作系统需要更新的话。无需为基础设施安全更新会影响你堆栈的其他部分而担心。
4、扫描容器图像排 除潜在缺陷
有很多工具可以帮助你做到这一点。这些工具会对比容器的已知漏洞列表,且会对你进行提醒,无论它们是探测到了一些可能会影响你容器启动的旧漏洞还是发现了一个会影响你容器运行的新漏洞。
5、不要在容器中运行无关的面向网络的服务
不在容器中运行Secure Shell(SSH)被认为是最好的做法——对容器访问而言,编排API通常会有更好的访问控制。一个好的经验法则是,如果你不希望个人容器执行日常维护任务,就不要允许任何登录访问。相对于VM来说,设计一个生命更短的容器也是一个好办法,它可以确保每个生命周期都能够获得最新的安全性能。
容器领域的安全会继续发展。通过上文中概述的5个最佳办法,我希望能有助于消除容器不安全的言论,帮助企业更好地利用容器所带来的生产力,同时尽可能保证安全。