TDE 数据加密

最近更新时间:2024-01-09 17:19:52

我的收藏

操作场景

TDSQL MySQL 版 提供透明数据加密(Transparent Data Encryption,TDE)功能,透明加密指数据的加解密操作对用户透明,支持对数据文件进行实时 I/O 加密和解密,在数据写入磁盘前进行加密,从磁盘读入内存时进行解密,可满足静态数据加密的合规性要求。
本文为您介绍如何通过控制台开启数据加密功能,以及如何加密或解密数据。

限制条件

TDE 加密功能当前仅支持 MySQL 8.0.24 版本和香港地区 Percona 5.7 版本。
需开通 密钥管理服务 KMS。如未开通,请根据 TDE 加密功能引导进行开通。
需获得 KMS 密钥权限。如未开通,请根据 TDE 加密功能引导进行开通。
加密算法: AES256,加密模式: AES256: 256_CBC。

注意事项

开启 KMS 后,可能产生密钥管理服务(KMS)费用,请参见 KMS 购买指南
TDE 加密功能开通后无法关闭。
若已开通灾备/只读实例,暂时不支持 TDE 加密功能。
开启 TDE 加密功能后,暂时不支持创建灾备/只读实例。
开启 TDE 加密功能后,暂时不支持用备份文件在本地恢复数据库实例,推荐采用 回档数据库 进行恢复。
开启 TDE 加密功能后,可提高静态数据的安全性,但同时会影响访问加密数据库的读写性能,请结合实际情况选择开启 TDE 加密功能。
开启 TDE 加密功能后,会增加 CPU 资源的消耗,大约会影响5%左右的性能。

操作步骤

1. 登录 TDSQL 控制台 ,单击实例 ID操作列的管理,进入实例管理页面。
2. 在实例管理页,选择数据安全性 > 数据加密,单击“加密状态”的开关。


3. 在弹出的对话框,开通 KMS 服务和授予 KMS 密钥权限,选择密钥后,单击确定


4. 开启了数据加密之后,需要对数据库表进行 DDL 操作才能进行数据加密或者解密,具体做法如下:
数据表创建时加密:
CREATE TABLE t1 (c1 INT) ENCRYPTION='Y'
已创建数据表加密:
ALTER TABLE t1 ENCRYPTION='Y'
数据表解密:
ALTER TABLE t1 ENCRYPTION='N'