GaussDB(for MySQL) 新特性 TDE 发布:支持透明数据加密
本文分享自华为云社区《GaussDB(for MySQL)新特性TDE发布:支持透明数据加密》,作者: GaussDB 数据库。
技术背景
为了保护数据的安全,我们可能通过防火墙、身份认证、安全权限控制、网络及端口访问控制、传输加密等多种方式对程序运行过程中的各个环节进行安全防控,但这些并不能保证数据静态存储在物理介质中的安全;恶意方如果窃取了硬盘等物理介质,就可能还原并获取其中存储的数据。
透明数据加密(Transparent Data Encryption,简称 TDE),作为一种在数据“静止”时保护数据的机制,对数据文件执行实时 I/O 加密和解密;数据在写入磁盘之前进行加密,从磁盘读入内存时进行解密,这样数据在数据库共享内存中以明文形态存在,而在数据存储介质中则以密文形态存在,能有效保护数据静态存储的安全。
特性价值
GaussDB(for MySQL)新特性 TDE 核心价值在于数据的静态安全保护,同时有助于解决用户安全相关的法规遵从性挑战:
(1)数据保护:支持 AES256、SM4 两种加密算法,对数据进行加密,保护数据安全,有助于解决用户满足法规遵从性的需求。
(2)透明访问:数据库的用户不感知它们正在访问的信息是在底层存储时加密的,经过数据库身份验证的用户可以透明地访问数据,上层应用无需做任何更改。
实现原理
用户在创建或备份恢复数据库新实例时,如果打开了 TDE 开关,数据库服务会向 KMS(密钥管理服务)申请生成数据密钥 DEK(Data Encryption Key)。
GaussDB(for MySQL)使用 DEK 在数据在写入存储单元前进行加密,从存储单元读入内存时进行解密,加密算法支持 AES256 和 SM4。
DEK 在 GaussDB(for MySQL)的内存中存储,重启场景下重新向 KMS 进行 DEK 解密后,再缓存到内存中,继续用于加解密读写工作。
对于业务应用,其访问数据库,不感知底层加解密动作;上层业务无需做任何适配动作即可对接 TDE 加密实例。
业务场景/流程
新实例开启 TDE 加密
购买 GaussDB(for MySQL)数据库时,选择加密算法并打开 TDE 开关,可以创建支持 TDE 的 GaussDB(for MySQL)实例;数据库实例一旦开启 TDE 后,不支持关闭开关。
存量数据备份恢复到新加密实例
TDE 开关只能在新创建数据库实例时打开,对于存量数据,如果也想加密数据,可以通过备份恢复为新加密实例的方式来支持;备份恢复功能支持的场景,如下图所示:支持从未加密到加密、加密到加密路径,将备份数据恢复到新的 TDE 加密实例。
总结
GaussDB(for MySQL)实现了透明数据加密(Transparent Data Encryption,简称 TDE)特性,支持 AES256 和 SM4 两种加密算法;客户可在新建实例时开启 TDE,或通过存量实例备份恢复到加密实例的方式,对存量数据进行加密改造;在上层业务不做任何更改的情况下,达成数据静态安全保护的目的。
附录
本文作者:华为云 GaussDB(for MySQL)团队
华为云 GaussDB(for MySQL)官方产品文档:https://support.huaweicloud.com/gaussdbformysql/index.html
版权声明: 本文为 InfoQ 作者【华为云开发者联盟】的原创文章。
原文链接:【http://xie.infoq.cn/article/727ae1deb8050876fff682265】。文章转载请联系作者。
评论