GaussDB(for MySQL)新特性TDE发布:支持透明数据加密

本文分享自华为云社区《GaussDB(for MySQL)新特性TDE发布:支持透明数据加密》,作者: GaussDB 数据库。

技术背景

为了保护数据的安全,我们可能通过防火墙、身份认证、安全权限控制、网络及端口访问控制、传输加密等多种方式对程序运行过程中的各个环节进行安全防控,但这些并不能保证数据静态存储在物理介质中的安全;恶意方如果窃取了硬盘等物理介质,就可能还原并获取其中存储的数据。

透明数据加密(Transparent Data Encryption,简称TDE),作为一种在数据"静止"时保护数据的机制,对数据文件执行实时I/O加密和解密;数据在写入磁盘之前进行加密,从磁盘读入内存时进行解密,这样数据在数据库共享内存中以明文形态存在,而在数据存储介质中则以密文形态存在,能有效保护数据静态存储的安全。

特性价值

GaussDB(for MySQL)新特性TDE核心价值在于数据的静态安全保护,同时有助于解决用户安全相关的法规遵从性挑战:

(1)**数据保护:**支持AES256、SM4两种加密算法,对数据进行加密,保护数据安全,有助于解决用户满足法规遵从性的需求。

(2)**透明访问:**数据库的用户不感知它们正在访问的信息是在底层存储时加密的,经过数据库身份验证的用户可以透明地访问数据,上层应用无需做任何更改。

实现原理

  1. 用户在创建或备份恢复数据库新实例时,如果打开了TDE开关,数据库服务会向KMS(密钥管理服务)申请生成数据密钥DEK(Data Encryption Key)。
  2. GaussDB(for MySQL)使用DEK在数据在写入存储单元前进行加密,从存储单元读入内存时进行解密,加密算法支持AES256和SM4。
  3. DEK在GaussDB(for MySQL)的内存中存储,重启场景下重新向KMS进行DEK解密后,再缓存到内存中,继续用于加解密读写工作。
  4. 对于业务应用,其访问数据库,不感知底层加解密动作;上层业务无需做任何适配动作即可对接TDE加密实例。

业务场景/流程

新实例开启TDE加密

购买GaussDB(for MySQL)数据库时,选择加密算法并打开TDE开关,可以创建支持TDE的GaussDB(for MySQL)实例;数据库实例一旦开启TDE后,不支持关闭开关。

存量数据备份恢复到新加密实例

TDE开关只能在新创建数据库实例时打开,对于存量数据,如果也想加密数据,可以通过备份恢复为新加密实例的方式来支持;备份恢复功能支持的场景,如下图所示:支持从未加密到加密、加密到加密路径,将备份数据恢复到新的TDE加密实例。

总结

GaussDB(for MySQL)实现了透明数据加密(Transparent Data Encryption,简称TDE)特性,支持AES256和SM4两种加密算法;客户可在新建实例时开启TDE,或通过存量实例备份恢复到加密实例的方式,对存量数据进行加密改造;在上层业务不做任何更改的情况下,达成数据静态安全保护的目的。

附录

点击关注,第一时间了解华为云新鲜技术~

相关推荐
好吃的肘子26 分钟前
MongoDB 应用实战
大数据·开发语言·数据库·算法·mongodb·全文检索
weixin_4723394635 分钟前
MySQL MCP 使用案例
数据库·mysql
wowocpp1 小时前
spring boot Controller 和 RestController 的区别
java·spring boot·后端
后青春期的诗go1 小时前
基于Rust语言的Rocket框架和Sqlx库开发WebAPI项目记录(二)
开发语言·后端·rust·rocket框架
freellf1 小时前
go语言学习进阶
后端·学习·golang
lqlj22331 小时前
Spark SQL 读取 CSV 文件,并将数据写入 MySQL 数据库
数据库·sql·spark
遗憾皆是温柔2 小时前
MyBatis—动态 SQL
java·数据库·ide·sql·mybatis
未来之窗软件服务2 小时前
Cacti 未经身份验证SQL注入漏洞
android·数据库·sql·服务器安全
fengye2071613 小时前
在MYSQL中导入cookbook.sql文件
数据库·mysql·adb
全栈派森3 小时前
云存储最佳实践
后端·python·程序人生·flask