Docs 菜单
Docs 主页
/
MongoDB Manual
/ / / / /

安装和配置 mongocryptd 以实现 Queryable Encryption

在此页面上

  • Overview
  • 安装
  • 配置
  • 示例

提示

使用自动加密共享库

如果要启动新项目,请使用 crypt_shared 加密助手,即共享库。自动加密共享库取代了 mongocryptd,并且不需要生成新进程。

mongocryptd MongoDB Enterprise MongoDB Server一起安装。

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

mongocryptd 进程:

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

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

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

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

  • mongocryptd 不进行加密或解密

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

  • mongocryptd 不监听网络

要执行客户端字段级加密和自动解密,驱动程序使用 Apache 许可的 libmongocrypt

对于支持的 Linux 操作系统,按照在 Linux 上安装教程安装 Server 包,遵循安装文档说明并安装 mongodb-enterprise Server 包。或者,指定 mongodb-enterprise-cryptd,仅安装 mongocryptd 二进制文件。包管理器将二进制文件安装到系统 PATH 的某个位置(例如 /usr/bin/

对于 OSX,请按照在 MacOS 上安装教程安装 Server 包。包管理器将二进制文件安装到系统 PATH 的某个位置。

对于 Windows,请按照在 Windows 上安装教程安装 Server 包。安装后,您必须将 mongocryptd 包添加到系统 PATH。有关将 mongocryptd 二进制文件添加到系统 PATH 的说明,遵循 Windows 安装文档的最佳实践。

如果通过官方 Tarball 或 ZIP 存档进行安装,请遵循操作系统所记录的最佳实践,向系统路径添加 mongocryptd 二进制文件。

如果驱动程序有权访问 mongocryptd 进程,则默认情况下会生成该进程。

注意

mongocryptd 端口正在使用中

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

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

名称
说明
端口
The port from which mongocryptd listens for messages.
Default: 27020
idleShutdownTimeoutSecs
Number of idle seconds the mongocryptd process waits before exiting.
Default: 60
mongocryptdURI
The URI on which to run the mongocryptd process.
Default: "mongodb://localhost:27020"
mongocryptdBypassSpawn
When true, prevents the driver from automatically spawning mongocryptd.
Default: false
mongocryptdSpawnPath
The full path to mongocryptd.
Default: Defaults to empty string and spawns from the system 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