设置透明数据加密TDE
透明数据加密TDE(Transparent Data Encryption)可对数据文件执行实时I/O加密和解密,数据在写入磁盘之前进行加密,从磁盘读入内存时进行解密。TDE不会增加数据文件的大小,开发人员无需更改任何应用程序,即可使用TDE功能。
前提条件
- 实例类型为:
- RDS MySQL 5.6
- RDS MySQL 5.7高可用版(本地盘)
- 已开通KMS。如果您未开通KMS,可在开通TDE过程中根据引导开通KMS。
背景信息
注意事项
使用由阿里云自动生成的密钥
使用已有自定义密钥
加密操作
登录数据库,执行如下命令,对要加密的表进行加密。
- MySQL 5.6
alter table <tablename> engine=innodb,block_format=encrypted;
- MySQL 5.7
alter table <tablename> engine=innodb,encryption='Y';
解密操作
如果您要对TDE加密的表解密,请执行如下命令。
- MySQL 5.6
alter table <tablename> engine=innodb,block_format=default;
- MySQL 5.7
alter table <tablename> engine=innodb,encryption='N';
常见问题
- 开启TDE后,常用数据库工具(Navicat等)还能正常使用吗?
可以正常使用。
- 加密后查看数据为什么还是明文的?
查询数据时会解密并读取到内存,所以是明文显示。开启TDE可以防止备份泄露导致数据泄露,备份文件是加密的,无法用于恢复到本地,如果要恢复数据到本地,需要先解密数据。
相关API
API | 描述 |
---|---|
ModifyDBInstanceTDE | 开启RDS实例透明数据加密。 |
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。
评论