Instalar e configurar uma biblioteca CSFLE
Nesta página
O MongoDB pode usar uma das duas bibliotecas para criptografia de nível de campo do lado do cliente (CSFLE). A biblioteca recomendada é a Biblioteca compartilhada de criptografia automática.
Antes de começar
Para usar o CSFLE com criptografia automática, você deve primeiro escolher a biblioteca que deseja que o MongoDB use para criptografar os campos.
crypt_shared, a biblioteca CSFLE recomendada.
mongocryptd, que está incluído nas instalações do MongoDB Enterprise Edition .
Ambos exigem a biblioteca libmongocrypt
. Para mais informações, consulte Instalar libmongocrypt para CSFLE.
Biblioteca compartilhada de criptografia automática
A Automatic Encryption Shared Library é uma biblioteca dinâmica que permite que seu aplicação cliente execute a criptografia automática. Uma biblioteca dinâmica é um conjunto de funcionalidades acessadas por um aplicação no tempo de execução em vez de compilar tempo. A Biblioteca compartilhada de criptografia automática executa as seguintes tarefas:
Lê o esquema de criptografia para determinar quais campos criptografar ou descriptografar
Impede que seu aplicativo execute operações não suportadas em campos criptografados
A biblioteca compartilhada de criptografia automática não realiza nenhuma das seguintes ações:
Executar criptografia ou descriptografia de dados
Acessar o material da chave de criptografia
Escutar dados pela rede
A Biblioteca compartilhada de criptografia automática é uma alternativa preferencial ao mongocryptd
e não exige que você inicie outro processo para executar a criptografia automática.
Observação
Embora seja recomendável usar a Biblioteca Compartilhada de Criptografia Automática, o mongocryptd
ainda é suportado.
Para saber mais sobre criptografia automática, consulte Recursos.
mongocryptd
mongocryptd
está instalado com o MongoDB Enterprise Edition.
Quando você cria um cliente MongoDB habilitado para CSFLE, o processo do mongocryptd
começa automaticamente por padrão.
O processo do mongocryptd
:
Usa as regras de criptografia automática especificadas para marcar campos em operações de leitura e gravação para criptografia.
Impede que operações não suportadas sejam executadas em campos criptografados.
Analisa o esquema de criptografia especificado para a conexão do banco de dados. As regras de criptografia automática usam um subconjunto rigoroso da sintaxe de JSON schema. Se as regras contiverem sintaxe de criptografia automática inválida ou qualquer sintaxe do
document validation
, omongocryptd
retornará um erro.
mongocryptd
executa apenas as funções anteriores e não executa nenhuma das seguintes:
mongocryptd
não executa criptografia ou descriptografiamongocryptd
não acessa nenhum material chave de criptografiamongocryptd
não escuta pela rede
Para executar a criptografia de campo e a descriptografia automática, os drivers usam a libmongocrypt licenciada pela Apache biblioteca.
Os drivers oficiais do MongoDB exigem acesso ao processo mongocryptd
na máquina host do cliente . Esses clientes procuram o processo mongocryptd
no sistema PATH
por padrão.
Passos
Baixar a biblioteca compartilhada de criptografia automática
Baixe a Biblioteca compartilhada de criptografia automática na Central de download do MongoDB selecionando a versão e a plataforma e, em seguida, a biblioteca:
No menu suspenso Version , selecione a versão rotulada como "atual".
No menu suspenso Platform, selecione sua plataforma.
No menu suspenso Package, selecione
crypt_shared
.Clique em Download.
Dica
Para ver uma lista expandida de versões e pacotes disponíveis, consulte Downloads do MongoDB Enterprise.
Configurar biblioteca compartilhada de criptografia automática
Você pode configurar como seu driver procura a Biblioteca Compartilhada de Criptografia Automática por meio dos seguintes parâmetros:
Nome | Descrição |
---|---|
cryptSharedLibPath | Especifica o caminho absoluto para o pacote Biblioteca compartilhada de criptografia automática, Padrão: |
cryptSharedLibRequired | Especifica se o driver deve usar a biblioteca compartilhada de criptografia automática. Se
Padrão: |
Para visualizar um exemplo demonstrando como configurar estes parâmetros, consulte Início Rápido.
Instalar o mongocryptd
Para sistemas operacionais Linux compatíveis: para instalar o pacote do servidor MongoDB, siga o tutorial de instalação no Linux e instale o pacote do servidor mongodb-enterprise
. Ao mesmo tempo, especifique mongodb-enterprise-cryptd
em vez de instalar somente o binário mongocryptd
. O gerenciador de pacotes instala os binários em um local no PATH do sistema.
Para OSX: para instalar o pacote do Servidor MongoDB, siga o tutorial de instalação no MacOS. O gerenciador de pacotes instala binários em um local no PATH do sistema.
Para Windows: para instalar o pacote MongoDB Server, siga o tutorial de instalação no Windows . Você deve adicionar o pacote mongocryptd
ao PATH do seu sistema após a instalação. Siga as práticas recomendadas documentadas para sua instalação do Windows para adicionar o binário mongocryptd
ao PATH do sistema.
Para instalar a partir de um arquivo tarball/ZIP oficial: Para instalar a partir de um arquivo oficial, siga as práticas recomendadas documentadas para seu sistema operacional para adicionar o binário mongocryptd
ao PATH do sistema.
Configurar mongocryptd
Se o driver tiver acesso ao processo mongocryptd
, ele gerará o processo por padrão.
Importante
Iniciar na inicialização
Se possível, inicie o mongocryptd
na inicialização, em vez de iniciá-lo sob demanda.
Configure como o driver inicia mongocryptd
por meio dos seguintes parâmetros:
Nome | Descrição |
---|---|
Porta | The port from which mongocryptd listens for messages.Default: 27020 |
Tempo limite de inatividade em marcha lenta (segundos) | Number of idle seconds the mongocryptd process waits
before exiting.Default: 60 |
mongocryptdURI | The URI on which to run the mongocryptd process.Default: "mongodb://localhost:27020" |
mongocryptdBypassSpawn | When true , prevents the driver from automatically
spawning mongocryptd .Default: false |
mongocryptdSpawnPath | The full path to mongocryptd .Default: Defaults to empty string and spawns from the system
path. |
Se um processo mongocryptd
já estiver em execução na porta especificada pelo driver, o driver poderá registrar um aviso e continuar sem gerar um novo processo. Todas as configurações especificadas pelo driver são aplicadas somente quando o processo existente é encerrado e um novo cliente criptografado tenta se conectar.
Exemplo
Para visualizar exemplos de como configurar seu processo do mongocryptd
, clique na guia correspondente ao driver que você está utilizando em seu aplicativo:
O seguinte trecho de código define a configuração da porta de audição do mongocryptd
:
var extraOptions = new Dictionary<string, object>() { { "mongocryptdSpawnArgs", new [] { "--port=30000" } }, }; autoEncryptionOptions.With(extraOptions: extraOptions);
O trecho de código abaixo define a configuração de tempo limite padrão de mongocryptd
:
var extraOptions = new Dictionary<string, object>() { { "idleShutdownTimeoutSecs", 60 }, }; autoEncryptionOptions.With(extraOptions: extraOptions);
O seguinte trecho de código define a configuração da porta de audição do mongocryptd
:
extraOptions := map[string]interface{}{ "mongocryptdSpawnArgs": []string{ "--port=30000", }, }
O trecho de código abaixo define a configuração de tempo limite padrão de mongocryptd
:
extraOptions := map[string]interface{}{ "mongocryptdSpawnArgs": []string{ "--idleShutdownTimeoutSecs=75", }, }
O seguinte trecho de código define a configuração da porta de audição do mongocryptd
:
List<String> spawnArgs = new ArrayList<String>(); spawnArgs.add("--port=30000"); Map<String, Object> extraOpts = new HashMap<String, Object>(); extraOpts.put("mongocryptdSpawnArgs", spawnArgs); AutoEncryptionSettings autoEncryptionSettings = AutoEncryptionSettings.builder() ... .extraOptions(extraOpts);
O trecho de código abaixo define a configuração de tempo limite padrão de mongocryptd
:
List<String> spawnArgs = new ArrayList<String>(); spawnArgs.add("--idleShutdownTimeoutSecs") .add("60"); Map<String, Object> extraOpts = new HashMap<String, Object>(); extraOpts.put("mongocryptdSpawnArgs", spawnArgs); AutoEncryptionSettings autoEncryptionSettings = AutoEncryptionSettings.builder() ... .extraOptions(extraOpts);
O seguinte trecho de código define a configuração da porta de audição do mongocryptd
:
autoEncryption: { ... extraOptions: { mongocryptdSpawnArgs: ["--port", "30000"], mongocryptdURI: 'mongodb://localhost:30000', }
Observação
No driver NodeJS, o mongocryptdURI
tem de corresponder à porta de audição.
O trecho de código abaixo define a configuração de tempo limite padrão de mongocryptd
:
autoEncryption: { ... extraOptions: { mongocryptdSpawnArgs: ["--idleShutdownTimeoutSecs", "75"] }
O seguinte trecho de código define a configuração da porta de audição do mongocryptd
:
auto_encryption_opts = AutoEncryptionOpts(mongocryptd_spawn_args=['--port=30000'])
O trecho de código abaixo define a configuração de tempo limite padrão de mongocryptd
:
auto_encryption_opts = AutoEncryptionOpts(mongocryptd_spawn_args=['--idleShutdownTimeoutSecs=75'])