操作场景
云数据库 MySQL 提供透明数据加密(Transparent Data Encryption,TDE)功能,透明加密指数据的加解密操作对用户透明,支持对数据文件进行实时 I/O 加密和解密,在数据写入磁盘前进行加密,从磁盘读入内存时进行解密,可满足静态数据加密的合规性要求。
限制条件
- 实例类型须为 MySQL 5.7、MySQL 8.0。
- 已开通密钥管理服务 KMS。如未开通,可在开通数据加密过程中根据引导开通 KMS。
- 已授予 KMS 密钥权限。如未授予,可在开通数据加密过程中根据引导进行授权。
- 操作账号需具有 QcloudAccessForMySQLRole 的权限,如无权限,可在开通数据加密过程中根据引导进行授权。
说明:
- 加密使用的密钥由 密钥管理服务 KMS 产生和管理,云数据库 MySQL 不提供加密所需的密钥和证书。
- 透明数据加密(Transparent Data Encryption,TDE)功能不会额外收费,但密钥管理服务 KMS 有可能产生额外费用,请参考 计费概述。
- 当账号处于欠费状态时,无法从 KMS 获取密钥,可能导致迁移、升级等任务无法正常进行,请参见 欠费说明。
注意事项
- 撤销授权关系后,重启会造成 MySQL 数据库不可用。
- TDE 加密功能开通后无法关闭。
- 开启 TDE 加密功能后,用户如果要恢复数据到本地,需要先解密数据。
- 开启 TDE 加密功能后,可提高静态数据的安全性,但同时会影响访问加密数据库的读写性能,请结合实际情况选择开启 TDE 加密功能。
- 如果主实例关联灾备实例,需要主动开通灾备实例的 TDE 加密功能,主实例才能顺利使用数据加密,否则会存在灾备实例数据同步失败的问题。
- 开启 TDE 加密功能后,账户余额需大于等于0,否则会因为无法访问密钥管理系统而导致实例迁移失败。
- 开启 TDE 加密功能后,会增加 CPU 资源的消耗,大约会影响5%左右的性能。
操作步骤
开启 TDE 加密功能
- 登录 MySQL 控制台,在实例列表,单击实例 ID 或操作列的管理,进入管理页面。
- 选择数据加密页,单击加密状态后的开关。
注意:
- 启用数据加密功能的实例,不支持使用物理备份恢复至其他主机上的自建数据库。
- 数据加密开通后不可关闭。
- 在弹出的对话框,开通 KMS 服务和授予 KMS 密钥权限,选择密钥后,单击加密。
- 选择使用腾讯云自动生成的密钥时,由腾讯云自动生成密钥。
- 选择使用已有自定义密钥时,可选择自己创建的密钥。
说明:
如无自定义密钥,需单击前往创建,在密钥管理系统控制台创建密钥,详情请参见 创建密钥。
- 选择使用腾讯云自动生成的密钥时,由腾讯云自动生成密钥。
加密数据表
开启 TDE 加密功能后,用户需对 MySQL 的表执行如下 DDL 操作才能进行数据加密。
- 如果您在创建表时对表进行加密,请执行如下命令:
CREATE TABLE t1 (c1 INT) ENCRYPTION=’Y’;
- 如果您对已创建的表进行加密,请执行如下命令:
ALTER TABLE t1 ENCRYPTION=’Y’;
解密数据表
开启 TDE 加密功能后,用户还需要对 MySQL 的表进行如下 DDL 操作才能进行数据解密。
如果您要对加密的表进行解密,请执行如下命令:
ALTER TABLE t1 ENCRYPTION=’N’;