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
kmsProvidersconfigurado 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
bypassQueryAnalysisparaTrueUma instância do
MongoClientcom acesso à sua coleção do Key Vault
Para mais opções do ClientEncryption , consulte Opções do 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,
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 seus campos automaticamente, você deve configurar 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
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.