对于 AI 代理:可在 https://www.mongodb.com/zh-cn/docs/llms.txt 获取文档索引—通过在任何 URL 路径后添加 .md 可获取所有页面的 Markdown 版本。

CSFLE 加密组件

下图说明了 MongoDB 驱动程序或mongosh与客户端字段级加密 (CSFLE) 的每个组件之间的关系:

驱动程序和加密组件之间的关系图

以下部分将讨论上图中的各个组件。

libmongocrypt 是经 Apache 许可的开源 核心加密库,官方 MongoDB 驱动程序和 mongosh 使用该库来支持客户端字段级加密。某些驱动程序可能需要特定的集成步骤来安装或链接库。

要查看安装libmongocrypt的步骤,请参阅libmongocrypt 参考页面。

自动加密共享库是一个动态库,允许客户端应用程序执行自动加密。

自动加密共享库是 mongocryptd 的首选替代方案,并且不要求您生成另一个进程以执行自动加密。

注意

从 MongoDB 9.0 开始,mongocryptd 已弃用。请改用自动加密共享库。

要学习;了解有关自动加密的更多信息,请参阅 CSFLE 功能。

重要

mongocryptd 已弃用

从 MongoDB 9.0 开始,mongocryptd 已弃用。请改用自动加密共享库。

mongocryptd 随MongoDB Enterprise Server 一起安装。

当您创建启用了 CSFLE 的 MongoDB 客户端时,默认情况下会自动启动mongocryptd进程。

mongocryptd 进程:

  • 使用指定的自动加密规则对读写操作中的字段进行标记,以便加密。

  • 防止在加密字段上执行不支持的操作。

  • 分析为数据库连接指定的加密模式。自动加密规则使用严格的 JSON Schema 语法子集。如果规则包含无效的自动加密语法或任何 schema validation 语法,mongocryptd 将返回错误。

mongocryptd 仅执行上述功能,不执行以下任何操作:

  • mongocryptd 不进行加密或解密

  • mongocryptd 不访问任何加密密钥材料

  • mongocryptd 不监听网络

为了执行字段加密和自动解密,驱动程序使用 Apache 许可的libmongocrypt库。

官方MongoDB驱动程序需要访问权限客户端托管上的 mongocryptd进程。这些客户端默认在系统 PATH 中搜索mongocryptd进程。

密钥保管库集合是标准 MongoDB 集合,其中存储用于加密应用程序数据的所有数据加密密钥。 数据加密密钥本身在存储在密钥保管库集合之前使用客户主密钥 ( CMK ) 进行加密。 您可以将 Key Vault 集合托管在与存储加密应用程序数据的集群不同的MongoDB cluster上。

要学习;了解有关密钥保管库集合的更多信息,请参阅加密密钥和密钥保管库。

密钥管理系统 ( KMS ) 存储用于加密数据加密密钥的客户主密钥 ( CMK )。

要查看MongoDB支持的所有KMS提供程序的列表,请参阅KMS提供程序。

存储加密数据的MongoDB 集群也可能实施客户端字段级加密。 有关服务器端模式执行的更多信息,请参阅CSFLE 服务器端模式执行。