Visão geral
Saiba como usar o mecanismo de criptografia explícito da Queryable Encryption. A criptografia explícita permite especificar o material da chave usado para criptografar campos. Ele fornece controle refinado sobre a segurança, ao custo de maior complexidade ao configurar coleções e escrever código para drivers do MongoDB.
A criptografia explícita é um mecanismo no qual você especifica como criptografar e descriptografar campos em seu documento para cada operação executada em seu banco de dados.
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 algoritmo usado,
IndexedouUnindexedO ID do diretório de dados
O fator de contenção (se você estiver usando o algoritmo
Indexed)Se estiver executando uma operação de leitura, defina o tipo de query definido para o seu campo (se você estiver usando o algoritmo
Indexed)
Observação
Tipos de query
O tipo de query se aplica somente a operações de leitura.
Para saber mais sobre tipos de query, consulte Tipos de query.
Escolha do algoritmo
Utilize o algoritmo Indexed se você especificar um queryType no campo.
Indexed suporta queries de igualdade. Os campos Indexed exigem um índice no servidor. O índice é criado especificando a opção encryptedFields em db.createCollection() .
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
Especifique campo de criptografia para impor a criptografia de campo específicos em uma collection.
Indexed campos exigem um índice no servidor. O índice é criado especificando a opção encryptedFields em db.createCollection().
Se sua instância do MongoDB forçar 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 imposição de Queryable Encryption no lado do servidor, consulte Criptografia de campo e consultabilidade.
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.
Para aprender mais sobre KMS provedores e kmsProviders objetos, consulte KMS Provedores.