Menu Docs
Página inicial do Docs
/
Manual do MongoDB
/ / / / /

Criptografia explícita

Nesta página

  • Visão geral
  • Usar criptografia explícita
  • Criar uma Instância do ClientEncryption
  • Criptografar campos em operações de leitura e gravação
  • Descriptografia automática
  • Aplicação de criptografia em nível de campo no lado do servidor
  • Saiba mais

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

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 cliente

  • O namespace da sua coleção do Key Vault

  • Se você utilizar o servidor da comunidade MongoDB, configure a opção bypassQueryAnalysis para True

  • 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.

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 ou Unindexed

  • 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 os tipos de query, consulte Tipos de query suportados e comportamento.

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() .

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 para True

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.

Etapas para impor a criptografia de campos específicos em uma coleção.

Indexed 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 e queries criptografados.

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 saber mais sobre provedores de KMS e objetos kmsProviders , consulte Provedores de KMS.

← Coleções criptografadas