Criptografia automática no nível do campo do lado do cliente
Nesta página
Observação
Funcionalidade de empresas
O recurso automático da criptografia no nível do campo só está disponível no MongoDB Enterprise 4.2 ou posterior e no MongoDB Atlas 4.2 ou clusters posteriores.
Visão geral
Os drivers compatíveis com o MongoDB 4.2+ oficiais, mongosh
e o MongoDB 4.2 ou posterior legado mongo
shell campos de criptografia automática em operações de leitura e gravação. Para obter uma lista completa dos 4.2+ drivers compatíveis com suporte para criptografia de nível de campo do lado do cliente , consulte a tabela de compatibilidade de driver .
Os aplicativos devem criar um objeto de conexão do banco de dados (por exemplo MongoClient
) com as definições de configuração de criptografia automática. As definições de configuração devem incluir regras de criptografia automática usando um subconjunto rigoroso da sintaxe padrão do JSON schema 4 e palavras-chave de esquema específicas de criptografia. Os aplicativos não precisam modificar o código associado à construção da operação de leitura/gravação. Consulte Regras de criptografia automática para obter a documentação completa sobre regras de criptografia automática.
Os drivers compatíveis oficiais do MongoDB 4.2 , mongosh
e o shell do MongoDB 4.2 ou posterior mongo
legado usam a Biblioteca Compartilhada de Criptografia Automática para analisar as regras de criptografia automática e aplicar as regras de criptografia ao ler ou gravar documentos:
Para operações de gravação, o driver/shell criptografa os valores de campo antes de gravar no banco de MongoDB database.
Para operações de leitura, o driver/shell criptografa os valores de campo na query antes de emitir a operação de leitura.
Para operações de leitura que retornam campos criptografados, o driver/shell descriptografa automaticamente os valores criptografados somente se o driver/shell tiver sido configurado com acesso às chaves usadas para proteger esses valores.
A Biblioteca compartilhada de criptografia automática é uma alternativa preferencial ao mongocryptd e não requer a geração de um novo processo. mongocryptd
ainda é suportado. Para saber mais sobre a Biblioteca compartilhada de criptografia automática, consulte Biblioteca compartilhada de criptografia automática.
Habilitando a criptografia automática em nível de campo do lado do cliente
Cada driver compatível com o MongoDB 4.2+ introduz uma nova funcionalidade para dar suporte à criptografia automática e ao gerenciamento de chave de criptografia de dados. Consulte a documentação do driver de sua preferência para obter instruções específicas do idioma sobre a implementação automática da criptografia no nível do campo no lado do cliente .
O mongosh
adiciona uma opção adicional ao método Mongo()
para instanciar uma conexão de banco de dados com criptografia automática de nível de campo do lado do cliente. Para obter um exemplo completo, consulte Conectar-se a um cluster com criptografia automática do lado do cliente ativada.
A criptografia automática em nível de campo do lado do cliente requer acesso à Biblioteca compartilhada de criptografia automática na máquina host do cliente. Os drivers oficiais compatíveis com MongoDB 4.2+ têm opções adicionais para gerenciar a Biblioteca compartilhada de criptografia automática. Geralmente, o 4.2+ drivers compatíveis e mongosh
podem acessar a biblioteca compartilhada se ela estiver no sistema PATH
.
Os aplicativos devem especificar os seguintes componentes ao instanciar a conexão do banco de dados para habilitar a criptografia automática em nível de campo no lado do cliente:
Um cofre de chaves de chaves de criptografia de dados. O cofre de chaves pode residir em um cluster MongoDB remoto ou no cluster MongoDB armazenando dados criptografados do lado do cliente .
Um provedor de KMS (KMS) suportado usado para gerenciar chaves mestras do cliente (CMK). O MongoDB criptografa todas as chaves de criptografia de dados usando a CMK especificada antes de armazená-las no cofre de chaves, deixando apenas metadados não criptografados.
4.2+ drivers compatíveis,
mongosh
e o MongoDB 4.2 ou shellmongo
legado posterior precisam de acesso ao KMS para criptografar e descriptografar campos protegidos ou para criar novas chaves de criptografia de dados.Regras de criptografia automática por campo usando a sintaxe de JSON schema.
Aplicação de criptografia em nível de campo no lado do servidor
A partir do MongoDB 4.2, o servidor suporta o uso da validação de esquema para impor a criptografia de campos específicos em uma coleção. Os clientes que executam a criptografia automática em nível de campo no lado do cliente têm um comportamento específico, dependendo da configuração da conexão com o banco de dados de dados:
Se o objeto de conexão
ClientSideFieldLevelEncryptionOptions
schemaMap
contiver uma chave para a coleção especificada, o cliente usará esse objeto para executar a criptografia automática no nível do campo e ignorará o esquema remoto. No mínimo, as regras locais devem criptografar os campos que o esquema remoto marca como exigindo criptografia.Se a conexão
ClientSideFieldLevelEncryptionOptions
schemaMap
objeto não contiver uma chave para a coleção especificada, o cliente baixará o esquema remoto do lado do servidor para a coleção e o usará para executar a criptografia automática em nível de campo .Essa configuração exige que o cliente confie que o servidor tem um esquema válido em relação à criptografia automática de nível de campo. O cliente só usa o esquema remoto para executar a criptografia automática em nível de campo e não impõe nenhuma outra regra de validação especificada no esquema.
Para obter a documentação completa sobre a imposição de criptografia em nível de campo no lado do lado do cliente no lado do servidor, consulte Aplicar esquema de criptografia no nível do campo.