数据加密

本文介绍RDS提供的数据加密功能。

SSL

RDS提供MySQL、SQL Server和PostgreSQL的安全套接层协议(Secure Sockets Layer,简称SSL)。您可以使用RDS提供的服务器端的根证书来验证目标地址和端口的数据库服务是不是RDS提供的,从而可有效避免中间人攻击。除此之外,RDS还提供了服务器端SSL证书的启用和更新能力,以便用户按需更替SSL证书以保障安全性和有效性。

需要注意的是,虽然RDS提供了应用到数据库之间的连接加密功能,但是SSL需要应用开启服务器端验证才能正常运转。另外SSL也会带来额外的CPU开销,RDS实例的吞吐量和响应时间都会受到一定程度的影响,具体影响与您的连接次数和数据传输频度有关。

具体操作请参见设置SSL

TDE

RDS提供MySQL、PostgreSQL和SQL Server的透明数据加密(Transparent Data Encryption,简称TDE)功能。MySQL和PostgreSQL版的TDE由阿里云自研,SQL Server版的TDE是基于SQL Server企业版的功能改造而来。

当RDS实例开启TDE功能后,您可以指定参与加密的数据库或者表。这些数据库或者表中的数据在写入到任何设备(例如磁盘、SSD、PCIe卡)或者服务(例如对象存储OSS)前都会进行加密,因此实例对应的数据文件和备份都是以密文形式存在的。

TDE加密采用国际流行的AES算法。密钥由KMS服务加密保存,RDS只在启动实例和迁移实例时动态读取一次密钥。您可以自行通过KMS控制台对密钥进行更换。

具体操作及测试报告请参见设置透明数据加密透明数据加密TDE测试报告

云盘加密

针对RDS云盘版实例,阿里云免费提供云盘加密功能,基于块存储对整个数据盘进行加密,即使数据备份泄露也无法解密,最大限度保护您的数据安全。而且加密不会影响您的业务,应用程序也无需修改。

具体操作请参见云盘加密

全密态云数据库

全密态功能是阿里云RDS PostgreSQL的一项数据安全功能。在RDS PostgreSQL实例中开启并使用该功能,您可以对数据库表中的敏感数据列进行加密,这些列中的敏感数据将以密文进行传输、计算和存储。

全密态功能根据实例类型不同,可通过以下两种方案实现:

  • Intel SGX 安全增强型实例:全密态功能可以利用该规格为用户提供基于可信执行环境(Trusted Execution Environment,简称TEE)的数据安全保护。此时,全密态功能支持对密文数据进行所有的数据库操作。可信执行环境依赖Intel SGX 安全增强型规格提供对密文数据进行比较和其它常见计算,具体规格清单请参见RDS PostgreSQL主实例规格列表

  • 其它规格(非Intel SGX 安全增强型规格):全密态功能可以利用密码学方法提供数据安全保护,此时其能够支持的操作类型较少。