Página inicial do Docs → Desenvolver aplicações → 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 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
Visão geral
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
Usar criptografia explícita
Para usar criptografia explícita, você deve executar as seguintes ações em seu aplicativo habilitado para CSFLE:
Descriptografar manualmente ou automaticamente os campos em seus documentos
Criar uma Instância do ClientEncryption
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 VaultO 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.
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
.
Para ver trechos de código que mostram como usar o método encrypt
, consulte a seção Exemplo deste guia.
Descriptografia manual
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.
Descriptografia automática
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
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 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:
Exemplo
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>"] }
Criptografar campos e inserir
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:
Aplicação de criptografia em nível de campo no lado do servidor
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.
Saiba mais
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.