Menu Docs

Página inicial do DocsDesenvolver aplicaçõesManual 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 manual
  • Descriptografia automática
  • Exemplo
  • Criar uma instância do MongoClient
  • Criar uma Instância do ClientEncryption
  • Criptografar campos e inserir
  • Recuperar documento e descriptografar campos
  • 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

Para usar criptografia explícita, você deve executar as seguintes ações em seu aplicativo habilitado para CSFLE:

  • Criar uma Instância do ClientEncryption

  • Criptografar campos em operações de leitura e gravação

  • Descriptografar manualmente ou automaticamente os campos em seus documentos

Para usar a criptografia explícita, crie uma instância do ClientEncryption . ClientEncryption é uma abstração usada entre drivers e mongosh que encapsula Key Vault Collection e operações doKMS envolvidas na criptografia explícita.

Para criar uma instância do ClientEncryption, você deve especificar as seguintes informações:

  • Uma instância do MongoClient com acesso à sua coleção do Key Vault

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

  • Um objeto kmsProviders configurado com acesso ao provedor de KMS que hospeda sua chave mestra do cliente

Para mais opções do ClientEncryption , consulte Opções MongoClient para CSFLE.

Para visualizar trechos de código que mostram como criar uma instância do ClientEncryption , consulte a seção Exemplo deste guia.

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.

Para ver trechos de código que mostram como usar o método encrypt , consulte a seção Exemplo deste guia.

Você pode descriptografar seus campos criptografados manualmente ou automaticamente ao usar criptografia explícita.

Para descriptografar seus campos manualmente, use o método decrypt da sua instância do ClientEncryption.

Para ver trechos de código que mostram como usar o método decrypt , consulte a seção Exemplo deste guia.

Para descriptografar seus campos automaticamente, configure sua instância do MongoClient como segue:

  • Especifique sua coleção do Key Vault

  • Especifique um objeto kmsProviders

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

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 da versão 4.2 ou posterior:

  • Servidor MongoDB Community

  • MongoDB Enterprise Advanced

  • MongoDB Atlas

Para visualizar um trecho de código que demonstra como ativar a descriptografia automática, selecione a guia correspondente ao seu idioma preferido:

Suponha que você deseja inserir documentos com a seguinte estrutura em sua instância MongoDB:

{
"name": "<name of person>",
"age": <age of person>,
"favorite-foods": ["<array of foods>"]
}
1

Neste exemplo, você usa a mesma instância do MongoClient para acessar sua coleção do Key Vault e ler e gravar dados criptografados.

Os trechos de código a seguir mostram como criar uma instância MongoClient:

2

Os trechos de código a seguir mostram como criar uma instância ClientEncryption:

3

Você deseja criptografar os campos do documento usando os seguintes algoritmos:

Nome do campo
Algoritmo de criptografia
Tipo de campo BSON
name
Determinístico(a)
String
age
Sem criptografia
Int
favorite-foods
Aleatório
Array

Os seguintes trechos de código mostram como criptografar manualmente os campos em seu documento e inserir seu documento no MongoDB:

4

Os seguintes trechos de código mostram como recuperar seu documento inserido e descriptografar manualmente os campos criptografados:

O MongoDB suporta o uso da validação de esquema para impor a criptografia de campos específicos em uma coleção.

Um cliente que executa a criptografia de nível de campo do lado do cliente 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 CSFLE no lado do servidor, consulte Aplicação do esquema CSFLE no lado do servidor.

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.

← Criptografia automática