本文介绍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和SQL Server的透明数据加密(Transparent Data Encryption,简称TDE)功能。MySQL版的TDE由阿里云自研,SQL Server版的TDE是基于SQL Server企业版的功能改造而来。
当RDS实例开启TDE功能后,您可以指定参与加密的数据库或者表。这些数据库或者表中的数据在写入到任何设备(例如磁盘、SSD、PCIe卡)或者服务(例如对象存储OSS)前都会进行加密,因此实例对应的数据文件和备份都是以密文形式存在的。
TDE加密采用国际流行的AES算法。密钥由KMS服务加密保存,RDS只在启动实例和迁移实例时动态读取一次密钥。您可以自行通过KMS控制台对密钥进行更换。
具体操作请参见设置透明数据加密。
云盘加密
针对RDS云盘版实例,阿里云免费提供云盘加密功能,基于块存储对整个数据盘进行加密,即使数据备份泄露也无法解密,最大限度保护您的数据安全。而且加密不会影响您的业务,应用程序也无需修改。
具体操作请参见云盘加密。