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

Chaves e cofres de chaves

Nesta página

  • Visão geral
  • Chaves
  • Key Vault Collections
  • Nome da Key Vault Collection
  • Permissões
  • Key Vault Cluster
  • Atualizar uma Key Vault Collection

Este guia contém mais informações sobre os seguintes componentes da criptografia no nível do campo do lado do cliente (CSFLE):

  • Chaves de criptografia de dados (DEK)s

  • Chaves mestras do cliente (CMK)s

  • Key Vault collections

  • Sistema de Gerenciamento de Chaves (KMS)

Para exibir guias passo a passo demonstrando como usar os componentes anteriores para configurar um cliente habilitado para CSFLE, consulte os seguintes recursos:

Seu diretório de dados (DEK) é a chave que o MongoDB usa para criptografar o campo em seu documento. Você armazena sua DEK em um documento na coleção do Key Vault, criptografado com sua chave mestra do cliente (CMK).

Sua Chave mestra do cliente é a chave que o MongoDB usa para criptografar suas Chaves de encriptação de dados durante a criação. Sem acesso a um CMK, seu aplicativo cliente não pode descriptografar os DEKs associados.

Se você excluir uma DEK, todos os campos criptografados com essa DEK ficarão permanentemente ilegíveis. Se você excluir uma CMK, todos os campos criptografados com uma DEK usando essa CMK se tornarão permanentemente ilegíveis.

Aviso

A Chave Mestra do Cliente é a chave mais sensível na Queryable Encryption. Se a sua CMK estiver comprometida, todos os seus dados criptografados poderão ser descriptografados. Use um sistema de Gerenciamento de Chaves Remoto para armazenar sua CMK.

Importante

Use um fornecedor de serviços de gerenciamento de chaves remoto

Armazene sua chave mestra do cliente em um sistema de gerenciamento de chaves (KMS) remoto.

Para saber mais sobre por que você deve usar um KMS remoto, consulte Motivos para usar um KMS remoto.

Para ver uma lista de todos os fornecedores de KMS compatíveis, consulte a página Fornecedores de KMS.

Para exibir diagramas detalhando como sua collection DEK, CMK e Key Vault interagem em todas as arquiteturas de provedor KMS compatíveis, consulte Provedores KMS CSFLE.

A Key Vault collection é a collection do MongoDB que você usa para armazenar documentos criptografados de Data Encryption Key (DEK). Documentos DEK são documentos BSON que contêm DEKs e possuem a seguinte estrutura:

{
"_id" : UUID(<string>),
"status" : <int>,
"masterKey" : {<object>},
"updateDate" : ISODate(<string>),
"keyMaterial" : BinData(0,<string>),
"creationDate" : ISODate(<string>),
"keyAltNames" : <array>
}

Crie uma collection de cofre de chaves igual criaria uma collection padrão do MongoDB. Sua collection de cofre de chaves deve ter um índice único no campo keyAltNames . Para conferir se o índice único existe, execute o comando listIndexes na collection de cofre de chaves:

1db.runCommand({
2 listIndexes: "__keyVault",
3});
1{
2 cursor: {
3 id: Long("0"),
4 ns: 'encryption.__keyVault',
5 firstBatch: [
6 { v: 2, key: { _id: 1 }, name: '_id_' }
7 ]
8 },
9 ok: 1,
10}

Se o índice único não existir, seu aplicativo deverá criá-lo antes de executar o gerenciamento DEK.

Para saber como criar uma collection do MongoDB, consulte Bancos de dados e coleções.

Dica

Funcionalidade mongosh

O método mongosh KeyVault.createKey() cria automaticamente um índice único no campo keyAltNames se não existir.

Você pode usar qualquer namespace que não seja de administrador para armazenar sua collection do Key Vault. Por convenção, os exemplos ao longo desta documentação utilizam o namespace do encryption.__keyVault.

Aviso

Não use o banco de dados admin para armazenar collections relacionadas à criptografia. Se você usar o banco de dados admin para essa collection, o cliente MongoDB não conseguirá acessar ou descriptografar seus dados devido à falta de permissões.

Aplicativos com acesso de read à Key Vault collection podem recuperar uma Data Encryption Key (DEK) criptografada fazendo queries na collection. No entanto, somente aplicativos com acesso à Chave mestra do cliente (CMK) usada para criptografar uma DEK podem usar essa DEK para fins de criptografia ou descriptografia. Você deve conceder ao seu aplicativo acesso à Key Vault collection e à sua CMK para criptografar e descriptografar documentos com uma DEK.

Para saber como conceder acesso a uma coleção MongoDB, consulte Gerenciar usuários e funções no manual MongoDB.

Para saber como conceder acesso ao aplicativo à CMK, consulte o tutorial Tutoriais.

Por padrão, o MongoDB armazena a Key Vault Collection no cluster conectado. O MongoDB também oferece suporte à hospedagem da Key Vault Collection em uma implantação do MongoDB diferente do cluster conectado. Os aplicativos devem ter acesso tanto ao cluster que hospeda sua Key Vault Collection quanto ao cluster de conexão para executar operações de Queryable Encryption.

Para especificar o cluster que hospeda sua Key Vault Collection, use o campo keyVaultClient do objeto MongoClient do cliente. Para saber mais sobre as opções de configuração específicas do CSFLE no objeto MongoClient do seu cliente, consulte Opções do MongoClient específicas do CSFLE.

Para adicionar uma DEK à sua Key Vault collection, use o método createKey de um objeto ClientEncryption.

Para excluir ou atualizar um DEK, use operações CRUD padrão. Você armazena uma DEK no MongoDB como um documento e pode aplicar qualquer operação de documento a uma DEK.

Para exibir um tutorial que mostra como criar uma DEK, consulte o Início rápido.

Dica

Funcionalidades específicas do mongosh

← Esquemas de criptografia