자동 클라이언트 사이드 필드 레벨 암호화
참고
엔터프라이즈 기능
필드 레벨 암호화의 자동 기능은 MongoDB Enterprise 4.2 이상 및 MongoDB Atlas 4.2 이상 cluster에서만 사용할 수 있습니다.
개요
공식 MongoDB 4.2+ 호환 드라이버, mongosh
및 MongoDB 4.2 이상 레거시 mongo
shell 은 읽기 및 쓰기 (write) 작업에서 필드를 자동으로 암호화하는 기능을 지원 합니다. 공식 4 의 전체 목록을 확인하세요.2+ 클라이언트 사이드 필드 수준 암호화 를 지원 하는 호환 드라이버에 대한 자세한 내용은 드라이버 호환성 표를 참조하세요.
애플리케이션은 데이터베이스 연결 객체를 생성해야 합니다(예: MongoClient
)를 자동 암호화 구성 설정으로 변경합니다. JSON schema 4 구성 설정에는 초안 표준 구문 의 엄격한 하위 집합을 사용하는 자동 암호화 규칙이 포함되어야 합니다. 및 암호화별 스키마 키워드를 포함합니다. 애플리케이션은 읽기/쓰기 작업 구성과 관련된 코드를 수정할 필요가 없습니다. 자동 암호화 규칙 에 대한 전체 문서는 자동 암호화 규칙을 참조하세요.
공식 MongoDB 4.2+ 호환 드라이버인 mongosh
및 MongoDB 4.2 이상 레거시 mongo
shell 은 자동 암호화 공유 라이브러리를 사용하여 자동 암호화 규칙을 구문 분석하고 문서를 읽거나 쓸 때 암호화 규칙을 적용합니다.
쓰기 작업의 경우 드라이버/shell MongoDB database은 에 쓰기 전에 필드 값을 암호화합니다.
읽기 작업의 경우 운전자 /shell 은 읽기 작업을 실행 하기 전에 쿼리 의 필드 값을 암호화합니다.
암호화된 필드를 반환하는 읽기 작업의 경우shell 드라이버/ 이 암호화된 값을 보호하는 데shell 사용되는 키에 대한 액세스 권한으로 구성된 경우에만 드라이버/ 이 자동으로 암호화된 값을 해독 합니다.
자동 암호화 공유 라이브러리는 mongocryptd 보다 선호되는 대안이며 새 프로세스를 생성할 필요가 없습니다. mongocryptd
는 계속 지원됩니다. 자동 암호화 공유 라이브러리에 대해 자세히 알아보려면 자동 암호화 공유 라이브러리를 참조하세요 .
자동 클라이언트 측 필드 레벨 암호화 활성화
각 공식 MongoDB 4.2+ 호환 운전자 는 자동 암호화 및 데이터 암호화 키 관리 를 지원하기 위한 새로운 기능을 도입합니다. 자동 클라이언트 사이드 필드 수준 암호화 구현에 대한 언어별 지침은 선호하는 드라이버의 설명서 를 참조하세요.
mongosh
는 Mongo()
메서드에 자동 클라이언트 사이드 필드 수준 암호화를 사용하여 데이터베이스 연결을 인스턴스화하는 옵션을 추가합니다. 전체 예제 는 자동 클라이언트 사이드 암호화가 활성화된 클러스터에 연결을 참조하세요.
자동 클라이언트 사이드 필드 수준 암호화를 사용하려면 클라이언트 호스트 컴퓨터의 자동 암호화 공유 라이브러리에 액세스해야 합니다. 공식 MongoDB 4.2+ 호환 드라이버에는 자동 암호화 공유 라이브러리를 관리하기 위한 추가 옵션이 있습니다. 일반적으로 4.2+ 호환 드라이버 및 mongosh
는 시스템 PATH
에 있는 경우 공유 라이브러리에 액세스할 수 있습니다.
자동 클라이언트 사이드 필드 수준 암호화를 사용하려면 애플리케이션에서 데이터베이스 연결을 인스턴스화할 때 다음 구성 요소를 지정해야 합니다.
데이터 암호화 키의 Key Vault 입니다. 키 볼트는 원격 MongoDB cluster 또는 클라이언트 사이드 암호화됨 데이터를 저장하는 MongoDB cluster 에 있을 수 있습니다.
고객 마스터 키(CMK)를 관리하는 데 사용되는 지원되는 KMS(KMS) 제공자입니다. MongoDB는 지정된 CMK를 사용하여 모든 데이터 암호화 키를 키 볼트에 저장 하기 전에 암호화하고 메타데이터만 암호화하지 않은 상태로 남깁니다.
4.2+ 호환 드라이버,
mongosh
및 MongoDB 4.2 이상mongo
shell 레거시 KMS 은 보호된 필드를 암호화 및 해독 하거나 새 데이터 암호화 키를 생성하기 위해 에 액세스 해야 합니다.
서버측 필드 레벨 암호화 시행
MongoDB 4.2 부터 서버 는 스키마 유효성 검사 를 사용하여 컬렉션 의 특정 필드에 암호화 를 시행하다 수 있도록 지원합니다. 자동 클라이언트 사이드 필드 수준 암호화 를 수행하는 클라이언트는 데이터베이스 연결 구성에 따라 특정 동작을 수행합니다.
연결
ClientSideFieldLevelEncryptionOptions
schemaMap
객체에 지정된 컬렉션의 키가 포함되어 있는 경우 클라이언트는 해당 객체를 사용하여 자동 필드 수준 암호화를 수행하고 원격 스키마를 무시합니다. 최소한 로컬 규칙은 원격 스키마가 암호화가 필요하다고 표시하는 필드를 암호화 해야 합니다 .연결
ClientSideFieldLevelEncryptionOptions
schemaMap
객체 에 지정된 컬렉션 에 대한 키가 포함되어 있지 않으면 클라이언트 는 컬렉션 에 대한 서버 측 원격 스키마 를 다운로드하고 이를 사용하여 자동 필드 수준 암호화 를 수행합니다.이 구성을 사용하려면 클라이언트가 자동 필드 수준 암호화와 관련하여 서버가 유효한 스키마를 가지고 있다고 신뢰해야 합니다. 클라이언트는 원격 스키마를 사용하여 자동 필드 수준 암호화를 수행하기만 하며 스키마에 지정된 다른 유효성 검사 규칙을 적용하지 않습니다.
서버 사이드 클라이언트 사이드 필드 레벨 암호화 시행에 대한 전체 문서는 필드 레벨 암호화 스키마 시행을 참조하세요.