确保AWS关系数据库服务安全性关键4步
AWS将安全性视为共同的责任,所以管理员必须采取所有必要的步骤来确保RDS内数据的安全。
AWS提供了数种功能来保护它的关系数据库服务。但就有如许多其他的Amazon Web服务产品一样,RDS也归类于“共同责任”的安全模型之下。在这个实例中,AWS管理着底层的基础架构,包括RDS、客户操作系统、AWS基础架构和AWS基础服务等等,但IT团队仍然需要对自己的数据库安全负责。
管理员必须考虑以下四个方面,才能保持AWS RDS内的安全性,隐私性及数据完整性。
1.访问控制
管理员都想要确保只有授权用户能够访问公司数据库以及特定的数据块。AWS的弹性计算云(EC2)安全组允许云管理员将连接限制在某个授权的特定IP地址范围内。经由你的AWS帐户,你可以定义安全组和额外的特定IP地址,只允许它们访问数据库。这样能够在网络层就保护好数据。但如果有未授权的用户获得在你允许IP范围内的某台电脑的访问权限怎么办?
此外,授权用户可能在无意间删除了数据。在这些情形中,AWS身份及访问管理(IAM)可以替用户及用户组定义定制的访问政策。这对你的关系数据库服务操作及资源提供了更细化的控制。IAM的多因素认证支持则更进一步,确保了认证的安全性。
在将网络限制在一个有限的IP地址段内进行安全保护,以及确保只有授权用户能够访问你的RDS之后,你可以微调用户能够访问的数据表和对象组以及他们能够执行的操作。一个RDS帐户一开始创建时有一组主用户和密钥。通常来说,数据库管理员就是主用户,但你也可以创建更多的主用户并定义他们在数据库里的访问权限。你也可以从数据库内部来加强连接的安全性,通过使用SSL连接的方式。
2.防火墙
你需要一个防火墙来将数据库隔离于未授权的连接之外,并且监控和审计内部的活动。但是,你并没有数据库或是它所在的硬件的直接访问权限。
这就是云服务的本质。Amazon关系数据库服务允许你在一个独立的虚拟机里安装第三方防火墙,来监控和阻挡对你RDS实例的攻击。在使用安全组及限制 IP范围来阻挡不需要的访问之外,AWS也提供虚拟私有云(VPC),一种存在于组织层,能够隔离存放数据库的基础架构的防火墙。VPC能够限制云不能够被互联网直接访问,最终给予企业更多的控制。
为了能监控你的数据库操作和性能,Amazon CloudWatch提供了各式各样的指标,包括CPU的使用,连接的数量,硬盘的空间使用,内存的使用等等。这些性能指标可以帮助我们探测类似于分布式拒绝服务之类的恶意攻击,管理员也可以设立各种不同的警报来通知他们使用的高峰期或者性能的衰竭。
3.加密
不同的访问控制和防火墙机制对于预防未授权远程访问你的数据库是很有帮助的,但你必须谨记你的数据是存在真实的硬件上的。因此,你必须保证它的私密性和安全性,即便有未授权的人员获得了物理上的对那台机器的访问并读取了上面的数据。这就是数据加密派上用场的时候,不论是在数据从数据库传出还是传入的时候,或者是当它处于静态的时候。
要达成传输间的加密,你必须确定所有对AWS RDS的访问都是经由安全的HTTP(HTTPS)。有几种数据库还支持从数据库内部禁用非安全的连接的功能。要注意的是,加密和解密数据可能会产生一些数据库操作的延迟。
要完成对静态数据的加密,Amazon RDS为Oracle和SQL Server提供了一个透明数据加密(TDE)设施。TDE允许管理员使用一个256位的AES主密钥加密数据以及加密密钥。除了这个方式,你唯一能达到静态加密的选择就只有使用标准加密库,例如OpenSSL或Bouncy Castle来选择性的替数据库字段加密。
4. 审计和报告
要真的了解数据库内部发生的状况,以及要遵循有关存储数据的不同规则,管理员必须检视所有数据库内部的活动,并生成有意义的报告。Amazon CloudTrail就是个能够提供API调用及相关事件完整历史的数据库审计服务。