Docs Menu
Docs Home
/
MongoDB 매뉴얼
/ / / / /

CSFLE 서버 측 스키마 적용

이 페이지의 내용

  • 예제
  • 자세히 알아보기

클라이언트 측 필드 레벨 암호화(CSFLE) 지원 클라이언트 애플리케이션에서는 스키마 유효성 검사 를 사용하여 MongoDB 인스턴스가 특정 필드의 암호화를 시행하도록 할 수 있습니다. 암호화가 필요한 필드를 지정하려면 유효성 검사 객체와 $jsonSchema 함께 자동 암호화 규칙 키워드 를 사용합니다. 서버는 지정된 필드가 Binary (BinData) 하위 유형 6 객체가 아닌 해당 컬렉션에 대한 모든 쓰기 작업을 거부합니다.

자동 암호화를 사용하도록 구성된 CSFLE 지원 클라이언트가 서버 측 스키마를 발견할 때 어떻게 작동하는지 알아보려면 서버 측 필드 레벨 암호화 시행을 참조하세요.

명시적 암호화를 사용하도록 구성된 CSFLE 지원 클라이언트가 서버 측 스키마를 발견할 때 어떻게 작동하는지 알아보려면 서버 측 필드 레벨 암호화 시행을 참조하세요.

employees 컬렉션이 있는 hr 데이터베이스를 가정해 보겠습니다. Documents in the employees collection have the following form:

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

collection을 사용하는 클라이언트 애플리케이션에 대해 다음 동작을 적용하려고 합니다.

  • age 필드를 암호화할 때 클라이언트는 다음 암호화 규칙을 따라야 합니다.

    • _id 이(가) UUID("e114f7ad-ad7a-4a68-81a7-ebcb9ea0953a") 인 데이터 암호화 키를 사용합니다.

    • 무작위 암호화 알고리즘을 사용합니다.

    • age 필드는 정수여야 합니다.

  • name 필드를 암호화할 때 클라이언트는 다음 암호화 규칙을 따라야 합니다.

    • _id 이(가) UUID("33408ee9-e499-43f9-89fe-5f8533870617") 인 데이터 암호화 키를 사용합니다.

    • 결정론적 암호화 알고리즘을 사용합니다.

    • name 필드는 문자열이어야 합니다.

다음 mongosh 코드는 collMod 명령을 사용하여 validator 를 포함하도록 hr.employees 컬렉션을 업데이트하여 앞의 동작을 시행합니다.

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

CSFLE가 지원하는 암호화 알고리즘에 대해 자세히 알아보려면 필드 및 암호화 유형을 참조하세요.

암호화 스키마 및 암호화 규칙에 대해 자세히 알아보려면 CSFLE 암호화 스키마를 참조하세요.

돌아가기

Schemas

이 페이지의 내용