CSFLE가 문서를 해독하는 방법
이 페이지에서는 CSFLE가 데이터 암호화 키와 고객 마스터 키의 메타데이터를 사용하여 데이터를 해독하는 방법을 설명합니다.
암호 해독에 사용되는 메타데이터
CSFLE를 사용하여 데이터를 암호화하는 경우 암호화하는 데이터는 다음 메타데이터 를 포함하는 BinData
하위 유형 6 객체 로 저장됩니다.
데이터 암호화에 사용되는 데이터 암호화 키의
_id
데이터를 암호화하는 데 사용되는 암호화 알고리즘
데이터 암호화 키에는 암호화에 사용된 고객 마스터 키를 설명하는 메타데이터가 포함되어 있습니다.
드라이버와 mongosh
는 이 메타데이터를 사용하여 데이터의 자동 암호 해독을 시도합니다.
자동 암호 해독 프로세스
데이터를 자동으로 해독하기 위해 CSFLE 지원 클라이언트는 다음 절차를 수행합니다.
값을 암호화하는 데 사용되는 데이터 암호화 키 및 암호화 알고리즘은 해독하려는 필드의
BinData
블롭 메타데이터를 확인하세요.지정된 데이터 암호화 키에 대해 현재 데이터베이스 연결에 구성된 키 볼트 컬렉션을 확인합니다. 키 볼트 컬렉션에 지정된 키가 포함되어 있지 않으면 자동 암호 해독이 실패하고 드라이버가 오류를 반환합니다.
주 자료 암호화에 사용된 고객 마스터 키(CMK)에 대한 데이터 암호화 키 메타데이터를 확인합니다.
데이터 암호화 키를 해독합니다. 이 프로세스는 KMS 제공자에 따라 다릅니다:
Amazon Web Services(AWS) KMS의 경우, 해독을 위해 데이터 암호화 키를 Amazon Web Services KMS 인스턴스로 전송합니다. 고객 마스터 키가 존재하지 않거나 연결 구성이 고객 마스터 키에 대한 액세스 권한을 부여하지 않는 경우 암호 해독이 실패하고 드라이버는 암호화된
BinData
블롭을 반환합니다.팁
Amazon Web Services KMS를 사용하여 자동 암호화하는 방법을 알아보려면 AWS에서 자동 클라이언트 측 필드 레벨 암호화 사용을 참조하세요.
Google Cloud Platform (GCP) KMS 의 경우, 복호화를 위해 데이터 암호화 키 를 GCP KMS 인스턴스 로 전송합니다. CMK 가 존재하지 않거나 연결 구성에서 CMK 에 액세스 을 부여하지 않으면 암호 해독이 실패하고 운전자 는 암호화됨
BinData
블롭을 반환합니다.팁
Google Cloud Platform KMS 를 사용하여 자동 암호화 하는 방법을 학습 보려면 GCP 에서 자동 클라이언트 측 필드 레벨 암호화 사용을 참조하세요.
Azure Key Vault의 경우, 데이터 암호화 키를 Azure Key Vault 인스턴스로 전송하여 암호를 해독합니다. CMK가 존재하지 않거나 또는 연결 구성이 CMK에 대한 액세스 권한을 부여하지 않는 경우 암호 해독이 실패하고 드라이버가 암호화된
BinData
블롭을 반환합니다.팁
자동 암호화 를 위해 Azure Key Vault 를 사용하는 방법을 학습 보려면 Azure에서 Azure 클라이언트 측 필드 레벨 암호화 사용을 참조하세요.
KMIP 호환 KMS 의 경우 KMS 에서 CMK 를 조회 한 다음 로컬에서 CMK 를 사용하여 데이터 암호화 키 를 해독합니다. CMK 가 존재하지 않거나 연결 구성에서 CMK 에 액세스 을 부여하지 않으면 암호 해독이 실패하고 운전자 는 암호화됨
BinData
블롭을 반환합니다.팁
자동 암호화 를 위해 KMIP 호환 KMS 를 사용하는 방법을 학습 보려면 KMIP로 자동 클라이언트 측 필드 레벨 암호화 사용을 참조하세요.
로컬 키 제공자의 경우 파일 시스템에서 CMK 를 조회 하고 이를 사용하여 데이터 암호화 키 를 해독합니다. 데이터베이스 구성에 지정된 로컬 키가 데이터 암호화 키 를 암호화하는 데 사용되지 않은 경우 암호 해독이 실패하고 운전자 는 암호화됨
BinData
블롭을 반환합니다.해독된 데이터 암호화 키와 적절한 알고리즘을 사용하여
BinData
값을 해독합니다.
필요한 고객 마스터 키 및 데이터 암호화 키 에도 액세스할 수 없는 MongoDB Server에 대한 액세스 권한이 있는 애플리케이션은 BinData
값을 복호화할 수 없습니다.
자동으로 암호화된 읽기 동작
읽기 작업의 경우 드라이버는 읽기 작업을 실행 하기 전에 암호화 스키마를 사용하여 쿼리 문서의 필드 값을 암호화합니다.
그런 다음 클라이언트 애플리케이션은 BinData
메타데이터를 사용하여 MongoDB에서 받은 문서를 자동으로 해독합니다.
암호화 스키마에 대해 자세히 알아보려면 암호화 스키마를 참조하세요 .
자세히 알아보기
클라이언트 측 필드 레벨 암호화를 위한 데이터베이스 연결을 구성하는 방법을 알아보려면 CSFLE용 MongoClient 옵션을 참조하세요.
데이터 암호화 키와 고객 마스터 키 간의 관계에 대해 자세히 알아보려면 암호화 키 및 키 볼트를 참조하세요.