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

암호화 키 관리(Encryption Key Management)

이 페이지의 내용

  • 암호화 구성 요소
  • mongosh를 사용하여 암호화 키 순환
  • 지원되는 키 관리 서비스
  • 원격 KMS를 사용하는 이유
  • 자세히 알아보기

이 가이드에서는 Queryable Encryption이 활성화된 애플리케이션에서 KMS(KMS)을 사용하여 암호화 키를 managed 방법을 배울 수 있습니다.

MongoDB는 다음 구성 요소를 사용하여 Queryable Encryption을 수행합니다.

  • 데이터 암호화 키(DEK)

  • 고객 마스터 키(CMK)

  • 키 볼트 컬렉션

  • 키 관리 시스템(KMS)

키 및 키 볼트에 대해 자세히 알아보려면 키 및 키 볼트를 참조하세요.

KeyVault.rewrapManyDataKey() 메서드를 사용하여 암호화 키를 순환시킬 수 있습니다. rewrapManyDataKey 메서드는 여러 데이터 키를 자동으로 해독하고 지정된 고객 마스터 키를 사용하여 다시 암호화합니다. 그런 다음 키 볼트 컬렉션에서 순환된 키를 업데이트합니다. 이 메서드를 사용하면 두 개의 선택적 인수를 기반으로 암호화 키를 순환시킬 수 있습니다.

  • 순환할 키를 지정하는 데 사용되는 쿼리 필터 문서 입니다. 지정된 필터와 일치하는 데이터 키가 없으면 키가 순환되지 않습니다. 키 볼트 컬렉션의 모든 키를 순환시키려면 필터를 생략합니다.

  • 고객 마스터 키(CMK)를 나타내는 객체입니다. 현재 CMK를 사용하여 데이터 키를 회전하려면 이 객체를 생략합니다.

rewrapManyDataKey 메서드의 구문은 다음과 같습니다.

let keyVault = db.getMongo().getKeyVault()
keyVault.rewrapManyDataKey(
{
"<Your custom filter>"
},
{
provider: "<KMS provider>",
masterKey: {
"<dataKeyOpts Key>" : "<dataKeyOpts Value>"
}
}
)

Queryable Encryption은 다음과 같은 키 관리 시스템 제공자를 지원합니다.

  • Amazon Web Services KMS

  • Azure 키 볼트

  • Google Cloud KMS

  • KMIP를 준수하는 모든 키 관리 시스템

  • 로컬 키 제공자(테스트 전용)

애플리케이션이 이러한 제공자를 사용하여 Queryable Encryption을 수행하는 방법을 보여주는 다이어그램을 포함하여 이러한 제공자에 대해 자세히 알아보려면 KMS 제공자를 참조하세요.

원격 키 관리 시스템을 사용하여 고객 마스터 키를 관리하면 로컬 파일 시스템을 사용하여 CMK를 호스팅하는 것에 비해 다음과 같은 이점이 있습니다.

  • 액세스 감사를 통한 안전한 키 보관

  • 액세스 권한 문제 발생 위험 감소

  • 원격 클라이언트에 대한 키의 가용성 및 배포

  • 자동화된 키 백업 및 복구

  • 중앙 집중식 암호화 키 수명 주기 관리

또한 다음 KMS 제공자의 경우 KMS 는 데이터 암호화 키를 원격으로 암호화 및 해독하여 고객 마스터 키가 Queryable Encryption이 활성화된 애플리케이션에 노출되지 않도록 합니다.

  • Amazon Web Services KMS

  • Azure 키 볼트

  • Google Cloud KMS

지원되는 각 KMS 제공자에서 Queryable Encryption 지원 애플리케이션을 설정하는 방법을 자세히 설명하는 튜토리얼은 다음 페이지를 참조하세요.

← KMS 제공자