操作指南

API 文档

开启透明数据加密

最近更新时间:2022-04-18 17:10:58

操作场景

云数据库 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 加密功能

  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’;

目录