云数据库Redis支持透明数据加密TDE(Transparent Data Encryption),可对RDB数据文件执行加密和解密。您可以通过控制台启用TDE功能,对RDB数据进行自动加密和解密,以满足提升数据安全性及合规需要。

前提条件

  • Redis实例为本地盘版的性能增强型实例。
  • Redis实例的小版本为1.7.1及以上,查看及升级小版本的方法,请参见升级小版本

背景信息

云数据库Redis的TDE功能可以将RDB数据文件在写入磁盘之前进行加密,从磁盘读入内存时进行解密,具有不额外占用存储空间、无需更改客户端应用程序等优势。

图 1. TDE加密
TDE加密

影响

由于开启TDE功能后无法关闭,在开启前,需要评估对业务的影响,具体如下:

注意事项

  • TDE的开启粒度为实例级别,不支持Key(键)或DB(库)粒度的控制。
  • TDE加密对象为数据落盘文件(即RDB备份文件,如dump.rdb)。
  • TDE所使用的密钥,由密钥管理服务KMS(Key Management Service)统一生成和管理,云数据库Redis不提供加密所需的密钥和证书。

操作步骤

  1. 登录Redis管理控制台
  2. 在顶部菜单栏的左上角,选择实例所属的地域。
  3. 实例列表页,单击目标实例ID。
  4. 在左侧导航栏,单击TDE设置
  5. 单击打开TDE状态右侧的开关。
    说明 如果小版本过低,该开关将处于不可单击状态,查看及升级小版本的方法,请参见升级小版本
  6. 在弹出的对话框中,选择使用自动生成密钥或自定义密钥,然后单击确定
    图 2. 开启TDE选择密钥
    开启TDE选择密钥
    说明
    • 如果您的阿里云账号首次为Redis实例开启TDE功能,请根据页面弹出的提示完成授权(授权的角色为AliyunRdsInstanceEncryptionDefaultRole),授权完成后才可以使用相关密钥服务。
    • 关于自定义密钥的创建方法,请参见创建密钥
    设置完成后,实例进入TDE修改中状态,当转变为运行中状态即代表操作完成。

相关API

API接口 说明
ModifyInstanceTDE 为Redis实例开启透明数据加密TDE功能,支持自定义或自动生成密钥。
DescribeInstanceTDEStatus 查询Redis实例是否开启了TDE加密功能。
DescribeEncryptionKeyList 查询Redis实例的TDE加密功能可使用的自定义密钥列表。
DescribeEncryptionKey 查询Redis实例的透明数据加密TDE自定义密钥的详情。
CheckCloudResourceAuthorized 查询Redis实例是否已被授权使用KMS密钥服务。

常见问题

  • Q:下载了加密后的RDB数据文件,如何进行解密?

    A:目前无法解密,您可以将备份集恢复至新实例,恢复完成后,数据即完成自动解密。

  • Q:为什么客户端读取到的数据还是明文显示的?

    A:加密的对象是数据落盘文件(即RDB备份文件),而查询数据时读取的是内存数据(未被加密),所以是明文显示。