文档菜单
文档首页
/
MongoDB 手册
/ / / / / /

安装和配置可查询加密库

本页内容

  • 开始之前
  • 选择库
  • 程序
  • 下一步

MongoDB 使用两个库之一将查询转换为加密查询,并加密和解密数据。最新的是自动加密共享库。

按照以下任务在继续之前安装可查询加密兼容的驱动程序和依赖项

自动加密共享库是一个 动态库,它使您的客户端应用程序能够执行自动加密。动态库是在运行时而不是编译时由应用程序访问的一组功能。自动加密共享库执行以下任务

  • 读取加密模式以确定哪些字段需要加密或解密

  • 防止您的应用程序在加密字段上执行不受支持的运算

自动加密共享库 执行以下操作

  • 执行数据加密或解密

  • 访问加密密钥材料

  • 监听网络上的数据

自动加密共享库是以下内容的优先选择mongocryptd,并且不需要您启动另一个进程来执行自动加密。

重要

使用自动加密共享库

如果您正在启动一个新项目,请使用自动加密共享库。自动加密共享库替换了 mongocryptd,并且不需要您启动新的进程。

mongocryptd 是与以下内容一起安装的MongoDB 企业版服务器.

当您使用使用中加密创建 MongoDB 客户端时,默认情况下会自动启动 mongocryptd 进程。

mongocryptd 进程

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

  • 防止在加密字段上执行不受支持的运算。

  • 解析数据库连接指定的加密方案。自动加密规则使用JSON schema语法的严格子集。如果规则包含无效的自动加密语法或任何文档验证语法,mongocryptd将返回错误。

mongocryptd只执行前面的功能,不执行以下任何一项

  • mongocryptd不执行加密或解密

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

  • mongocryptd不通过网络监听

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

要从MongoDB下载中心下载自动加密共享库,选择版本和平台,然后选择库。

提示

要查看可用的版本和包的扩展列表,请参阅MongoDB Enterprise下载。

1

版本下拉菜单中,选择7.0.0 (当前)

2

平台下拉菜单中,选择您的平台。

3

下拉菜单中,选择crypt_shared

4

点击下载

要配置驱动程序如何搜索自动加密共享库,请使用以下参数

名称
描述
cryptSharedLibPath

指定自动加密共享库包的绝对路径,crypt_shared

默认值: 未定义

cryptSharedLibRequired

指定驱动程序是否必须使用自动加密共享库。如果 true,则当自动加密共享库不可用时,驱动程序将返回错误。如果 false,驱动程序将执行以下操作序列

  1. 尝试使用自动加密共享库。

  2. 如果自动加密共享库不可用,驱动程序将尝试启动并连接到 mongocryptd

默认值: false

要查看如何配置这些参数的示例,请参阅快速入门。

1

安装 mongocryptd

对于支持的Linux操作系统:要安装服务器包,请按照在Linux上安装教程进行操作,并安装 mongodb-enterprise 服务器包。或者,指定 mongodb-enterprise-cryptd 以仅安装 mongocryptd 二进制文件。包管理器将二进制文件安装到系统PATH中的位置。

对于OSX:要安装服务器包,请按照在MacOS上安装教程进行操作。包管理器将二进制文件安装到系统PATH中的位置。

对于Windows:要安装服务器包,请按照在Windows上安装教程进行操作。您必须在安装后向系统PATH添加 mongocryptd 包。请遵循有关Windows安装的文档化最佳实践,将 mongocryptd 二进制文件添加到系统PATH。

从官方tarball / ZIP存档安装:要从官方存档安装,请按照操作系统文档化最佳实践添加 mongocryptd 二进制文件到系统PATH。

2

配置库

如果驱动程序可以访问 mongocryptd 进程,它将默认启动该进程。

重要

启动时启动

如果可能,请在启动时启动 mongocryptd,而不是按需启动。

通过以下参数配置驱动程序启动 mongocryptd 的方式

名称
描述
端口
mongocryptd 监听消息的端口。
默认值: 27020
idleShutdownTimeoutSecs
mongocryptd 进程在退出之前等待的空闲秒数。
默认值: 60
mongocryptdURI
运行 mongocryptd 进程的URI。
默认值: "mongodb://localhost:27020"
mongocryptdBypassSpawn
当设置为 true 时,防止驱动程序自动启动 mongocryptd
默认值: false
mongocryptdSpawnPath
mongocryptd 的完整路径。
默认值: 默认为空字符串,从系统PATH启动。

如果驱动程序指定的端口上已运行 mongocryptd 进程,驱动程序可能会记录警告并继续而不会启动新进程。驱动程序指定的任何设置仅适用于现有进程退出并且新加密客户端尝试连接时。

要查看如何配置您的 mongocryptd 进程的示例,请单击与您应用程序中使用的驱动程序对应的选项卡

以下代码片段设置了 mongocryptd 的监听端口配置

var extraOptions = new Dictionary<string, object>()
{
{ "mongocryptdSpawnArgs", new [] { "--port=30000" } },
};
autoEncryptionOptions.With(extraOptions: extraOptions);

以下代码片段设置了 mongocryptd 的默认超时配置

var extraOptions = new Dictionary<string, object>()
{
{ "idleShutdownTimeoutSecs", 60 },
};
autoEncryptionOptions.With(extraOptions: extraOptions);

以下代码片段设置了 mongocryptd 的监听端口配置

extraOptions := map[string]interface{}{
"mongocryptdSpawnArgs": []string{
"--port=30000",
},
}

以下代码片段设置了 mongocryptd 的默认超时配置

extraOptions := map[string]interface{}{
"mongocryptdSpawnArgs": []string{
"--idleShutdownTimeoutSecs=75",
},
}

以下代码片段设置了 mongocryptd 的监听端口配置

List<String> spawnArgs = new ArrayList<String>();
spawnArgs.add("--port=30000");
Map<String, Object> extraOpts = new HashMap<String, Object>();
extraOpts.put("mongocryptdSpawnArgs", spawnArgs);
AutoEncryptionSettings autoEncryptionSettings = AutoEncryptionSettings.builder()
...
.extraOptions(extraOpts);

以下代码片段设置了 mongocryptd 的默认超时配置

List<String> spawnArgs = new ArrayList<String>();
spawnArgs.add("--idleShutdownTimeoutSecs")
.add("60");
Map<String, Object> extraOpts = new HashMap<String, Object>();
extraOpts.put("mongocryptdSpawnArgs", spawnArgs);
AutoEncryptionSettings autoEncryptionSettings = AutoEncryptionSettings.builder()
...
.extraOptions(extraOpts);

以下代码片段设置了 mongocryptd 的监听端口配置

autoEncryption: {
...
extraOptions: {
mongocryptdSpawnArgs: ["--port", "30000"],
mongocryptdURI: 'mongodb://localhost:30000',
}

注意

在 NodeJS 驱动程序中,mongocryptdURI 必须与监听端口匹配。

以下代码片段设置了 mongocryptd 的默认超时配置

autoEncryption: {
...
extraOptions: {
mongocryptdSpawnArgs: ["--idleShutdownTimeoutSecs", "75"]
}

以下代码片段设置了 mongocryptd 的监听端口配置

auto_encryption_opts = AutoEncryptionOpts(mongocryptd_spawn_args=['--port=30000'])

以下代码片段设置了 mongocryptd 的默认超时配置

auto_encryption_opts = AutoEncryptionOpts(mongocryptd_spawn_args=['--idleShutdownTimeoutSecs=75'])

安装库后,在您选择的密钥管理系统中创建客户主密钥

返回

安装 libmongocrypt