在生产环境中采用与部署微服务应用的决策上,很显然安全性占据了非常重要的角色。根据451 Research的研究报告《2016年软件定义基础架构前景展望》:在未来一年中,将近45%的企业或已实现,或计划推出基于容器的应用。随着在企业与容器应用方面DevOps实践逐渐普遍起来,安全管理者需要掌握维护应用安全的诀窍。下面这四条正是确保微服务应用安全的最佳实践范例。
第一条:发现并监控服务间的通讯通常来说,安全管理者并不了解:在微服务应用中不同服务间的交互哪些是允许的。尽管在需要确保应用安全性时,管理者需要配置安全策略,并基于应用部署指南或者其它来自开发者的非正式指导来管理相应的交互。随着应用发展,新服务上线,规则也可能会修改。
迎接这一挑战,缓解问题的方式之一就是观察并可视化服务间的通讯,通过对应用行为的理解,建立起相应的策略基准线。服务发现机制能自动检测到应用中出现的新服务,而使用这些功能可以让开发者与管理者了解服务的实时交互与性能表现,也有助于安全团队发现异常的沟通模式,甚至识别潜在的漏洞。
第二条:对应用与服务进行分段或独立
微分段是在应用之间通过策略建立起屏蔽,按颗粒度分段来保障各部分的安全。微分段可以使用相对较粗的颗粒度,比如将开发环境与生产环境相隔离;或者更细致一些的,比如管理电子商务应用中的目录服务与订单管理服务之间的交互。对于在微服务中的分段执行工作,在每个主机所运行的服务实例中,策略以集群为级别来执行。
第三条:加密传输数据与静态数据对应用或服务间数据传输进行加密,使得应用合乎要求,同时也提高其安全性(特别是公共网络上的数据安全性)。保持证书更新、管理软件版本、修复已知SSL问题。在工具上的投入有助于管理与分发密匙,在解决资源扩展的问题时保持更新密匙,这样加密就不会影响到性能了。
第四条:自动化策略管理与配置跨越不同系统与重复任务的复杂管理功能经常会出现人为的错误,最应当避免却时常出现的安全事故源头仍是人为的错误,比如配置错误或者忘记更新。我们的目标是:将诸如可在不同应用间复制的策略定义、将管理与开发角色相分离、管理SSL证书与密匙等任务自动化,以减少人为错误发生;而距离这一目标,我们还有很长的路要走。同样,想要将整个堆栈的部署、管理与维护等任务自动化,以提高整体动态环境的安全状态评估值,也有许多的工作需要完成。
来源:darkreading.com
编译:孙薇
责编:周建丁(zhoujd@csdn.net)