Menu Docs
Página inicial do Docs
/
Manual do MongoDB
/ / / / /

Aplicação de esquema do lado do servidor CSFLE

Nesta página

  • Exemplo
  • Saiba mais

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.

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 de UUID("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 de UUID("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",
},
},
},
},
},
});

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.

Voltar

Schemas

Nesta página