Menu Docs
Página inicial do Docs
/
Manual do MongoDB
/ / /

getClientEncryption()

Nesta página

  • Comportamento
  • Exemplo
getClientEncryption()

Retorna o objeto ClientEncryption para a coleção de banco de dados atual. O objeto ClientEncryption suporta criptografia e descriptografia explícitas (manual) de valores de campo para a criptografia de nível de campo do lado do cliente.

getClientEncryption() tem a seguinte sintaxe:

db.getMongo().getClientEncryption();
Retorna:O objeto ClientEncryption para a conexão de banco de dados atual.

Use o objeto ClientEncryption para acessar os seguintes métodos de criptografia explícita:

Os métodos de criptografia de nível de campo do lado do cliente mongosh exigem uma conexão de banco de dados com a criptografia de nível de campo do lado do cliente ativada. Se a conexão atual do banco de dados não tiver sido iniciada com a criptografia em nível de campo do lado do cliente ativada, faça o seguinte:

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.

Para configurar a criptografia no nível do campo do lado do cliente para uma chave gerenciada localmente:

  • gerar uma string de 96 bytes codificada em base 64sem quebras de linha

  • use mongosh para carregar a chave

export TEST_LOCAL_KEY=$(echo "$(head -c 96 /dev/urandom | base64 | tr -d '\n')")
mongosh --nodb

Crie o objeto de criptografia no nível do campo do lado do cliente usando a string de chave local gerada:

var autoEncryptionOpts = {
"keyVaultNamespace" : "encryption.__dataKeys",
"kmsProviders" : {
"local" : {
"key" : BinData(0, process.env["TEST_LOCAL_KEY"])
}
}
}

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 o método getClientEncryption() para recuperar o objeto de criptografia do cliente:

clientEncryption = encryptedClient.getClientEncryption()

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().

← KeyVault.rewrapManyDataKey()