Esta página descreve as edições do MongoDB Server e as versões de driver compatíveis com Queryable Encryption e Client-Side Field Level Encryption para ajudá-lo a determinar se seu sistema oferece suporte a cada recurso de criptografia em uso.
➤ Use o menu suspenso Selecione seu idioma para selecionar seu driver e ver sua compatibilidade com a Queryable Encryption e a Client-Side Field Level Encryption.
Compatibilidade de Queryable Encryption
As seções a seguir descrevem os requisitos de compatibilidade para usar a Queryable Encryption com o MongoDB Server e seu driver selecionado.
Compatibilidade com o MongoDB
Você pode usar a Queryable Encryption em um MongoDB Server 7.0 ou conjunto de réplicas posteriores ou cluster fragmentado, mas não em uma instância autônomo . A tabela a seguir mostra quais MongoDB Server suportam quais mecanismos de Queryable Encryption :
Nome do produto | Versão mínima | Suporta Queryable Encryption com criptografia automática | Suporte para Queryable Encryption com criptografia explícita |
---|---|---|---|
MongoDB Atlas [1] | 7.0 | Sim | Sim |
MongoDB Enterprise Advanced | 7.0 | Sim | Sim |
MongoDB Community Edition | 7.0 | No | Sim |
[1] | A Queryable Encryption é compatível com o MongoDB Atlas , mas não com o MongoDB Search. |
Compatibilidade de drivers
Para usar a Queryable Encryption com o driver C, instale os seguintes componentes:
Versão do driver 1.24.0 ou posterior
libmongocrypt versão 1.8.0 ou posterior
Para usar a Queryable Encryption com o driver C++, instale os seguintes componentes:
Versão do driver 3.8.0 ou posterior
libmongocrypt versão 1.8.0 ou posterior
Para usar a Queryable Encryption com o driver .NET/C#, instale a versão do driver 2.20.0 ou posterior.
Se estiver usando a versão 3.0 ou posterior do driver, você também deverá concluir as seguintes etapas:
Instale o pacote MongoDB.Driver.Encryption do NuGet. Este pacote habilita a criptografia automática.
Se seu aplicação for executado no Linux, instale libmongocrypt manualmente. Em seguida, defina a variável de ambiente
LIBMONGOCRYPT_PATH
para o caminho absoluto do arquivolibmongocrypt
.Se o seu aplicação for executado no 64-bit Linux e você estiver utilizando a versão do driver 3.4.3 ou anterior, adicione as seguintes linhas de XML ao seu arquivo
.csproj
. Altere o valor do elemento<MongoDriverEncryptionVersion>
para corresponder à versão do pacoteMongoDB.Driver.Encryption
que você instalou.
<PropertyGroup> <!-- replace the version here with your package version --> <MongoDriverEncryptionVersion>3.4.2</MongoDriverEncryptionVersion> <MongoDriverEncryptionPath>$(NuGetPackageRoot)mongodb.driver.encryption\$(MongoDriverEncryptionVersion)</MongoDriverEncryptionPath> </PropertyGroup> <PropertyGroup> <!-- Suppresses the duplicate file error --> <ErrorOnDuplicatePublishOutputFiles>false</ErrorOnDuplicatePublishOutputFiles> </PropertyGroup> <!-- Ensures the correct library after build or publish --> <Target Name="EnsureCorrectMongoEncryption" AfterTargets="Build;Publish" Condition="'$(RuntimeIdentifier)' != ''"> <!-- Determine paths based on current operation --> <PropertyGroup> <_TargetDir Condition="Exists('$(PublishDir)')">$(PublishDir)</_TargetDir> <_TargetDir Condition="'$(_TargetDir)' == ''">$(OutputPath)</_TargetDir> </PropertyGroup> <!-- Copy the correct library based on runtime identifier (RID) --> <ItemGroup> <_CorrectMongoLib Include="$(MongoDriverEncryptionPath)/runtimes/linux/native/x64/libmongocrypt.so" Condition="'$(RuntimeIdentifier)' == 'linux-x64'" /> <_CorrectMongoLib Include="$(MongoDriverEncryptionPath)/runtimes/linux/native/arm64/libmongocrypt.so" Condition="'$(RuntimeIdentifier)' == 'linux-arm64'" /> <_CorrectMongoLib Include="$(MongoDriverEncryptionPath)/runtimes/linux/native/alpine/libmongocrypt.so" Condition="'$(RuntimeIdentifier)' == 'linux-musl-arm64'" /> </ItemGroup> <!-- Copy with overwrite --> <Copy SourceFiles="@(_CorrectMongoLib)" DestinationFolder="$(_TargetDir)" Condition="'@(_CorrectMongoLib)' != ''" OverwriteReadOnlyFiles="true" /> <Message Text="Fixed MongoDB encryption library for $(RuntimeIdentifier)" Condition="'@(_CorrectMongoLib)' != ''" /> </Target>
Para usar a Queryable Encryption com o driver Go, instale os seguintes componentes:
Versão do driver 1.12 ou posterior
libmongocrypt versão 1.8.0 ou posterior
Para usar a Queryable Encryption com o driver Java Reactive Streams, instale os seguintes componentes:
Versão do driver 4.10.0 ou posterior
versão do mongodb-crypt 1.8.0 ou mais tarde
Para usar a Queryable Encryption com o driver Java Sync, instale os seguintes componentes:
Versão do driver 4.10.0 ou posterior
versão do mongodb-crypt 1.8.0 ou mais tarde
Para usar a Queryable Encryption com o driver Node.js, instale os seguintes componentes:
Versão do driver 5.5.0 ou posterior
mongodb-client-encryption versão 2.8.0 ou mais tarde
Se você estiver usando a versão 6.0 ou posterior do driver Node.js , também deverá usar a versão 6.0 ou posterior do mongodb-client-encryption
.
Para usar a Queryable Encryption com o driver PHP, instale a versão do driver 1.16 ou posterior.
Para usar a Queryable Encryption com PyMongo, instale os seguintes componentes:
Versão do driver 4.4 ou posterior
pymongocrypt versão 1.6 ou posterior
Para usar a Queryable Encryption com o driver Ruby, instale os seguintes componentes:
Versão do driver 2.19 ou posterior
libmongocrypt-helper versão 1.8.0 ou mais tarde
Para usar a Queryable Encryption com o driver Rust, instale os seguintes componentes:
Versão do driver 2.4.0 ou posterior
libmongocrypt versão 1.8.0 ou posterior
Para usar a Queryable Encryption com o driver Scala, instale os seguintes componentes:
Versão do driver 4.10.0 ou posterior
versão do mongodb-crypt 1.8.0 ou mais tarde
Importante
Suporte à criptografia automática
Para usar o Queryable Encryption com criptografia automática, você deve instalar um componente de análise de query. Para saber mais, consulte Instalar e configurar um componente de análise de query.
Limitações de suporte do MongoDB
A Queryable Encryption em uma collection elimina campos de alguns comandos de diagnóstico e omite algumas operações do registro de queries. Isso limita os dados disponíveis aos engenheiros de suporte do MongoDB, especialmente ao analisar o desempenho da query. Para medir o impacto das operações em relação a collections criptografadas, use uma ferramenta de monitoramento de desempenho de aplicativos de terceiros para coletar métricas.
Compatibilidade de criptografia no nível do campo do lado do cliente
As seções a seguir descrevem os requisitos de compatibilidade para usar a criptografia em nível de campo do lado do cliente (CSFLE) com o MongoDB Server e o driver selecionado.
Compatibilidade com o MongoDB
Você pode usar a criptografia em nível de campo do lado do cliente em um conjunto de réplicas ou cluster fragmentado, mas não em uma instância autônomo . A tabela a seguir mostra quais produtos MongoDB Server suportam quais mecanismos de criptografia em nível de campo do lado do cliente:
Nome do produto | Versão mínima | Suporta CSFLE com criptografia automática | Suporta CSFLE com criptografia explícita |
---|---|---|---|
MongoDB Atlas | Sim | Sim | |
MongoDB Enterprise Advanced | 4.2 | Sim | Sim |
MongoDB Community Edition | 4.2 | No | Sim |
Compatibilidade de drivers
Para usar a criptografia no nível do campo do lado do cliente e a API de rotação de chaves com o driver C, instale a versão do driver 1.17.5 ou posterior.
Para usar a criptografia no nível do campo do lado do cliente e a API de rotação de chaves com o driver C++, instale a versão 3.6.0 do driver ou posterior.
Para usar a criptografia no nível do campo do lado do cliente com o driver .NET/C#, instale a versão do driver 2.10.0 ou posterior. Para usar a API de rotação de chaves, instale a versão do driver 2.17.1 ou posterior.
Se estiver usando a versão 3.0 ou posterior do driver, você também deverá concluir as seguintes etapas:
Instale o pacote MongoDB.Driver.Encryption do NuGet. Este pacote habilita a criptografia automática.
Se seu aplicação for executado no Linux, instale libmongocrypt manualmente. Em seguida, defina a variável de ambiente
LIBMONGOCRYPT_PATH
para o caminho absoluto do arquivolibmongocrypt
.Se o seu aplicação for executado no 64-bit Linux e você estiver utilizando a versão do driver 3.4.3 ou anterior, adicione as seguintes linhas de XML ao seu arquivo
.csproj
. Altere o valor do elemento<MongoDriverEncryptionVersion>
para corresponder à versão do pacoteMongoDB.Driver.Encryption
que você instalou.
<PropertyGroup> <!-- replace the version here with your package version --> <MongoDriverEncryptionVersion>3.4.2</MongoDriverEncryptionVersion> <MongoDriverEncryptionPath>$(NuGetPackageRoot)mongodb.driver.encryption\$(MongoDriverEncryptionVersion)</MongoDriverEncryptionPath> </PropertyGroup> <PropertyGroup> <!-- Suppresses the duplicate file error --> <ErrorOnDuplicatePublishOutputFiles>false</ErrorOnDuplicatePublishOutputFiles> </PropertyGroup> <!-- Ensures the correct library after build or publish --> <Target Name="EnsureCorrectMongoEncryption" AfterTargets="Build;Publish" Condition="'$(RuntimeIdentifier)' != ''"> <!-- Determine paths based on current operation --> <PropertyGroup> <_TargetDir Condition="Exists('$(PublishDir)')">$(PublishDir)</_TargetDir> <_TargetDir Condition="'$(_TargetDir)' == ''">$(OutputPath)</_TargetDir> </PropertyGroup> <!-- Copy the correct library based on runtime identifier (RID) --> <ItemGroup> <_CorrectMongoLib Include="$(MongoDriverEncryptionPath)/runtimes/linux/native/x64/libmongocrypt.so" Condition="'$(RuntimeIdentifier)' == 'linux-x64'" /> <_CorrectMongoLib Include="$(MongoDriverEncryptionPath)/runtimes/linux/native/arm64/libmongocrypt.so" Condition="'$(RuntimeIdentifier)' == 'linux-arm64'" /> <_CorrectMongoLib Include="$(MongoDriverEncryptionPath)/runtimes/linux/native/alpine/libmongocrypt.so" Condition="'$(RuntimeIdentifier)' == 'linux-musl-arm64'" /> </ItemGroup> <!-- Copy with overwrite --> <Copy SourceFiles="@(_CorrectMongoLib)" DestinationFolder="$(_TargetDir)" Condition="'@(_CorrectMongoLib)' != ''" OverwriteReadOnlyFiles="true" /> <Message Text="Fixed MongoDB encryption library for $(RuntimeIdentifier)" Condition="'@(_CorrectMongoLib)' != ''" /> </Target>
Para usar a criptografia no nível do campo do lado do cliente com o driver Go, instale a versão do driver 1.2 ou posterior. Para usar a API de rotação de chaves, instale a versão 1.5.2 da libmongocrypt ou posterior.
Para usar a criptografia em nível de campo do lado do cliente com o driver Java Reactive Streams, instale a versão do driver 1.12.0 ou posterior. Para usar a API de rotação de chaves, instale a versão mongodb-crypt
1.7.3 ou posterior.
Para usar a criptografia em nível de campo do lado do cliente com o driver Java Sync ou Java Reactive Streams, instale a versão 3.10.0 do driver ou posterior. Para usar a API de rotação de chaves, instale mongodb-crypt
versão 1.7.3 ou mais tarde.
Para usar a criptografia no nível do campo do lado do cliente com o driver Node.js, instale a versão do driver 3.4.0 ou posterior. Para usar a API de rotação de chaves, instale mongodb-client-encryption versão 2.2.0 - 2.x.
Se você estiver usando a versão 6.0 ou posterior do driver Node.js , também deverá usar a versão 6.0 ou posterior do mongodb-client-encryption
.
Para usar a criptografia no nível do campo do lado do cliente e a API de rotação de chaves com o driver PHP, instale a versão 1.6.0 do driver ou posterior.
Para usar a criptografia no nível do campo do lado do cliente com PyMongo, instale a versão do driver 3.10.0 ou posterior. Para usar a API de rotação de chaves, instale o pymongocrypt versão 1.3.1 ou mais tarde.
Para usar a criptografia no nível do campo do lado do cliente e a API de rotação de chaves com o driver Ruby, instale a versão 2.12.1 do driver ou posterior.
Para usar a criptografia em nível de campo do lado do cliente com o driver Rust, instale a versão do driver 2.4.0 ou posterior. Para usar a API de rotação de chaves, instale libmongocrypt versão 1.8.0 ou posterior.
Para usar a criptografia no nível do campo do lado do cliente e a API de rotação de chaves com o driver Scala, instale a versão 2.7.0 do driver ou posterior.
Para saber mais sobre a API de rotação de chaves, consulte Girar e retrair chaves de criptografia.
Importante
Suporte à criptografia automática
Para usar a criptografia em nível de campo do lado do cliente com criptografia automática, você deve instalar um componente de análise de query. Para saber mais, consulte Instalar e configurar um componente de análise de query CSFLE.