Criptografia explícita
Nesta página
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
é uma abstração usada entre drivers e mongosh
que encapsula a Key Vault Collection e as operações KMS envolvidas na criptografia explícita.
Para criar uma instância do ClientEncryption
, especifique:
Um objeto
kmsProviders
configurado 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
bypassQueryAnalysis
paraTrue
Uma instância do
MongoClient
com 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,
Indexed
ouUnindexed
O 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
kmsProviders
Especifique sua coleção do Key Vault
Se você utilizar o servidor da comunidade MongoDB, configure a opção
bypassQueryAnalysis
paraTrue
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 e Key Vaults.
Para saber mais sobre provedores de KMS e objetos kmsProviders
, consulte Provedores de KMS.