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

CSFLE的MongoClient选项

本页内容

  • 概述
  • AutoEncryptionOpts
  • 示例

查看有关MongoClient实例的客户端字段级加密(CSFLE)特定配置选项的信息。MongoClient 实例。

将一个 autoEncryptionOpts 对象传递给您的 MongoClient 实例以指定CSFLE特定选项。

以下表格描述了 autoEncryptionOpts 对象的结构

参数
类型
必需
描述
keyVaultClient
MongoClient

一个配置为连接到托管您的密钥保管库集合的MongoDB实例的 MongoClient 实例。

如果您省略了 keyVaultClient 选项,则包含 autoEncryptionOpts 配置的MongoDB实例被用作您的密钥保管库集合的主机。

有关密钥保管库集合的更多信息,请参阅加密密钥和密钥保管库.

keyVaultNamespace
字符串
密钥保管库集合的全名空间。
kmsProviders
对象

客户端字段级加密用于管理您的客户主密钥(CMK)的密钥管理系统(KMS)。

有关 kmsProviders 对象的更多信息,请参阅 KMS Providers。

有关客户主密钥的更多信息,请参阅 加密密钥和密钥保管库。

tlsOptions
对象

一个映射密钥管理系统提供者名称到TLS配置选项的对象。

有关TLS选项的更多信息,请参阅 TLS Options。

要了解更多关于TLS的信息,请参阅:TLS/SSL(传输加密)。

schemaMap
对象

加密方案。

要了解如何构建加密方案,请参阅加密方案。

有关加密方案的完整文档,请参阅CSFLE加密方案。

bypassAutoEncryption
布尔值

指定true以绕过自动客户端字段级加密规则并执行显式加密。bypassAutoEncryption不会禁用自动解密。

要了解更多关于此选项的信息,请参阅自动解密。

要查看代码片段,展示如何使用autoEncryptionOpts来配置您的MongoClient实例,请选择与您的驱动程序对应的选项卡

var autoEncryptionOpts =
{
"keyVaultNamespace" : "<database>.<collection>",
"kmsProviders" : { ... },
"schemaMap" : { ... }
}
cluster = Mongo(
"<Your Connection String>",
autoEncryptionOpts
);

提示

环境变量

如果可能,请考虑将kmsProviders中提供的凭据定义为环境变量,然后将它们传递给mongosh使用--eval选项。这可以最小化凭据泄露到日志中的可能性。

var clientSettings = MongoClientSettings.FromConnectionString(_connectionString);
var autoEncryptionOptions = new AutoEncryptionOptions(
keyVaultNamespace: keyVaultNamespace,
kmsProviders: kmsProviders,
schemaMap: schemaMap,
extraOptions: extraOptions);
clientSettings.AutoEncryptionOptions = autoEncryptionOptions;
var client = new MongoClient(clientSettings);
autoEncryptionOpts := options.AutoEncryption().
SetKmsProviders(provider.Credentials()).
SetKeyVaultNamespace(keyVaultNamespace).
SetSchemaMap(schemaMap).
SetExtraOptions(extraOptions)
client, err := mongo.Connect(context.TODO(), options.Client().ApplyURI(uri).SetAutoEncryptionOptions(autoEncryptionOpts))
MongoClientSettings clientSettings = MongoClientSettings.builder()
.applyConnectionString(new ConnectionString("mongodb://localhost:27017"))
.autoEncryptionSettings(AutoEncryptionSettings.builder()
.keyVaultNamespace(keyVaultNamespace)
.kmsProviders(kmsProviders)
.schemaMap(schemaMap)
.extraOptions(extraOptions)
.build())
.build();
MongoClient mongoClient = MongoClients.create(clientSettings);
const secureClient = new MongoClient(connectionString, {
monitorCommands: true,
autoEncryption: {
keyVaultNamespace,
kmsProviders,
schemaMap: patientSchema,
extraOptions: extraOptions,
},
});
fle_opts = AutoEncryptionOpts(
kms_providers,
key_vault_namespace,
schema_map=patient_schema,
**extra_options
)
client = MongoClient(connection_string, auto_encryption_opts=fle_opts)

返回

支持的操作