Docs Menu
Docs Home
/ /

KeyVault.addKeyAlternateName() (método mongosh)

KeyVault.addKeyAlternateName(UUID, keyAltName)

Agrega el keyAltName al arreglo keyAltNames de la llave de cifrado de datos con UUID.

keyAltName debe ser única entre todas las claves en el almacén de claves. getKeyVault() El método crea automáticamente un índice único en el keyAltNames campo con un filtro de índice parcial solo para los documentos donde keyAltNames existe.

Devuelve:Devuelve la versión anterior del documento de clave de cifrado de datos.

Devuelve null si ninguna clave de cifrado de datos tiene el UUID() ​​especificado.

Este comando está disponible en implementaciones alojadas en los siguientes entornos:

  • MongoDB Atlas: El servicio totalmente gestionado para implementaciones de MongoDB en la nube

  • MongoDB Enterprise: La versión basada en suscripción y autogestionada de MongoDB

  • MongoDB Community: La versión de MongoDB con código fuente disponible, de uso gratuito y autogestionada.

addKeyAlternateName() tiene la siguiente sintaxis:

keyVault = db.getMongo().getKeyVault()
keyVault.addKeyAlternateName(
UUID("<UUID string>"),
"keyAlternateName"
)

Los métodos de cifrado de campo del lado del cliente requieren una conexión a la base de datos con el cifrado de campo del lado del cliente habilitado. Si la conexión actual a la base de datos no se inició con el cifrado de campo del lado del cliente habilitado, puede ocurrir lo mongosh siguiente:

El siguiente ejemplo está diseñado para la evaluación rápida del cifrado a nivel de campo del lado del cliente. Para obtener ejemplos específicos del uso de con cada campo KeyVault.addKeyAlternateName() compatible Proveedor deKMS, consulte Administración de claves de cifrado.

1

Inicie el cliente mongosh.

mongosh --nodb
2

Para configurar el cifrado a nivel de campo del lado del cliente para una clave administrada localmente, genere una cadena de 96bytes codificada en base64sin saltos de línea.

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

Cree las opciones de cifrado a nivel de campo del lado del cliente utilizando la cadena de clave local generada:

var autoEncryptionOpts = {
"keyVaultNamespace" : "encryption.__dataKeys",
"kmsProviders" : {
"local" : {
"key" : BinData(0, TEST_LOCAL_KEY)
}
}
}
4

Utilice el constructor con las opciones de cifrado de campo del lado del cliente configuradas para crear una conexión a la base de datos. Reemplace Mongo() el mongodb://myMongo.example.net URI por el URI de la cadena de conexión del clúster de destino.

encryptedClient = Mongo(
"mongodb://myMongo.example.net:27017/?replSetName=myMongo",
autoEncryptionOpts
)

Recupere el KeyVault objeto y utilice el método para añadir un nuevo nombre de clave alternativo a la clave de cifrado de datos que KeyVault.addKeyAlternateName() coincida UUID con. El nombre de clave alternativo especificado debe ser único:

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

Si tiene éxito, devuelve la versión anterior del documento de clave de cifrado deaddKeyAlternateName() datos:

{
"_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" : Long(0),
"masterKey" : {
"provider" : "local"
},
"keyAltNames" : [
]
}

Para ver la versión actual del documento de clave de cifrado de datos, utiliza KeyVault.getKey() especificando el _id del documento devuelto o KeyVault.getKeyByAltName() especificando uno de los keyAltNames.

Tip

Volver

KeyVault.addKeyName

En esta página