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 é um mecanismo no qual você especifica como gostaria de criptografar e descriptografar os campos no documento em cada operação executada no reconhecimento de data center.
A criptografia explícita está disponível nos seguintes produtos MongoDB que usam a versão 6.0 ou posterior:
Servidor MongoDB Community
MongoDB Enterprise Advanced
MongoDB Atlas
Usar criptografia explícita
As seções a seguir fornecem uma visão geral do uso da criptografia explícita em seu aplicativo habilitado para Queryable Encryption:
Criar uma ClientEncryption
instância do
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 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
For more ClientEncryption
options, see MongoClient Options for Queryable Encryption.
Observação
Os exemplos de código não estão disponíveis no momento, mas estarão disponíveis em breve.
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 seus campos automaticamente, você deve configurar 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
A descriptografia automática está disponível no servidor da comunidade MongoDB
Embora a criptografia automática exija MongoDB Enterprise ou MongoDB Atlas, a descriptografia automática está disponível nos seguintes produtos MongoDB que usam a versão 6.0 ou posterior:
Servidor MongoDB Community
MongoDB Enterprise Advanced
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()
.
Um cliente que executa a Queryable Encryption com o mecanismo de criptografia explícito em uma instância do MongoDB configurada para impor a criptografia de determinados campos deve criptografar esses campos conforme especificado na instância do MongoDB.
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.