Este tutorial mostra como criar um aplicativo que implementa o recurso Queryable Encryption do MongoDB para criptografar e descriptografar automaticamente campos de documentos.
O tutorial inclui as seguintes seções:
Configure seu projeto: Instale o driver e as dependências de criptografia, configure suas variáveis de ambiente e crie seus arquivos de projeto com as variáveis de aplicativo necessárias.
Configurar criptografia: crie uma chave mestra do cliente (CMK), configure seu provedor KMS e as configurações de criptografia automática e crie um cliente e uma coleção habilitados para criptografia.
Executar operações criptografadas: insira um documento com campos criptografados, query em um campo criptografado e execute o aplicativo para visualizar os resultados descriptografados.
Selecione a linguagem do driver no menu suspenso para aprender como criar um aplicativo que criptografe e descriptografe automaticamente os campos do documento.
Importante
Não use este aplicativo de amostra em produção
Como as instruções deste tutorial incluem o armazenamento de uma chave de criptografia em um ambiente inseguro, você não deve usar uma versão não modificada desse aplicativo em produção. O uso desse aplicativo em produção está sujeito ao acesso não autorizado à chave de criptografia ou à perda da chave necessária para descriptografar seus dados. O objetivo deste tutorial é demonstrar como usar a Queryable Encryption sem precisar configurar um Sistema de Gerenciamento de Chaves.
Você pode usar um sistema de gerenciamento de chaves para armazenar com segurança sua chave de criptografia em um ambiente de produção. Um KMS é um serviço remoto que armazena e gerencia com segurança suas chaves de criptografia. Para saber como configurar um aplicação habilitado para Queryable Encryption que usa um KMS, consulte os Tutoriais de Queryable Encryption .
Antes de começar
Antes de iniciar este tutorial, conclua as seguintes etapas de pré-requisito:
Baixe a Biblioteca compartilhada de criptografia automática na Central de download do MongoDB. Navegue até a seção MongoDB Enterprise Server Download e selecione as seguintes opções:
No menu suspenso Version, selecione a versão marcada como
"current".No menu suspenso Platform, selecione sua plataforma.
No menu suspenso Package, selecione
crypt_shared.
Extraia o arquivo e salve o caminho para o arquivo da biblioteca compartilhada para uso futuro.
Observação
Componente de análise de query
A Biblioteca compartilhada de criptografia automática é uma alternativa preferencial ao
mongocryptde não requer a geração de um novo processo para realizar a criptografia automática. Este tutorial usa a Biblioteca compartilhada de criptografia automática.Configure um cluster MongoDB Atlas ou uma implantação de conjunto de réplicas local e salve sua string de conexão para uso futuro. Para saber mais, consulte o tutorial Introdução.
Observação
O MongoDB Community Edition não oferece suporte à Queryable Encryption com criptografia automática.
Certifique-se de que seu usuário de banco de dados tenha
dbAdminpermissões nos seguintes namespaces:encryption.__keyVaultmedicalRecordsdatabase
Código completo do aplicativo
Procedimento
Neste tutorial, você criou um aplicativo que criptografa e descriptografa automaticamente os campos ssn e billing em sua coleção patients. Como seu aplicativo usa um cliente criptografado, a query retorna os valores de campo descriptografados. Um cliente que não está configurado com suas chaves de criptografia veria os valores criptografados para esses campos.
Saiba mais
Para exibir um tutorial sobre Queryable Encryption pronta para produção com um KMS remoto, consulte Tutoriais de Queryable Encryption.
Para saber como a Queryable Encryption funciona, consulte Fundamentos da Queryable Encryption.
Para saber mais sobre os tópicos mencionados neste guia, consulte os seguintes links:
Saiba mais sobre os componentes da Queryable Encryption na página Referência.
Saiba como funcionam as chaves mestras do cliente e as chaves de criptografia de dados na página Chaves e cofres de chaves.
Veja como os provedores de KMS gerenciam suas chaves Queryable Encryption na página Provedores de KMS.