getKeyVault()
Nesta página
getKeyVault()
Retorna o objeto
KeyVault
para a conexão de banco de dados de dados atual. O objetoKeyVault
oferece suporte ao gerenciamento de chave de criptografia de dados para criptografia de nível de campo do lado do cliente.Retorna: O objeto KeyVault
para 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
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:
Comportamento
Requer a configuração da criptografia no nível do campo do lado do cliente na conexão do reconhecimento de data center
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:
Use o construtor
Mongo()
domongosh
para estabelecer uma conexão com as opções necessárias de criptografia de nível de campo no lado do cliente. O métodoMongo()
é compatível com os seguintes provedores de serviço de gerenciamento de chaves (KMS) para o gerenciamento da chave mestra do cliente (CMK):ou
Utilize as
mongosh
opções da linha de comando para estabelecer uma conexão com as opções exigidas. As opções de linha de comando são compatíveis apenas com o provedor Amazon Web Services KMS para gerenciamento da chave mestra do cliente.
Índice parcial único no Key Vault
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.
Exemplo
O exemplo a seguir usa uma chave managed localmente para a configuração da criptografia no nível do campo no 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 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()
.