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

CSFLE가 문서를 해독하는 방법

이 페이지의 내용

  • 암호 해독에 사용되는 메타데이터
  • 자동 암호 해독 프로세스
  • 자동으로 암호화된 읽기 동작
  • 자세히 알아보기

이 페이지에서는 CSFLE가 데이터 암호화 키와 고객 마스터 키의 메타데이터를 사용하여 데이터를 해독하는 방법을 설명합니다.

CSFLE를 사용하여 데이터를 암호화하는 경우 암호화하는 데이터는 다음 메타데이터를 포함하는 BinData 하위 유형 6 객체로 저장됩니다.

  • 데이터 암호화에 사용되는 데이터 암호화 키의 _id

  • 데이터를 암호화하는 데 사용되는 암호화 알고리즘

데이터 암호화 키에는 암호화에 사용된 고객 마스터 키를 설명하는 메타데이터가 포함되어 있습니다.

드라이버와 mongosh 는 이 메타데이터를 사용하여 데이터의 자동 암호 해독을 시도합니다.

데이터를 자동으로 해독하기 위해 CSFLE 지원 클라이언트는 다음 절차를 수행합니다.

  1. 값을 암호화하는 데 사용되는 데이터 암호화 키 및 암호화 알고리즘은 해독하려는 필드의 BinData 블롭 메타데이터를 확인하세요.

  2. 지정된 데이터 암호화 키에 대해 현재 데이터베이스 연결에 구성된 키 볼트 컬렉션을 확인합니다. 키 볼트 컬렉션에 지정된 키가 포함되어 있지 않으면 자동 암호 해독이 실패하고 드라이버가 오류를 반환합니다.

  3. 주 자료 암호화에 사용된 고객 마스터 키(CMK)에 대한 데이터 암호화 키 메타데이터를 확인합니다.

  4. 데이터 암호화 키를 해독합니다. 이 프로세스는 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에서 자동 클라이언트 측 필드 레벨 암호화 사용을 참조하세요.

    KMIP 호환 KMS의 경우 KMS에서 CMK를 검색한 다음 로컬에서 CMK를 사용하여 데이터 암호화 키를 해독합니다. CMK가 존재하지 않거나 연결 구성에서 CMK에 대한 액세스 권한을 부여하지 않으면 암호 해독이 실패하고 드라이버는 암호화된 BinData 블롭을 반환합니다.

    자동 암호화를 위해 KMIP 호환 KMS를 사용하는 방법을 알아보려면 KMIP를 통한 자동 클라이언트 측 필드 레벨 암호화 사용을 참조하세요.

    로컬 키 제공자의 경우 파일 시스템에서 CMK를 검색하고 이를 사용하여 데이터 암호화 키를 해독합니다. 데이터베이스 구성에 지정된 로컬 키가 데이터 암호화 키를 암호화하는 데 사용되지 않은 경우 암호 해독이 실패하고 드라이버는 암호화된 BinData 블롭을 반환합니다.

    경고

    프로덕션에서 로컬 키 제공자를 사용하지 않습니다.

    로컬 키 제공자는 안전하지 않은 저장 방법이므로 프로덕션 에는 권장되지 않습니다 . 대신 원격 키 관리 시스템 에 고객 마스터 키를 저장해야 합니다. (KMS).

    CSFLE 구현에서 원격 KMS를 사용하는 방법을 알아보려면 튜토리얼 가이드를 참조하세요.

  5. 해독된 데이터 암호화 키와 적절한 알고리즘을 사용하여 BinData 값을 해독합니다.

필요한 고객 마스터 키 및 데이터 암호화 키 에도 액세스할 수 없는 MongoDB Server에 대한 액세스 권한이 있는 애플리케이션은 BinData 값을 복호화할 수 없습니다.

읽기 작업의 경우 드라이버는 읽기 작업을 실행 하기 전에 암호화 스키마를 사용하여 쿼리 문서의 필드 값을 암호화합니다.

그런 다음 클라이언트 애플리케이션은 BinData 메타데이터를 사용하여 MongoDB에서 받은 문서를 자동으로 해독합니다.

암호화 스키마에 대해 자세히 알아보려면 암호화 스키마를 참조하세요 .

클라이언트 측 필드 레벨 암호화에 대한 데이터베이스 연결을 구성하는 방법을 알아보려면 CSFLE 관련 MongoClient 옵션을 참조하세요.

데이터 암호화 키와 고객 마스터 키 간의 관계에 대해 자세히 알아보려면 키 및 키 볼트를 참조하세요.

돌아가기

CSFLE 암호화 구성 요소

다음

CSFLE 암호화 프리미티브