MongoDB使用自动加密共享库(推荐)或 mongocryptd 可执行进程将查询转换为加密查询,并加密或解密数据。
开始之前
要将 CSFLE 与自动加密结合使用,必须首先选择希望MongoDB用于加密字段的查询分析组件。
crypt_shared ,推荐的 CSFLE 库。
mongocryptd ,包含在MongoDB Enterprise Server 安装中。
libmongocrypt 库和MongoDB驱动程序需要自动加密共享库或 mongocryptd 来解释加密的查询。有关更多信息,请参阅 为 CSFLE 安装 libmongocrypt。
自动加密共享库
自动加密共享库是一个动态库,使您的客户端应用程序能够执行自动加密。 动态库是应用程序在运行时而不是编译时访问的一设立功能。 自动加密共享库执行以下任务:
读取加密模式以确定要加密或解密的字段
防止应用程序对加密字段执行不支持的操作
自动加密共享库不 执行任何以下操作:
进行数据加密或解密
访问加密密钥材料
在网络上侦听数据
自动加密共享库是 mongocryptd 的首选替代方案,并且不要求您生成另一个进程以执行自动加密。
注意
虽然我们建议使用自动加密共享库,但仍支持 mongocryptd。
要学习;了解有关自动加密的更多信息,请参阅 CSFLE 功能。
mongocryptd
mongocryptd 随MongoDB Enterprise Server 一起安装。
当您创建启用了 CSFLE 的 MongoDB 客户端时,默认情况下会自动启动mongocryptd进程。
mongocryptd 进程:
使用指定的自动加密规则对读写操作中的字段进行标记,以便加密。
防止在加密字段上执行不支持的操作。
分析为数据库连接指定的加密模式。自动加密规则使用严格的 JSON Schema 语法子集。如果规则包含无效的自动加密语法或任何
schema validation语法,mongocryptd将返回错误。
mongocryptd 仅执行上述功能,不执行以下任何操作:
mongocryptd不进行加密或解密mongocryptd不访问任何加密密钥材料mongocryptd不监听网络
为了执行字段加密和自动解密,驱动程序使用 Apache 许可的libmongocrypt库。
官方MongoDB驱动程序需要访问权限客户端托管上的 mongocryptd进程。这些客户端默认在系统 PATH 中搜索mongocryptd进程。
步骤
选择要使用的查询分析组件,然后按照步骤安装和配置 CSFLE查询分析组件。