透明数据加密TDE(Transparent Data Encryption)可对数据文件执行实时I/O加密和解密,数据在写入磁盘之前进行加密,从磁盘读入内存时进行解密。TDE不会增加数据文件的大小,开发人员无需更改任何应用程序,即可使用TDE功能。
前提条件
- 仅产品系列为集群版或单节点的PolarDB MySQL集群支持TDE,历史库不支持TDE。
集群版和单节点的PolarDB MySQL集群须满足如下版本要求:
产品系列 版本 是否支持TDE 集群版 5.6 Revision version需为5.6.1.0.21或以上。 5.7 Revision version需为5.7.1.0.3或以上。 8.0 Revision version需为8.0.1.1.1或以上。 单节点 5.6 Revision version需为5.6.1.0.21或以上。 5.7 Revision version需为5.7.1.0.3或以上。 8.0 Revision version需为8.0.1.1.1或以上。 历史库 8.0 不支持。 - 已开通KMS。如果您未开通KMS,可在开通TDE过程中根据引导开通KMS。更多关于KMS相关信息请参见密钥管理服务。
背景信息
加密使用的密钥由密钥管理服务(KMS)产生和管理,PolarDB不提供加密所需的密钥和证书。部分可用区不仅可以使用阿里云自动生成的密钥,也可以使用自带的密钥材料生成数据密钥,然后授权PolarDB使用。
注意事项
- TDE开通后无法关闭。
- 开通TDE后,如果是IO bound场景,可能会对数据库性能产生一定影响。
- 启用TDE加密会导致PolarDB集群重启,请谨慎操作。
- 已加入全球数据库网络的集群无法开启TDE功能,已开启TDE功能的集群也无法加入全球数据库网络。
- 使用已有自定义密钥时,需要注意:
- 禁用密钥、设置密钥删除计划或者删除密钥材料都会造成密钥不可用。
- 撤销授权关系后,重启PolarDB集群会导致PolarDB集群不可用。
- 需要使用主账号或者具有
AliyunSTSAssumeRoleAccess
权限的账号。
使用由阿里云自动生成的密钥
使用已有自定义密钥
加密操作
登录数据库,执行如下命令,对要加密的表进行加密。
alter table <tablename> encryption= 'Y';
解密操作
如果您要对TDE加密的表解密,请执行如下命令。
alter table <tablename> encryption= 'N';
常见问题
- Q:开启TDE后,常用数据库工具(Navicat等)还能正常使用吗?
A:可以正常使用。
- Q:加密后查看数据为什么还是明文的?
A:查询数据时会解密并读取到内存,所以是明文显示。开启TDE后存储的数据是加密的。
在文档使用中是否遇到以下问题
更多建议
匿名提交