Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.
Docs Menu

Aplicación de esquemas del lado del servidor de CSFLE

En las aplicaciones cliente con cifrado a nivel de campo del lado del cliente (CSFLE) habilitado, puede usar la validación de esquema para que su instancia de MongoDB aplique el cifrado de campos específicos. Para especificar qué campos requieren cifrado, usa las palabras clave de reglas de cifrado automático con el objeto de validación $jsonSchema. El servidor rechaza cualquier operación de escritura en esa colección donde los campos especificados no sean objetos Binary (BinData) subtipos 6.

Para aprender cómo se comporta un cliente habilitado para CSFLE configurado para usar cifrado automático cuando se encuentra con un esquema del lado del servidor, consulta Aplicación de cifrado a nivel de campo del lado del servidor.

Para aprender cómo se comporta un cliente habilitado para CSFLE configurado para usar cifrado explícito cuando encuentra un esquema del lado del servidor, consulta Aplicación del Cifrado a Nivel de Campo del lado del Servidor.

Considera una base de datos hr con una colección employees. Los documentos de la colección employees tienen la siguiente forma:

{
"name": "Jane Doe",
"age": 51
}

Quieres aplicar el siguiente comportamiento para las aplicaciones clientes que utilizan tu colección:

  • Al cifrar el campo age, los clientes deben seguir estas reglas de cifrado:

    • Use la clave de cifrado de datos con un _id de UUID("e114f7ad-ad7a-4a68-81a7-ebcb9ea0953a").

    • Usa el algoritmo de cifrado aleatorio.

    • El campo age debe ser un número entero.

  • Al cifrar el campo name, los clientes deben seguir estas reglas de cifrado:

    • Use la clave de cifrado de datos con un _id de UUID("33408ee9-e499-43f9-89fe-5f8533870617").

    • Utiliza el algoritmo de cifrado determinista.

    • El campo name debe ser una string.

El siguiente código mongosh utiliza el comando collMod para actualizar la colección hr.employees a fin de incluir un validator que haga cumplir el comportamiento precedente:

db.getSiblingDB("hr").runCommand({
collMod: "employees",
validator: {
$jsonSchema: {
bsonType: "object",
properties: {
age: {
encrypt: {
keyId: [UUID("e114f7ad-ad7a-4a68-81a7-ebcb9ea0953a")],
algorithm: "AEAD_AES_256_CBC_HMAC_SHA_512-Random",
bsonType: "int",
},
},
name: {
encrypt: {
keyId: [UUID("33408ee9-e499-43f9-89fe-5f8533870617")],
algorithm: "AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic",
bsonType: "string",
},
},
},
},
},
});

Para obtener más información sobre los algoritmos de cifrado que admite CSFLE, consulta Campos y Tipos de Cifrado.

Para aprender más sobre los esquemas de cifrado y las reglas de cifrado, consulta Esquemas de cifrado CSFLE.