Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
Click here >
Docs Menu
Docs Home
/ /
/ / /

Aplicación de esquemas del lado del servidor de CSFLE

En aplicaciones cliente habilitadas para el cifrado a nivel de campo del lado del cliente (CSFLE), puedes usar validación de esquemas para que tu instancia de MongoDB haga cumplir el cifrado de campos específicos. Para especificar los campos que requieren cifrado, utilice el palabras clave de la regla de cifrado automático con el $jsonSchema objeto de validación. El servidor rechaza cualquier operación de escritura en esa colección donde los campos especificados no sean Binary (BinData) objetos de subtipo 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.

Volver

Esquemas de cifrado de CSFLE

En esta página