Menu Docs

Página inicial do DocsDesenvolver aplicaçõesManual do MongoDB

getKeyVault()

Nesta página

  • Comportamento
  • Exemplo

Novidades na versão 4.2.

getKeyVault()

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

getKeyVault() tem a seguinte sintaxe:

keyVault = db.getMongo().getKeyVault();
Retorna:O objeto KeyVault para a conexão de banco de dados atual.

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 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 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 do nível do campo do 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.

1

Inicie o cliente mongosh .

mongosh --nodb
2

Para configurar a criptografia no nível do campo do lado do cliente para uma chave managed localmente, gere uma cadeia de 96 bytes codificada em base64 sem quebras de linha.

const TEST_LOCAL_KEY = require("crypto").randomBytes(96).toString("base64")
3

Crie as opções 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, TEST_LOCAL_KEY)
}
}
}
4

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 getKeyVault() para recuperar o objeto do cofre de chave:

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

← Métodos de criptografia no nível de campo do lado do cliente