4 第二层安全性:保护云基础设施
本章内容包括
■在持续交付中对基础设施进行自动化安全测试
■通过安全组来限制对基础设施组件的网络访问
■在不牺牲安全性的情况下,通过SSH开放管理员级访问
■严格加强对发票应用数据库的访问控制
在第2章中,为托管发票应用而构建的环境存在着一些安全问题。在第3章中,应用层的安全性得到了修正,你也学会了测试驱动安全是如何将测试直接集成到CI流水线之中的。你用到了像CSP这样的浏览器安全技术,还有像OpenID Connect这样的身份验证协议,以及像CSRF令牌这样的编程技术,解决了应用自身的漏洞。在第4章我们将继续“保护发票应用”的旅程,这一章将深入到基础设施层,重点关注如何增强服务的网络、服务器和数据库的安全控制。我们将继续应用TDS原则,在流水线中增加安全测试,这一次是在持续交付这个层级。
在第2章的结尾处,执行的安全审计列出了我们现在要修正的问题:
•首先,要限制对数据库的网络访问,在初始设置时,数据库完全暴露给了互联网。现在,只有发票应用才需要访问数据库,你将使用Amazon的安全组来更好地实现网络流量过滤。
•运维人员通常需要访问基础设施组件来调试复杂的问题。我们路线图上的第二个要点就是要构建被称为SSH堡垒机的安全入口,让团队在不牺牲安全性的前提下连接数据库和服务器。你将使用多因子验证和健壮的密码协议堡垒机来进行加固。
•最后,我们回到数据库的自身配置,讨论不用数据库管理员账户就可以访问数据模式的方式。你为运维人员创建的是管理员账户,为不能访问敏感信息的开发人员创建的是只读账户,为应用分配的是有足够操作权限的读写账户,而不是完全的管理员账户。
在开始增强基础设施安全性之前,我先在流水线中引入一个新的组件,它被设计用来对基础设施执行安全测试,并在全部测试都通过后触发发票应用的部署。这个新的组件叫作“部署器”,你的第一个任务就是把它集成到基础设施中。