解决方案架构师修炼之道
上QQ阅读APP看书,第一时间看更新

3.9.5 数据安全

数据安全是需要保护的最为关键的方面之一。毕竟,在访问安全、Web安全、应用程序和网络安全方面设置的层层防护都是为了保护数据安全。数据可以在系统之间交换,因此在传输过程中也需要确保数据安全,放置在数据库或某些存储空间中的静态数据也应受到保护。

解决方案设计需要通过规划安全套接层/传输层安全(Secure Socket Layer/Transport Layer Security,SSL/TLS)和安全证书来保证数据传输的安全性。静态数据则应通过各种对称或非对称加密机制来保护。解决方案设计还应该根据应用程序的需要规划正确的密钥管理方法来保护加密密钥,这可以通过硬件安全模块或云供应商提供的密钥管理服务来实现。

在确保安全性的同时,必须建立一种机制以在任何安全漏洞发生时立刻识别并采取行动。为每一层添加自动化的安全违规监控并即时告警是解决方案设计不可或缺的一部分。在软件开发生命周期中,DevSecOps将最佳实践应用于实现安全需求与安全响应的自动化,它也因此被越来越多的组织所采用。更多关于DevSecOps的内容见第12章。

为了遵守当地法规,解决方案设计需要包括审计机制。在金融领域,必须严格遵守诸如支付卡行业数据安全标准(Payment Card Industry Data Security Standard,PCI DSS)之类的合规性要求以获得系统中每笔交易的日志记录,这意味着所有的活动都需要记录并在需要时发送给审计师。任何个人身份信息(Personal Identif iable Information,PII)数据(例如客户电子邮件ID、电话号码和信用卡号)都需要加密,以对存有PII数据的应用程序进行访问权限控制。

在自行管理的内部环境中,你需要自己负责基础设施和应用程序的安全并获得合规性认证。但是在公有云环境中,如AWS之类的环境会帮助你减轻这些负担,因为基础设施的安全性与合规性由云供应商负责。客户则需要对应用程序的安全性负责,并通过完成所需的审计来确保其合规性。