다이어그램
다음 다이어그램은 MongoDB 드라이버 또는 mongosh 와 클라이언트 측 필드 레벨 암호화(CSFLE)의 각 구성 요소 간의 관계를 보여줍니다.
구성 요소
다음 섹션에서는 이전 다이어그램의 개별 구성 요소에 대해 설명합니다.
libmongocrypt
libmongocrypt 공식 MongoDB 드라이버 및 에서 클라이언트 사이드 mongosh 필드 레벨 암호화를 강화하는 데 사용되는 Apache 라이선스 오픈 소스 코어 암호화 라이브러리입니다. 일부 드라이버는 라이브러리를 설치하거나 연결하기 위해 특정 통합 단계가 필요할 수 있습니다.
libmongocrypt 설치 단계를 보려면 libmongocrypt 참조 페이지를 참조하세요.
자동 암호화 공유 라이브러리
자동 암호화 공유 라이브러리는 클라이언트 애플리케이션이 자동 암호화를 수행할 수 있도록 하는 동적 라이브러리 입니다.
자동 암호화 공유 라이브러리는 mongocryptd보다 선호되는 대안이며 자동 암호화를 수행하기 위해 다른 프로세스를 생성할 필요가 없습니다.
참고
MongoDB 9.0부터 mongocryptd는 더 이상 사용되지 않습니다. 대신 자동 암호화 공유 라이브러리를 사용합니다.
자동 암호화에 대해 자세히 학습하려면 CSFLE 기능을 참조하세요.
mongocryptd
중요
mongocryptd는 더 이상 사용되지 않습니다(Deprecated)
MongoDB 9.0부터 mongocryptd는 더 이상 사용되지 않습니다. 대신 자동 암호화 공유 라이브러리를 사용합니다.
mongocryptd MongoDB Enterprise MongoDB엔터프라이즈 Server와 함께 설치됩니다.
CSFLE 지원 MongoDB 클라이언트를 생성하면 기본적으로 mongocryptd 프로세스가 자동으로 시작됩니다.
mongocryptd 프로세스는 다음과 같습니다:
지정된 자동 암호화 규칙을 사용하여 읽기 및 쓰기 작업에서 암호화할 필드를 표시합니다.
암호화된 필드에서 지원하지 않는 작업의 실행을 방지합니다.
데이터베이스 연결에 지정된 암호화 스키마를 분석합니다. 자동 암호화 규칙은 JSON schema 구문의 엄격한 하위 집합을 사용합니다. 규칙에 유효하지 않은 자동 암호화 구문이나
schema validation구문이 포함된 경우mongocryptd는 오류를 반환합니다
mongocryptd 이전 기능만 수행하며 다음과 같은 작업은 수행하지 않습니다:
mongocryptd암호화나 복호화를 수행하지 않습니다.mongocryptd어떠한 암호화 키 자료에도 접근하지 않습니다.mongocryptd네트워크를 통해 대기하지 않습니다.
필드 암호화 및 자동 암호 해독을 수행하기 위해 드라이버는 Apache 라이선스가 부여된 libmongocrypt 라이브러리를 사용합니다.
공식 MongoDB 드라이버를 사용하려면 클라이언트 호스팅하다 시스템의 mongocryptd 프로세스 에 액세스 해야 합니다. 이러한 클라이언트는 기본값 PATH 시스템에서 mongocryptd 프로세스 를 검색 합니다.
키 볼트 컬렉션
키 볼트 컬렉션은 애플리케이션 데이터를 암호화하는 데 사용되는 모든 데이터 암호화 키를 저장하는 표준 MongoDB 컬렉션입니다. 데이터 암호화 키는 키 볼트 컬렉션에 저장되기 전에 고객 마스터 키(CMK)를 사용하여 자체적으로 암호화됩니다. 암호화된 애플리케이션 데이터를 저장하는 클러스터가 아닌 다른 MongoDB cluster 에서 키 볼트 컬렉션을 호스팅할 수 있습니다.
키 볼트 컬렉션 에 학습 보려면 암호화 키 및 키 볼트를 참조하세요.
키 관리 시스템
키 관리 시스템(KMS)은 데이터 암호화 키를 암호화하는 데 사용되는 고객 마스터 키(CMK)를 저장합니다.
MongoDB가 지원하는 모든 KMS 제공자 목록을 보려면 KMS 제공자를 참조하세요.
MongoDB cluster
암호화됨 데이터를 저장하는 MongoDB cluster 는 클라이언트 사이드 필드 레벨 암호화 를 시행하다 할 수도 있습니다. 서버 측 스키마 적용에 대한 자세한 내용은 CSFLE 서버측 스키마 적용을 참조하세요.