명시적 암호화
개요
Queryable Encryption의 명시적 암호화 메커니즘을 사용하는 방법을 알아보세요.
명시적 암호화는 데이터베이스에서 수행하는 각 작업에서 문서의 필드를 암호화하고 해독하는 방법을 지정하는 메커니즘입니다.
명시적 암호화는 버전 6.0 이상을 사용하는 다음 MongoDB 제품에서 사용할 수 있습니다.
MongoDB Community 서버
MongoDB Enterprise Advanced
MongoDB Atlas
명시적 암호화 사용
다음 섹션에서는 Queryable Encryption이 활성화된 애플리케이션에서 명시적 암호화를 사용하는 방법에 대한 개요를 제공합니다.
ClientEncryption
인스턴스 만들기
ClientEncryption
드라이버 및 mongosh
에서 사용되는 추상화로, 명시적 암호화와 관련된 키 볼트 컬렉션 및 KMS 작업을 캡슐화합니다.
ClientEncryption
인스턴스를 만들려면 다음을 지정합니다.
고객 마스터 키를 호스팅하는 KMS 에 대한 액세스 권한으로 구성된
kmsProviders
객체키 볼트 컬렉션의 네임스페이스
MongoDB Community 서버를 사용하는 경우
bypassQueryAnalysis
옵션을True
로 설정합니다.키 볼트 컬렉션에 액세스할 수 있는
MongoClient
인스턴스
더 많은 ClientEncryption
옵션은 Queryable Encryption 을 위한 MongoClient 옵션을 참조하세요.
참고
코드 예제는 현재 사용할 수 없지만 곧 제공될 예정입니다.
읽기 및 쓰기 작업에서 필드 암호화
읽기 및 쓰기 작업을 수행하기 전에 애플리케이션이 필드를 암호화하도록 애플리케이션 전체에서 읽기 및 쓰기 작업을 업데이트해야 합니다.
필드를 암호화하려면 ClientEncryption
인스턴스의 encrypt
메서드를 사용합니다. 다음을 지정합니다:
암호화할 값
사용된 알고리즘은
Indexed
또는Unindexed
입니다.데이터 암호화 키의 ID
경합 요인(
Indexed
알고리즘을 사용하는 경우)읽기 작업을 수행하는 경우 필드에 정의된 쿼리 유형을 설정합니다(
Indexed
알고리즘을 사용하는 경우).
알고리즘 선택
필드에 queryType
를 지정하는 경우 Indexed
알고리즘을 사용합니다.
Indexed
동일성 쿼리를 지원합니다. Indexed
필드에는 서버의 인덱스가 필요합니다. 인덱스는db.createCollection()
에 encryptedFields
옵션을 지정하여 생성됩니다
자동 암호 해독
필드를 자동으로 해독하려면 다음과 같이 MongoClient
인스턴스를 구성해야 합니다.
kmsProviders
객체 지정키 볼트 컬렉션 지정
MongoDB Community 서버를 사용하는 경우
bypassQueryAnalysis
옵션을True
로 설정합니다.
참고
MongoDB Community 서버에서 자동 암호화 기능 사용 가능
자동 암호화에는 MongoDB Enterprise 또는 MongoDB Atlas가 필요하지만 자동 암호 해독은 버전 6.0 이상을 사용하는 다음 MongoDB 제품에서 사용할 수 있습니다.
MongoDB Community 서버
MongoDB Enterprise Advanced
MongoDB Atlas
서버측 필드 레벨 암호화 시행
컬렉션의 특정 필드에 대한 암호화를 적용하려면 암호화 필드를 지정 합니다.
Indexed
필드에는 서버의 인덱스가 필요합니다. 인덱스는 db.createCollection()
에 encryptedFields
옵션을 지정하여 생성됩니다.
특정 필드의 암호화를 적용하도록 구성된 MongoDB 인스턴스에서 명시적 암호화 메커니즘을 사용하여 Queryable Encryption을 수행하는 클라이언트는 MongoDB 인스턴스에 지정된 대로 해당 필드를 암호화해야 합니다.
서버 측 Queryable Encryption 적용을 설정하는 방법을 알아보려면 필드 암호화 및 쿼리 가능성을 참조하세요.
자세히 알아보기
키 저장소 컬렉션, 데이터 암호화 키 및 고객 마스터 키에 대해 자세히 알아보려면 키 및 키저장소를 참조하세요.
KMS 제공자 및 kmsProviders
객체에 대해 자세히 알아보려면 KMS 제공자를 참조하세요.