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

KeyVault.getKeyByAltName()

Nesta página

  • Comportamento
  • Exemplo
KeyVault.getKeyByAltName(keyAltName)

Obtém todas as chaves de criptografia de dados com o keyAltName especificado.

getKeyByAltName() tem a seguinte sintaxe:

keyVault = db.getMongo().getKeyVault()
keyVault.getKeyByAltName("keyAltName")
Retorna:Documento que representa uma chave de encriptação de dados correspondente.

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() do mongosh para estabelecer uma conexão com as opções necessárias de criptografia de nível de campo no lado do cliente. O método Mongo() é 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.

O exemplo a seguir usa um KMS managed localmente para a configuração de criptografia no nível do campo do 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
)

Recupere o objeto KeyVault e use o método KeyVault.getKeyByAltName() para recuperar a chave de encriptação de dados cuja array keyAltNames inclui o nome alternativo da chave especificado:

keyVault.getKeyByAltName("data-encryption-key")

getKeyByAltName() retorna a seguinte 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" : [
"data-encryption-key"
]
}

Voltar

KeyVault.getKeys