문서 메뉴
문서 홈
/
MongoDB 매뉴얼
/ / / / /

명시적 암호화

이 페이지의 내용

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

Queryable Encryption의 명시적 암호화 메커니즘을 사용하는 방법을 알아보세요.

명시적 암호화는 데이터베이스에서 수행하는 각 작업에서 문서의 필드를 암호화하고 해독하는 방법을 지정하는 메커니즘입니다.

명시적 암호화는 버전 6.0 이상을 사용하는 다음 MongoDB 제품에서 사용할 수 있습니다.

  • MongoDB Community 서버

  • MongoDB Enterprise Advanced

  • MongoDB 아틀라스

다음 섹션에서는 Queryable Encryption이 활성화된 애플리케이션에서 명시적 암호화를 사용하는 방법에 대한 개요를 제공합니다.

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

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

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

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

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

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

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

참고

코드 예제는 현재 사용할 수 없지만 곧 제공될 예정입니다.

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

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

  • 암호화할 값

  • 사용된 알고리즘은 Indexed 또는 Unindexed입니다.

  • 데이터 암호화 키의 ID

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

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

참고

쿼리 유형

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

쿼리 유형에 대해 자세히 알아보려면 쿼리 유형을 참조하세요 .

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

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

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

  • kmsProviders 객체 지정

  • 키 볼트 컬렉션 지정

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

참고

MongoDB Community 서버에서 자동 암호화 기능 사용 가능

자동 암호화에는 MongoDB Enterprise 또는 MongoDB Atlas가 필요하지만 자동 암호 해독은 버전 6.0 이상을 사용하는 다음 MongoDB 제품에서 사용할 수 있습니다.

  • MongoDB Community 서버

  • MongoDB Enterprise Advanced

  • MongoDB 아틀라스

컬렉션의 특정 필드에 대한 암호화를 적용하려면 암호화 필드를 지정 합니다.

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

특정 필드의 암호화를 적용하도록 구성된 MongoDB 인스턴스에서 명시적 암호화 메커니즘을 사용하여 Queryable Encryption을 수행하는 클라이언트는 MongoDB 인스턴스에 지정된 대로 해당 필드를 암호화해야 합니다.

서버 측 Queryable Encryption 적용을 설정하는 방법을 알아보려면 필드 암호화 및 쿼리 가능성을 참조하세요.

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

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

← 암호화된 컬렉션 관리