getClientEncryption()Retorna o objeto
ClientEncryptionpara a coleção de banco de dados atual. O objetoClientEncryptionoferece suporte à criptografia e descriptografia explícitas (manual) de valores de campo para criptografia no nível do campo do lado do cliente.Retorna: O objeto
ClientEncryptionpara a conexão de banco de dados atual.
Compatibilidade
Esse comando está disponível em implantações hospedadas nos seguintes ambientes:
- MongoDB Atlas: o serviço totalmente gerenciado para implantações do MongoDB na nuvem
MongoDB Enterprise: a versão autogerenciada e baseada em assinatura do MongoDB
MongoDB Community: uma versão com código disponível, de uso gratuito e autogerenciada do MongoDB
Sintaxe
getClientEncryption() tem a seguinte sintaxe:
db.getMongo().getClientEncryption();
Use o objeto ClientEncryption para acessar os seguintes métodos de criptografia explícita:
Comportamento
Habilite criptografia no nível do campo do lado do cliente na conexão do banco de dados
The mongosh client-side field level encryption methods require a database connection with client-side field level encryption enabled. If the current database connection was not initiated with client-side field level encryption enabled, either:
Use the
mongoshcommand line options to establish a connection with the required options. The command line options only support the Amazon Web Services KMS provider for CMK management.
Exemplo
O método getKeyVault() cria automaticamente um índice único no campo keyAltNames com um filtro de índice parcial para somente documentos onde keyAltNames existe. getKeyVault() cria esse índice na collection de cofre de chaves. Isso impede que dois diretórios de dados no mesmo cofre de chaves tenham o mesmo nome alternativo de chave e, portanto, evita a ambiguidade em torno de qual diretório de dados é apropriado para criptografia/descriptografia.
Aviso
Não descarte o índice único criado por getKeyVault() . As operações de criptografia do nível do campo no lado do cliente dependem da singularidade de keyAltNames imposta pelo servidor. Remover o índice pode levar a comportamento inesperado ou imprevisível.
O exemplo a seguir usa um KMS managed localmente para a configuração de criptografia no nível do campo do lado do cliente.
Criar as opções de criptografia em nível de campo do lado do cliente
Crie as opções de criptografia no nível do campo do lado do cliente usando a string de chave local gerada:
let autoEncryptionOpts = { "keyVaultNamespace" : "encryption.__dataKeys", "kmsProviders" : { "local" : { "key" : BinData(0, TEST_LOCAL_KEY) } } }
Crie seu cliente criptografado
Use o construtor Mongo() com as opções de criptografia de nível de campo do lado do cliente configuradas para criar uma conexão com o reconhecimento de data center. Substitua o URI mongodb://myMongo.example.net pelo URI da string de conexão do cluster de destino.
encryptedClient = Mongo( "mongodb://myMongo.example.net:27017/?replSetName=myMongo", autoEncryptionOpts )
Use the getClientEncryption() method to retrieve the client encryption object:
clientEncryption = encryptedClient.getClientEncryption()
Saiba mais
Para obter a documentação completa sobre como iniciar conexões do MongoDB com a criptografia no nível do campo do lado do cliente habilitada, consulte Mongo().