Instalar e configurar o mongocryptd para Queryable Encryption
Nesta página
Visão geral
Dica
Usar a biblioteca compartilhada de criptografia automática
O MongoDB um novo assistente de criptografia , crypt_shared
, conhecido como Biblioteca Compartilhada. A biblioteca compartilhada substitui mongocryptd
e não requer a geração de um novo processo.
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.
mongocryptd
está instalado com o servidor MongoDBMongoDB Enterprise MongoDB (versão 4.2 e posterior).
Quando você cria um MongoDB client habilitado para Queryable Encryption, o processo de mongocryptd
é iniciado automaticamente por padrão e lida com as seguintes responsabilidades:
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 reconhecimento de data center. As regras de criptografia automática usam um subconjunto rigoroso da sintaxe de JSON schema. Se as regras de criptografia automática contiverem sintaxe de criptografia automática inválida ou qualquer sintaxe de validação de documento, o
mongocryptd
retornará um erro.
mongocryptd
é responsável apenas pelas funções acima e não executa nenhuma das seguintes:
mongocryptd
não executa criptografia ou descriptografia em simongocryptd
não acessa nenhum material chave de criptografiamongocryptd
não escuta pela rede
Drivers compatíveis com o MongoDB 4.2 e posterior usam a libmongocrypt licenciada pela Apache para executar criptografia no nível do campo no lado do cliente e descriptografia automática.
Os drivers compatíveis oficiais do MongoDB 4.2+, mongosh
e o shell 4.2 ou posterior mongo
legado exigem acesso ao processo mongocryptd
na máquina host do cliente . Esses clientes procuram o processo mongocryptd
no PATH do sistema por padrão.
Instalação
Para sistemas operacionais Linux compatíveis, instale o pacote do servidor seguindo o tutorial de instalação no Linux, siga as instruções de instalação documentadas 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 (por exemplo, /usr/bin/
)
Para OSX, instale o pacote Server seguindo o tutorial de instalação no MacOS. O gerenciador de pacotes instala binários em um local no PATH do sistema.
Para Windows, instale o pacote Server seguindo o tutorial de instalação no Windows. Você deve adicionar o pacote mongocryptd
ao PATH do seu sistema após a instalação. Consulte as práticas recomendadas documentadas para sua instalação do Windows para obter instruções sobre como adicionar o binário mongocryptd
ao PATH do sistema.
Para instalações por meio de um arquivo tarball ou ZIP oficial, siga as práticas recomendadas documentadas para seu sistema operacional para adicionar o binário mongocryptd
ao PATH do sistema.
Configuração
Se o driver compatível com 4,2+ tiver acesso ao processo mongocryptd
, por padrão, o driver managed a criação do processo mongocryptd
.
Observação
Porta de Mongocryptd em uso
Se um processo mongocryptd
já estiver em execução na porta especificada pelo driver, o driver poderá registrar um aviso e continuar a operar 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.
Você pode configurar como seu driver inicia mongocryptd
por meio dos seguintes parâmetros:
Nome | Descrição |
---|---|
Porta | The port from which mongocryptd listens for messages.Specify this value in the AutoEncryptionSettings .Default: 27020 |
Tempo limite de inatividade em marcha lenta (segundos) | Number of idle seconds in which the mongocryptd process should wait before exiting.Specify this value in the AutoEncryptionSettings .Default: 60 |
Importante
Iniciar na inicialização
Se possível, recomendamos que o mongocryptd
seja iniciado na inicialização, em vez de ser iniciado sob demanda.
Exemplos
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
Na versão atual (3.3.4) do driver NodeJS, você deve especificar o mongocryptdURI
para corresponder à porta de escuta.
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'])