KeyVault.removeKeyAlternarName()
Nesta página
KeyVault.removeKeyAlternateName(UUID, keyAltName)
Remove o
keyAltName
especificado do diretório de dados com oUUID
especificado. O diretório de dados deve existir no cofre de chave associado à conexão do reconhecimento de data center.removeKeyAlternateName()
tem a seguinte sintaxe:keyVault = db.getMongo().getKeyVault() keyVault.removeKeyAlternateName( UUID("<UUID string>"), "keyAltName" ) Retorna: A chave de criptografia de dados antes de atualizar o keyAltName
.Retorna
null
se nenhum diretório de dados tiver oUUID()
especificado.
Comportamento
Requer a configuração da criptografia no nível do campo do lado do cliente na conexão do reconhecimento de data center
Os métodos de criptografia de nível de campo do lado do cliente mongo
exigem uma conexão de banco de dados de dados com a criptografia de nível de campo do lado do cliente ativada. Se a conexão atual do banco de dados 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 shellmongo
para estabelecer uma conexão com as opções de criptografia de nível de campo do lado do cliente necessárias. O métodoMongo()
suporta os seguintes fornecedores de serviço de gerenciamento de chaves (KMS) para gerenciamento da chave mestra do cliente (CMK):ou
Use as opções da linha
mongo
de comando do shell para estabelecer uma conexão com as opções exigidas. As opções de linha de comando são compatíveis apenas com o fornecedor KMS do Amazon Web Services para gerenciamento da chave mestra do cliente.
Exemplo
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.removeKeyAlternateName()
com cada provedor deKMS compatível, consulte Gerenciar o nome alternativo de uma chave de encriptação de dados.
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 )
Recupere o objeto keyVault
e use o método KeyVault.removeKeyAlternateName()
para remover o nome alternativo da chave especificada da chave de criptografia de dados com UUID
correspondente:
keyVault = encryptedClient.getKeyVault() keyVault.removeKeyAlternateName(UUID("b4b41b33-5c97-412e-a02b-743498346079"),"Other-Data-Encryption-Key")
Se for bem-sucedido, removeKeyAlternateName()
retornará a chave de criptografia de dados antes de atualizar o keyAltName
.
{ "_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" : [ "ssn-encryption-key" ] }