云原生多模数据库 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功能开启后将无法关闭。
操作步骤
登录Lindorm控制台。
单击目标实例ID,进入实例列表页面。
选择左侧导航栏 ,默认打开数据加密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,但是此方法不推荐,执行操作如下:
通过
ENCRYPTION=NONE
语句使得表的数据解密。对表进行
major_compact
操作并等待完成。通过
ENCRYPTION=SMS4
语句设置数据加密类型为SMS4。