Aplicação de esquema do lado do servidor CSFLE
Nesta página
Em aplicativos de cliente habilitados para criptografia no nível do campo (CSFLE) do lado do cliente, você pode usar avalidação de esquema para que sua instância do MongoDB imponha a criptografia de campos específicos. Para especificar quais campos exigem criptografia, use as palavras- chave da regra de criptografia automática com o objeto de validação $jsonSchema
. O servidor rejeita quaisquer operações de gravação para essa coleção onde os campos especificados não são objetos do subtipo { Binary (BinData)
6 .
Para saber como um cliente habilitado para CSFLE configurado para usar criptografia automática se comporta quando encontra um esquema do lado do servidor, consulte Aplicação de criptografia em nível de campo no lado do servidor.
Para saber como um cliente habilitado para CSFLE configurado para usar criptografia explícita se comporta quando encontra um esquema do lado do servidor, consulte Aplicação de criptografia em nível de campo no lado do servidor.
Exemplo
Considere um reconhecimento de data center hr
com uma collection employees
. Os documentos na collection employees
têm o seguinte formato:
{ "name": "Jane Doe", "age": 51 }
Você deseja impor o seguinte comportamento para aplicativos clientes usando sua coleção:
Ao criptografar o campo
age
, os clientes devem seguir estas regras de criptografia:Use a chave de criptografia com um
_id
deUUID("e114f7ad-ad7a-4a68-81a7-ebcb9ea0953a")
.Use o algoritmo de criptografia aleatório .
O campo
age
deve ser um número inteiro.
Ao criptografar o campo
name
, os clientes devem seguir estas regras de criptografia:Use a chave de criptografia com um
_id
deUUID("33408ee9-e499-43f9-89fe-5f8533870617")
.Use o algoritmo de criptografia determinístico .
O campo
name
deve ser uma string.
O seguinte código mongosh
utiliza o comando collMod
para atualizar a coleção hr.employees
para incluir um validator
para impor o comportamento 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", }, }, }, }, }, });
Saiba mais
Para saber mais sobre os algoritmos de criptografia compatíveis com o CSFLE, consulte Campos e tipos de criptografia.
Para saber mais sobre esquemas de criptografia e regras de criptografia, consulte Esquemas de criptografia CSFLE.