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

Saiba como usar o mecanismo de criptografia explícita da CSFLE (Criptografia de Nível de Campo do Lado do Cliente).

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

  • 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 KMS que hospeda sua chave mestra do cliente

Para mais opções do ClientEncryption, consulte Opções do MongoClient específicas do 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, você deve configurar 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 e Key Vaults.

Para saber mais sobre os provedores KMS e os objetos kmsProviders, consulte Provedores CSFLE KMS.

← Criptografia automática