Docs Menu
Docs Home
/ /
/ / /

Aplicación de esquemas del lado del servidor de CSFLE

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

Para saber cómo se comporta un cliente habilitado para CSFLE configurado para usar cifrado automático cuando encuentra un esquema del lado del servidor, consulte 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.

Considere una base de datos hr con una colección employees. Los documentos de la colección employees tienen el siguiente formato:

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

Desea aplicar el siguiente comportamiento para las aplicaciones cliente que utilizan su 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").

    • Utilice 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").

    • Utilice el algoritmo de cifrado determinista.

    • El campo name debe ser una cadena.

El siguiente códigomongoshusa el comandocollModpara actualizar la colección hr.employees para incluir un validator para aplicar el comportamiento anterior:

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, consulte Campos y tipos de cifrado.

Para obtener más información sobre los esquemas de cifrado y las reglas de cifrado, consulte Esquemas de cifrado CSFLE.

Volver

Schemas

En esta página