在本页面
企业功能
字段级加密的自动功能仅在MongoDB 4.2 Enterprise和MongoDB Atlas 4.2集群中可用。
兼容MongoDB 4.2的官方驱动程序和MongoDB 4.2
mongo
Shell支持在读写操作中自动加密字段。有关支持客户端字段级加密的官方4.2兼容驱动程序的完整列表,请参阅驱动程序兼容性表。
应用程序必须MongoClient
使用自动加密配置设置来创建数据库连接对象(例如
)。配置设置必须包括使用JSON Schema Draft 4标准语法的严格子集和特定于加密的模式关键字的自动加密加密规则。应用程序不必修改与构造读/写操作相关的代码。有关自动加密规则的完整文档,请参阅
自动加密规则。
兼容MongoDB 4.2的官方驱动程序和4.2 mongo
Shell使用仅限企业的mongocrypted
进程来解析自动加密规则并在读取或写入文档时应用加密规则:
每个与MongoDB 4.2兼容的官方驱动程序都引入了新功能,以支持自动加密和数据加密密钥管理。有关实现自动客户端字段级加密的特定于语言的说明,请参考首选的驱动程序文档。
MongoDB 4.2 mongo
Shell为该Mongo()
方法添加了一个附加选项,用于使用自动客户端字段级加密实例化数据库连接。有关完整的示例,请参阅
连接到启用了自动客户端加密的MongoDB群集。
自动客户端字段级加密要求访问
客户端主机上的mongocrypted进程。有关安装的完整文档,请参见
mongocrypted。兼容MongoDB 4.2的官方驱动程序还有其他管理mongocryptd
过程的选项。通常,如果4.2兼容的驱动程序和4.2 mongo
Shell mongocryptd
在系统中,则可以访问该
进程PATH
。
实例化数据库连接时,应用程序必须指定以下组件以启用自动客户端字段级加密:
一个关键的库数据的加密密钥。密钥保管库可以驻留在远程MongoDB集群或存储客户端加密数据的MongoDB集群上。
受支持的密钥管理服务(KMS)提供商,用于管理客户主密钥(CMK)。MongoDB使用指定的CMK对所有数据加密密钥进行加密,然后再将其存储在密钥库中,仅保留未加密的元数据。
4.2兼容驱动程序和4.2 mongo
Shell需要访问KMS才能加密和解密受保护的字段或创建新的数据加密密钥。
使用JSON模式语法的每字段自动加密规则 。
MongoDB 4.2服务器支持使用架构验证来对集合中特定字段进行加密。执行自动客户端字段级加密的客户端具有特定的行为,具体取决于数据库连接配置:
如果连接ClientSideFieldLevelEncryptionOptions
schemaMap
对象包含指定集合的密钥,则客户端将使用该对象执行自动字段级加密,并忽略远程模式。至少,本地规则必须
加密远程模式标记为需要加密的那些字段。
如果连接ClientSideFieldLevelEncryptionOptions
schemaMap
对象并没有包含用于指定集合的密钥,所述客户端下载的收集和使用服务器侧远程模式它来执行自动字段级加密。
此配置要求客户端信任服务器具有有关自动字段级加密的有效架构。客户端仅使用远程模式执行自动字段级加密,而不执行模式中指定的任何其他验证规则。
有关服务器端客户端字段级加密实施的完整文档,请参阅“ 强制字段级加密架构”。