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

KeyVault.addKeyAlternarName()

Nesta página

  • Comportamento
  • Exemplo
KeyVault.addKeyAlternateName(UUID, keyAltName)

Adiciona o keyAltName à array keyAltNames do diretório de dados com UUID.

keyAltName deve ser exclusivo entre todas as chaves no cofre de chaves. O método getKeyVault() cria automaticamente um índice único no campo keyAltNames com um filtro de índice parcial apenas para documentos onde keyAltNames existe.

addKeyAlternateName() tem a seguinte sintaxe:

keyVault = db.getMongo().getKeyVault()
keyVault.addKeyAlternateName(
UUID("<UUID string>"),
"keyAlternateName"
)
Retorna:Retorna a versão anterior do documento da chave de criptografia de dados.

Retorna null se nenhum diretório de dados tiver o UUID() especificado.

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 exemplo a seguir destina-se a uma avaliação rápida da criptografia em nível de campo do lado do cliente. Para obter exemplos específicos de uso de KeyVault.addKeyAlternateName() com cada provedor deKMS compatível, consulte Gerenciamento de chaves de criptografia.

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
)

Recupere o objeto KeyVault e use o método KeyVault.addKeyAlternateName() para adicionar um novo nome alternativo de chave à chave de criptografia de dados com UUID correspondente. O nome alternativo da chave especificada deve ser exclusivo:

keyVault = encryptedClient.getKeyVault()
keyVault.addKeyAlternateName(UUID("b4b41b33-5c97-412e-a02b-743498346079"),"Other-Data-Encryption-Key")

Se for bem-sucedido, addKeyAlternateName() retornará a versão anterior do documento da chave de criptografia de dados:

{
"_id" : UUID("b4b41b33-5c97-412e-a02b-743498346079"),
"keyMaterial" : BinData(0,"PXRsLOAYxhzTS/mFQAI8486da7BwZgqA91UI7NKz/T/AjB0uJZxTvhvmQQsKbCJYsWVS/cp5Rqy/FUX2zZwxJOJmI3rosPhzV0OI5y1cuXhAlLWlj03CnTcOSRzE/YIrsCjMB0/NyiZ7MRWUYzLAEQnE30d947XCiiHIb8a0kt2SD0so8vZvSuP2n0Vtz4NYqnzF0CkhZSWFa2e2yA=="),
"creationDate" : ISODate("2019-08-12T21:21:30.569Z"),
"updateDate" : ISODate("2019-08-12T21:21:30.569Z"),
"status" : 0,
"version" : NumberLong(0),
"masterKey" : {
"provider" : "local"
},
"keyAltNames" : [
]
}

Para visualizar a versão atual do diretório de dados, use especificando KeyVault.getKey() o _id documento da chave de criptografia retornado ou KeyVault.getKeyByAltName() especificando um dos keyAltNames.

Dica

Veja também:

Voltar

KeyVault.addKeyName