Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Menu Docs
Página inicial do Docs
/
Manual do MongoDB
/ / /

getKeyVault()

getKeyVault()

Retorna o objeto KeyVault para a conexão de banco de dados de dados atual. O objeto KeyVault oferece suporte ao gerenciamento de chave de criptografia de dados para criptografia de nível de campo no lado do cliente.

Retorna:O objeto KeyVault para a conexão de banco de dados atual.

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

getKeyVault() tem a seguinte sintaxe:

keyVault = db.getMongo().getKeyVault();

Use o objeto KeyVault para acessar os seguintes métodos de gerenciamento do diretório de dados:

O exemplo a seguir usa uma chave managed localmente para a configuração da criptografia no nível do campo no lado do cliente.

Os métodos de criptografia de nível de campo do lado do cliente mongo exigem uma conexão de reconhecimento de data center com a criptografia de nível de campo do lado do cliente habilitada. Se o reconhecimento de data center atual não foi iniciado com a criptografia de nível de campo do lado do cliente habilitada:

O método getKeyVault() cria automaticamente um índice exclusivo no campo keyAltNames com um filtro de índice parcial apenas para documentos onde keyAltNames existe. getKeyVault() cria esse índice na key vault collection. Isso impede que duas chaves de encriptação de dados no mesmo cofre de chaves tenham o mesmo nome alternativo de chave e, portanto, evita a ambiguidade em torno de qual chave de encriptação de dados é apropriada para criptografia/descriptografia.

Aviso

Não elimine o índice único criado por getKeyVault(). As operações de criptografia no nível do campo no lado do cliente dependem da singularidade imposta pelo servidor de keyAltNames. Remover o índice pode levar a um comportamento inesperado ou imprevisível.

O exemplo a seguir usa uma chave managed localmente para a configuração da criptografia no nível do campo no lado do cliente.

A configuração da criptografia em nível de campo do lado do cliente para uma chave managed localmente requer a especificação de uma cadeia de 96 bytes codificada em base64 sem quebras de linha. A operação a seguir gera uma chave que atende aos requisitos declarados e a carrega no shell mongo :

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

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

var ClientSideFieldLevelEncryptionOptions = {
"keyVaultNamespace" : "encryption.__dataKeys",
"kmsProviders" : {
"local" : {
"key" : BinData(0, TEST_LOCAL_KEY)
}
}
}

Use o construtor Mongo() para criar uma conexão de reconhecimento de data center com as opções de criptografia no nível do campo do lado do cliente. 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",
ClientSideFieldLevelEncryptionOptions
)

Use o método getKeyVault() para recuperar o objeto Key Vault :

keyVault = encryptedClient.getKeyVault()

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

Voltar

getClientEncryption

Nesta página