透明数据加密TDE(Transparent Data Encryption)可对数据文件执行实时I/O加密和解密,数据在写入磁盘之前进行加密,从磁盘读入内存时进行解密。TDE不会增加数据文件的大小,您无需更改任何应用程序,即可使用TDE功能。为提高数据安全性,您可以通过控制台启用TDE功能,对实例数据进行加密。
实例架构为副本集实例或分片集群实例。
实例的存储引擎为WiredTiger。
实例的数据库版本为4.0或4.2版本。如果实例数据库版本过低,您可以
升级数据库版本
。
说明
正式开通TDE功能前,您可以创建一个4.0或4.2版本的按量付费实例来测试应用与版本兼容性,测试完毕可释放该实例。
已开通TDE功能的实例释放后,不支持从
回收站
中恢复。
当前TDE功能的开通粒度为实例,仅支持对集合进行加密。如果您需要对字段进行加密,请参见
手动字段级加密
(仅支持MongoDB 4.2版本实例)。
说明
如果业务上有特殊需求,您可以在创建集合时,指定该集合不被加密。如何设置,请参见
设置指定的集合不被加密
。
TDE功能开通后,仅加密新创建的集合,已有的集合不会被加密。
TDE功能所使用的密钥,由密钥管理服务KMS(Key Management Service)统一生成和管理,云数据库MongoDB不提供加密所需的密钥和证书。密钥管理服务KMS的更多信息,请参见
什么是密钥管理服务
。
根据实例类型,在左侧导航栏,单击
副本集实例列表
或
分片集群实例列表
。
在页面左上角,选择实例所在的资源组和地域。
单击目标实例ID或目标实例所在行
操作
列的
,并选择
管理
。
在目标实例页面的左侧导航栏,单击
。
打开
TDE状态:
右侧的开关。
在弹出的
开通TDE
对话框中,根据实际需要选择生成方式。
使用自动生成密钥
:使用系统自动生成的密钥。
使用自定义密钥
:根据业务需要,在下拉列表中选择密钥。如果下拉列表中不存在目标密钥,您可以先创建密钥,然后进行选择。创建方法请参见
创建密钥
。
开启TDE加密后,所有新创建的集合都会被加密。如果业务上有特殊需求,您可以在创建集合时,指定该集合不被加密。
通过Mongo Shell连接数据库。如何连接,请参见
连接副本集实例
或
连接分片集群实例
。
执行如下命令创建集合,指定该集合不被加密。
语法:
db.createCollection("<collection_name>",{ storageEngine: { wiredTiger: { configString: "encryption=(name=none)" } } })
说明
命令中的
collection_name
为集合名。
示例:
db.createCollection("customer",{ storageEngine: { wiredTiger: { configString: "encryption=(name=none)" } } })