Visão geral
A criptografia explícita fornece controle refinado sobre a segurança, ao custo de maior complexidade ao configurar collections e escrever código para os drivers do MongoDB. Com a criptografia explícita, você especifica como criptografar campos em seu documento para cada operação executada no banco de dados e inclui essa lógica em todo o aplicativo.
A criptografia explícita está disponível nos seguintes produtos MongoDB:
Servidor MongoDB Community
MongoDB Enterprise Advanced
MongoDB Atlas
Usar criptografia explícita
Criar uma Instância do ClientEncryption
ClientEncryption is an abstraction used across drivers and mongosh that encapsulates the Key Vault collection and KMS operations involved in explicit encryption.
Para criar uma instância do ClientEncryption , especifique:
Um objeto
kmsProvidersconfigurado com acesso ao provedor de KMS que hospeda sua chave mestra do clienteO namespace da sua coleção do Key Vault
Se você utilizar o servidor da comunidade MongoDB, configure a opção
bypassQueryAnalysisparaTrueUma instância do
MongoClientcom acesso à sua coleção do Key Vault
Para mais opções do ClientEncryption , consulte Opções do MongoClient para Queryable Encryption.
Criptografar campos em operações de leitura e gravação
Você deve atualizar as operações de leitura e gravação em todo o aplicativo para que ele criptografe os campos antes de executar operações de leitura e gravação.
Para criptografar campos, use o método encrypt de sua instância ClientEncryption . Especifique o seguinte:
O valor a ser criptografado
O ID do diretório de dados
O algoritmo
unindexed: para campos criptografados não consultáveis.indexed: suporta consultas de igualdade.range: suporta queries de faixa.
For read operations on queryable encrypted fields, specify the queryType. All algorithms below require an index on the server, which is created when you specify the
encryptedFieldsoption duringdb.createCollection().Para operações de leitura em campos criptografados consultáveis, especifique quaisquer opções adicionais, como os valores mínimos e máximos consultáveis para campos de intervalo.
Algoritmos e QueryTypes
algoritmo | queryType | Parâmetros adicionais |
|---|---|---|
|
| |
|
|
|
Observação
A partir do MongoDB 8.0, o algoritmo rangePreview Queryable Encryption foi preterido e removido. Em vez disso, use o algoritmo Range.
Se sua Queryable Encryption usar rangePreview, você deverá descartar a coleção antes de atualizar para o MongoDB 8.0.
Descriptografia automática
Para descriptografar campos automaticamente, configure sua instância do MongoClient como segue:
Especifique um objeto
kmsProvidersEspecifique sua coleção do Key Vault
Se você utilizar o servidor da comunidade MongoDB, configure a opção
bypassQueryAnalysisparaTrue
Observação
Descriptografia automática no MongoDB Community servidor
A descriptografia automática está disponível no MongoDB Community Server. A criptografia automática requer MongoDB Enterprise ou MongoDB Atlas.
Aplicação de criptografia em nível de campo no lado do servidor
Etapas para impor a criptografia de campos específicos em uma coleção.
Indexed e Range campos exigem um índice no servidor. O índice é criado especificando a opção encryptedFields em db.createCollection().
Se sua instância do MongoDB impor a criptografia de campos específicos, qualquer cliente que execute a Queryable Encryption com criptografia explícita deverá criptografar esses campos conforme especificado. Para saber como configurar a aplicação da Queryable Encryption no lado do servidor, consulte Campos criptografados e queries ativadas.
Saiba mais
Para saber mais sobre coleções de Key Vault, chaves de criptografia de dados e chaves mestras de clientes, consulte Chaves de criptografia e Key Vaults.
To learn more about KMS providers and kmsProviders objects, see KMS Providers.