适合不可变基础设施、可提高安全性的可引导应用

阅读数:354 2016 年 3 月 17 日

话题:DevOps

QCon 伦敦 2016 大会上,Boxfuse首席执行官Axel Fontaine谈了“可引导应用(Bootable App)”模式,,这是一个将不可变基础设施部署到云上的裸机镜像。这个最小镜像包含了栈中的所有层次,包括 OS 内核、库和运行时环境,但空间占用仍然很小(MB 级而不是 GB 级),减少了镜像上传时间和存储成本,同时还显著缩小了运行实例的攻击面

Fontaine 提出,这个最小镜像只包含栈底层中绝对必要的组件。该镜像然后会包含应用程序本身、应用程序服务器、相应的语言运行时及所需的库、OS 内核。下图是可引导应用(归功于 Axel Fontaine)中典型组件集与传统全功能镜像的对比:

由于这个最小镜像省略了许多常常成为攻击点(例如SSH)的标准 OS 工具,得到的实例就避开了已知的和将来的漏洞(Fontaine 建议采用集中式日志系统,确保日志在任何实例终止很长一段时间后仍然可以访问)。

对于应用程序安全而言,实例生命期短暂是一个永恒的优势,因为它们每次部署时会被替换,这样,对于任何特定实例的成功攻击,其持续时间和范围就受到了限制。Fontaine 对其影响提出了警告:实例需要在任何时点都是可抛弃的(数据存储应该有自己的安全和可靠性机制),而会话应该加密并登记到客户 Cookies 中。

对于成本和安全效率,Fontaine 还建议最小化不必要的复杂性。例如,在弹性负载均衡器就足够的情况下安装复杂的服务发现工具;当应用程序可以使用云平台提供的原生服务运行和扩展时引入容器(及相关的镜像管理、调度 & 编排、容量管理和网络方案)。组织应该专注于提升应用程序的业务价值,简化应用程序交付过程,考虑运行一项服务的整体成本(包括安装配置的时间及管理的复杂性),而不只是云托管成本。

查看英文原文:Bootable Apps for Immutable Infrastructure and Security