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

特定 CSFLE 的 MongoClient 选项

在此页面上

  • Overview
  • AutoEncryptionOpts
  • 例子

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

autoEncryptionOpts对象传递给MongoClient实例以指定特定于 CSFLE 的选项。

下表显示了 autoEncryptionOpts 对象的结构:

Parameter
类型
必需
说明
keyVaultClient
MongoClient
No

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

如果省略keyVaultClient选项,则为包含autoEncryptionOpts配置的MongoClient实例指定的 MongoDB 实例将用作密钥保管库集合的主机。

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

keyVaultNamespace
字符串
密钥保管库集合的完整命名空间
kmsProviders
对象

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

要了解有关kmsProviders对象的详情,请参阅CSFLE KMS 提供商。

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

tlsOptions
对象
No

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

要了解有关 TLS 选项的更多信息,请参阅: TLS 选项。

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

schemaMap
对象
No

加密模式。

要了解如何构建加密模式,请参阅加密模式。

有关加密模式的完整文档,请参阅CSFLE 加密模式。

bypassAutoEncryption
布尔
No

指定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, {
useNewUrlParser: true,
useUnifiedTopology: true,
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)

后退

支持的操作