背景信息

透明数据加密TDE(Transparent Data Encryption)可对数据文件执行实时I/O加密和解密,数据在写入磁盘之前进行加密,从磁盘读入内存时进行解密。TDE不会增加数据文件的大小,开发人员无需更改任何应用程序,即可使用 TDE 功能。

为了提高数据安全性,您可以通过RDS管理控制台或者API ModifyDBInstanceTDE启用透明数据加密,对实例数据进行加密。

注意事项

  • TDE开通后无法关闭。
  • 加密使用密钥由密钥管理服务(KMS)产生和管理,RDS不提供加密所需的密钥和证书。开通TDE后,用户如果要恢复数据到本地,需要先通过RDS解密数据
  • 对于MySQL 5.6实例,只支持实例级别的TDE开启。
  • 对于SQL Server企业版实例,只支持数据库级别的TDE开启和关闭。
  • 开通TDE后,会显著增加CPU使用率。

前提条件

  • 实例类型为RDS for SQL Server企业版或RDS for MySQL 5.6。
  • 只有阿里云主账号(即非子账号)登录才可以查看和修改TDE配置。
  • 开通TDE前需要先开通KMS。如果您未开通KMS,可在开通TDE过程中根据引导开通KMS。

操作步骤

  1. 登录 RDS 管理控制台
  2. 在页面左上角,选择实例所在地域。
    地域截图
  3. 找到目标实例,单击实例ID。
  4. 在左侧菜单栏中单击数据安全性
  5. TDE页签单击未开通左边滑块。
    说明 仅特定实例支持TDE功能,请参见前提条件

    mysql开通TDE
    sql server开通TDE
  6. 单击确定,开通TDE。
    说明 如果您未开通密钥管理服务,在开通TDE过程中会提示开启密钥管理服务,请根据引导开通KMS后,再单击未开通来开通TDE。
    • 对于MySQL实例,您需要连接数据库,执行如下命令,对要加密的表进行加密。
      alter table <tablename> engine=innodb,block_format=encrypted;
    • 对于SQL Server实例,您需要单击设置TDE,选择需要加密的数据库,单击移动到右侧已保护数据库栏,单击确定
      设置TDE

解密操作

  • 对于MySQL实例,如果您需要对TDE加密的表解密,请执行如下命令。
    alter table <tablename> engine=innodb,block_format=default;
  • 对于SQL Server实例,如果您需要对TDE加密的数据库解密,只需要在设置TDE里移除相应的数据库即可。