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

명시적 암호화

이 페이지의 내용

  • 개요
  • 명시적 암호화 사용
  • ClientEncryption 인스턴스 만들기
  • 읽기 및 쓰기 작업에서 필드 암호화
  • 자동 암호 해독
  • 서버측 필드 레벨 암호화 시행
  • 자세히 알아보기

명시적 암호화는 MongoDB 드라이버에 대한 컬렉션을 구성하고 코드를 작성할 때 복잡성이 증가하는 대신 보안에 대한 세분화된 제어를 제공합니다. 명시적 암호화를 사용하면 데이터베이스에서 수행하는 각 작업에 대해 문서의 필드를 암호화하는 방법을 지정하고 이 로직을 애플리케이션 전체에 포함할 수 있습니다.

명시적 암호화는 다음 MongoDB 제품에서 사용할 수 있습니다.

  • MongoDB Community 서버

  • MongoDB Enterprise Advanced

  • MongoDB Atlas

ClientEncryption 드라이버와 mongosh 에서 사용되는 추상화로, 명시적 암호화 와 관련된 키 볼트 컬렉션 및 KMS 작업을 캡슐화합니다.

ClientEncryption 인스턴스를 만들려면 다음을 지정합니다.

  • 고객 마스터 키를 호스팅하는 KMS 제공자에 대한 액세스 권한으로 구성된 kmsProviders 객체

  • 키 볼트 컬렉션의 네임스페이스

  • MongoDB Community 서버를 사용하는 경우 bypassQueryAnalysis 옵션을 True로 설정합니다.

  • 키 볼트 컬렉션에 액세스할 수 있는 MongoClient 인스턴스

더 많은 ClientEncryption 옵션은 Queryable Encryption 을 위한 MongoClient 옵션을 참조하세요.

읽기 및 쓰기 작업을 수행하기 전에 애플리케이션이 필드를 암호화하도록 애플리케이션 전체에서 읽기 및 쓰기 작업을 업데이트해야 합니다.

필드를 암호화하려면 ClientEncryption 인스턴스의 encrypt 메서드를 사용합니다. 다음을 지정합니다:

  • 암호화할 값

  • 사용된 알고리즘 : Indexed, Unindexed 또는 Range

  • 데이터 암호화 키의 ID

  • 경합 요인 ( Indexed 또는 Range 알고리즘 을 사용하는 경우)

  • Indexed 또는 Range 알고리즘 을 사용하여 읽기 작업을 수행하는 경우 필드 에 정의된 쿼리 유형을 설정하다 합니다.

  • range 옵션 최소, 최대 ( Range 알고리즘 을 사용하는 경우)

참고

쿼리 유형

쿼리 유형은 읽기 작업에만 적용됩니다.

쿼리 유형에 대해 자세히 알아보려면 지원되는 쿼리 유형 및 동작을 참조하세요.

필드 에 queryType 를 지정하는 경우 Indexed 또는 Range 알고리즘 을 사용합니다.

Indexed 동등성 쿼리를 지원합니다. Range 은 범위 쿼리를 지원합니다. IndexedRange 필드에는 서버 의 인덱스 가 필요합니다. 인덱스 는db.createCollection()encryptedFields 옵션을 지정하여 생성됩니다

참고

MongoDB 8.0 부터 rangePreview Queryable Encryption 알고리즘 은 더 이상 사용되지 않으며 제거되었습니다. 대신 Range 알고리즘 을 사용합니다.

Queryable Encryption 컬렉션 에서 rangePreview 사용하는 경우 MongoDB 8.0 으로 업그레이드 하기 전에 컬렉션 을 삭제해야 합니다.

필드를 자동으로 해독하려면 MongoClient 인스턴스를 다음과 같이 구성합니다.

  • kmsProviders 객체 지정

  • 키 볼트 컬렉션 지정

  • MongoDB Community 서버를 사용하는 경우 bypassQueryAnalysis 옵션을 True로 설정합니다.

참고

MongoDB Community 서버의 자동 암호 해독

자동 암호 해독은 MongoDB Community 서버에서 사용할 수 있습니다. 자동 암호화에는 MongoDB Enterprise 또는 MongoDB Atlas가 필요합니다.

컬렉션 의 특정 필드에 대한 암호화 를 시행하다 단계 입니다.

IndexedRange 필드에는 서버 의 인덱스 가 필요합니다. 인덱스 는db.createCollection()encryptedFields 옵션을 지정하여 생성됩니다

MongoDB 인스턴스 가 특정 필드의 암호화 를 시행하는 경우, 명시적 암호화 를 사용하여 Queryable Encryption 을 수행하는 모든 클라이언트 는 지정된 대로 해당 필드를 암호화해야 합니다. 서버 측 Queryable Encryption 적용을 설정하다 하는 방법을 학습 보려면 암호화된 필드 및 활성화된 쿼리를 참조하세요.

키 볼트 컬렉션, 데이터 암호화 키 및 고객 마스터 키에 대해 자세히 알아보려면 암호화 키 및 키 볼트를 참조하세요.

KMS 제공자 및 kmsProviders 객체에 대해 자세히 알아보려면 KMS 제공자를 참조하세요.

돌아가기

컬렉션