开启透明数据加密(内测中)

云原生多模数据库 Lindorm支持透明数据加密TDE(Transparent Data Encryption)功能。启用TDE功能后,Lindorm通过密钥层级结构对数据文件进行加密,所有存储在文件系统中的数据都以密文形式存在。为提高数据安全性,您可以通过控制台启用TDE功能,对实例数据进行加密。本文介绍启用TDE功能的具体步骤。

前提条件

  • 云原生多模数据库 Lindorm实例的部署方案为单可用区,具体操作请参见创建实例

  • 已开通密钥管理服务KMS(Key Management Service),具体操作请参见开通密钥管理服务

  • 已授权Lindorm访问KMS,需要通过服务关联角色获取访问权限,具体操作请参见Lindorm服务关联角色

背景信息

云原生多模数据库 Lindorm的TDE功能支持AES算法和SMS4算法。TDE加密使用的密钥由密钥管理服务(KMS)产生和管理,KMS为您提供一个主密钥,通过该密钥加密数据密钥,再通过数据密钥加密数据,这个流程叫做信封加密。在解密过程中先读取数据密钥密文,通过主密钥来解密数据密钥密文得到数据密钥明文,再通过数据密钥明文来解密数据。KMS提供的主密钥是通过API创建的,如果您提供了密码还可以对主密钥进行加密,保证主密钥的安全性。

注意事项

  • 开通TDE的过程中,实例会重启一次并出现连接闪断,建议您在业务低峰期操作并确保应用有重连机制。

  • 实例重启和连接闪断不会导致数据丢失。

  • TDE功能开启后将无法关闭。

操作步骤

  1. 登录Lindorm控制台

  2. 单击目标实例ID,进入实例列表页面。

  3. 选择左侧导航栏宽表引擎 > 数据安全,默认打开数据加密TDE页面。

  4. 打开当前状态开关。

  5. 开启TDE对话框中,选择使用自动生成密钥使用自定义密钥

    开启TDE窗口
    • 如果您选择使用自动生成密钥,单击确定,开通TDE。

    • 如果您选择使用自定义密钥,从设置密钥列表中,选择由密钥管理服务(KMS)产生的密钥,单击确定,开通TDE。

      说明

      如需使用自己传入的自定义密钥,请单击管理密钥,在密钥管理服务控制台创建密钥并导入自带的密钥材料,详情请参见创建密钥

后续步骤

开启TDE后,您需要使用Lindorm-cli连接实例,具体操作请参见通过Lindorm-cli连接并使用宽表引擎,对Lindorm的表进行DDL操作才能使得数据加密,具体如下:

  • 对于新建的表,建表时加上WITH (FILEVERSION = 5, ENCRYPTION = AES)语句。

    CREATE table testsql (p1 varchar, p2 varchar, p3 bigint, c1 varchar, c2 double, constraint primary key (p1, p2, p3 desc)) WITH (FILEVERSION = 5, ENCRYPTION = AES);
  • 对于现存的表,您需要使用ALTER关键字和WITH (FILEVERSION = 5, ENCRYPTION = SMS4)语句。

    ALTER table testsql WITH (FILEVERSION = 5, ENCRYPTION = SMS4) ;
说明
  • FILEVERSION表示文件版本,文件版本设置为5才可以使用加密功能。

  • ENCRYPTION表示加密算法类型,取值为AES或SMS4。

  • 您可以通过ENCRYPTION=NONE语句使得数据解密。

  • 您可以转换加密算法类型,例如由AES转换为SMS4,但是此方法不推荐,执行操作如下:

    1. 通过ENCRYPTION=NONE语句使得表的数据解密。

    2. 对表进行major_compact操作并等待完成。

    3. 通过ENCRYPTION=SMS4语句设置数据加密类型为SMS4。