문서 메뉴

문서 홈애플리케이션 개발MongoDB 매뉴얼

자동 클라이언트 측 필드 레벨 암호화

이 페이지의 내용

  • 개요
  • 자동 클라이언트 측 필드 레벨 암호화 활성화
  • 서버측 필드 레벨 암호화 시행

참고

엔터프라이즈 기능

필드 레벨 암호화의 자동 기능은 MongoDB Enterprise 4.2 이상 및 MongoDB Atlas 4.2 이상 cluster에서만 사용할 수 있습니다.

공식 MongoDB 4.2+ 호환 드라이버, mongosh 및 MongoDB 4.2 이상 레거시 mongo 셸은 읽기 및 쓰기 작업에서 필드를 자동으로 암호화하는 기능을 지원합니다. 공식 4 의 전체 목록을 확인하세요.2+ 클라이언트 사이드 필드 수준 암호화를 지원하는 호환 드라이버는 드라이버 호환성 표를 참조하세요.

애플리케이션은 자동 암호화 구성 설정을 사용하여 데이터베이스 연결 객체(예: )를 만들어야 합니다. 구성MongoClient 설정에는 JSON Schema Draft 4 표준 구문 의 엄격한 하위 집합을 사용하는 자동 암호화 규칙이 포함되어야 합니다. 및 암호화별 스키마 키워드를 포함합니다. 애플리케이션은 읽기/쓰기 작업 구성과 관련된 코드를 수정할 필요가 없습니다. 자동 암호화 규칙 에 대한 전체 문서는 자동 암호화 규칙을 참조하세요.

공식 MongoDB 4.2+ 호환 드라이버, mongosh 및 MongoDB 4.2 이상 레거시 mongo 셸은 자동 암호화 공유 라이브러리를 사용하여 자동 암호화 규칙을 구문 분석하고 문서를 읽거나 쓸 때 암호화 규칙을 적용합니다.

  • 쓰기 작업의 경우 shell은 MongoDB database에 쓰기 전에 필드 값을 암호화합니다.

  • 읽기 작업의 경우 드라이버/셸은 읽기 작업을 실행 하기 전에 쿼리의 필드 값을 암호화합니다.

  • 암호화된 필드를 반환하는 읽기 작업의 경우 드라이버/shell이 해당 값을 보호하는 데 사용되는 키에 액세스할 수 있도록 구성된 경우에만 드라이버/shell이 자동으로 암호화된 값을 해독 합니다.

자동 암호화 공유 라이브러리는 mongocryptd 보다 선호되는 대안이며 새 프로세스를 생성할 필요가 없습니다. mongocryptd 는 계속 지원됩니다. 자동 암호화 공유 라이브러리에 대해 자세히 알아보려면 자동 암호화 공유 라이브러리를 참조하세요 .

각 공식 MongoDB 4.2+ 호환 드라이버는 자동 암호화 및 데이터 암호화 키 관리를 지원하기 위한 새로운 기능을 도입합니다. 자동 클라이언트 사이드 필드 레벨 암호화 구현에 대한 언어별 지침은 선호하는 드라이버의 설명서 를 참조하세요.

mongoshMongo() 메서드에 자동 클라이언트 사이드 필드 수준 암호화를 사용하여 데이터베이스 연결을 인스턴스화하는 옵션을 추가합니다. 전체 예제 는 자동 클라이언트 사이드 암호화가 활성화된 클러스터에 연결을 참조하세요.

자동 클라이언트 사이드 필드 수준 암호화를 사용하려면 클라이언트 호스트 컴퓨터의 자동 암호화 공유 라이브러리에 액세스해야 합니다. 공식 MongoDB 4.2+ 호환 드라이버에는 자동 암호화 공유 라이브러리를 관리하기 위한 추가 옵션이 있습니다. 일반적으로 4.2+ 호환 드라이버 및 mongosh 는 시스템 PATH 에 있는 경우 공유 라이브러리에 액세스할 수 있습니다.

자동 클라이언트 사이드 필드 수준 암호화를 활성화하려면 애플리케이션에서 데이터베이스 연결을 인스턴스화할 때 다음 구성 요소를 지정해야 합니다.

  • 데이터 암호화 키의 Key Vault 입니다. Key Vault는 원격 MongoDB cluster 또는 클라이언트 사이드 암호화 데이터를 저장하는 MongoDB cluster에 있을 수 있습니다.

  • 고객 마스터 키를 관리하는 데 사용되는 지원되는 KMS 제공자입니다. MongoDB는 지정된 고객 마스터 키를 사용하여 모든 데이터 암호화 키를 Key Vault에 저장 하기 전에 암호화하고 메타데이터만 암호화하지 않습니다.

    4.2+ 호환 드라이버, mongosh 및 MongoDB 4.2 이상 레거시 mongo 셸은 보호된 필드를 암호화 및 해독 하거나 새 데이터 암호화 키를 생성하기 위해 KMS에 액세스해야 합니다.

  • JSON schema 구문을 사용하는 필드별 자동 암호화 규칙.

MongoDB 4.2부터, 서버는 스키마 유효성 검사 를 사용하여 collection의 특정 필드에 암호화를 적용할 수 있도록 지원합니다. 자동 클라이언트 사이드 필드 수준 암호화 를 수행하는 클라이언트는 데이터베이스 연결 구성에 따라 특정 동작을 수행합니다.

  • 연결 ClientSideFieldLevelEncryptionOptions schemaMap 객체에 지정된 collection의 키가 포함되어 있는 경우 클라이언트는 해당 객체를 사용하여 자동 필드 수준 암호화를 수행하고 원격 스키마를 무시합니다. 최소한 로컬 규칙은 원격 스키마가 암호화가 필요하다고 표시하는 필드를 암호화 해야 합니다 .

  • 연결 ClientSideFieldLevelEncryptionOptions schemaMap object에 지정된 collection에 대한 키가 포함되어 있지 않으면 클라이언트는 collection에 대한 서버 측 원격 스키마를 다운로드하고 이를 사용하여 자동 필드 수준 암호화를 수행합니다.

    이 구성을 사용하려면 클라이언트가 자동 필드 수준 암호화와 관련하여 서버가 유효한 스키마를 가지고 있다고 신뢰해야 합니다. 클라이언트는 원격 스키마를 사용하여 자동 필드 수준 암호화를 수행하고 스키마에 지정된 다른 유효성 검사 규칙을 적용하지 않습니다.

서버 사이드 클라이언트 사이드 필드 수준 암호화 시행에 대한 전체 설명서는 필드 수준 암호화 스키마 시행을 참조하세요.

← Client-Side Field Level Encryption