开启透明数据加密

最近更新时间:2024-10-18 14:14:23

我的收藏

操作场景

云数据库 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 加密功能后,当账号处于欠费状态时,无法从 KMS 获取密钥,可能导致迁移、升级等任务无法正常进行。
开启 TDE 加密功能后,会增加 CPU 资源的消耗,大约会影响5%左右的性能。
开启 TDE 加密功能后,经过数据库身份验证的应用和用户可以透明地访问应用数据。

操作步骤

开启 TDE 加密功能

1. 登录 MySQL 控制台,在实例列表,单击实例 ID 或操作列的管理,进入管理页面。
2. 选择数据安全页,单击加密状态后的开关。
注意:
启用数据加密功能的实例,不支持使用物理备份恢复至其他主机上的自建数据库。
数据加密开通后不可关闭。

3. 在弹出的对话框,开通 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';