开启透明数据加密

最后更新时间:2021-07-08 16:06:01

    操作场景

    云数据库 MySQL 提供透明数据加密(Transparent Data Encryption,TDE)功能,透明加密指数据的加解密操作对用户透明,支持对数据文件进行实时 I/O 加密和解密,在数据写入磁盘前进行加密,从磁盘读入内存时进行解密,可满足静态数据加密的合规性要求。

    限制条件

    • 实例类型须为 MySQL 5.7、MySQL 8.0。
    • 已开通密钥管理服务 KMS。如未开通,可在开通数据加密过程中根据引导开通 KMS。
    • 已授予 KMS 密钥权限。如未授予,可在开通数据加密过程中根据引导进行授权。
    • 操作账号需具有 QcloudAccessForMySQLRole 的权限,如无权限,可在开通数据加密过程中根据引导进行授权。
      说明:

      加密使用的密钥由 密钥管理服务 KMS 产生和管理,云数据库 MySQL 不提供加密所需的密钥和证书。

    注意事项

    • 撤销授权关系后,重启会造成 MySQL 数据库不可用。
    • TDE 加密功能开通后无法关闭。
    • 开启 TDE 加密功能后,用户如果要恢复数据到本地,需要先解密数据。
    • 开启 TDE 加密功能后,可提高静态数据的安全性,但同时会影响访问加密数据库的读写性能,请结合实际情况选择开启 TDE 加密功能。
    • 如果主实例关联灾备实例,需要主动开通灾备实例的 TDE 加密功能,主实例才能顺利使用数据加密,否则会存在灾备实例数据同步失败的问题。
    • 开启 TDE 加密功能后,账户余额需大于等于0,否则会因为无法访问密钥管理系统而导致实例迁移失败。
    • 开启 TDE 加密功能后,会增加 CPU 资源的消耗。

    操作步骤

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