Docs Menu
Docs Home
/
MongoDB 매뉴얼
/ / / / /

암호화 키 회전 및 다시 래핑

이 페이지의 내용

  • 개요
  • 관련 정보
  • 절차
  • 키 관리 시스템에서 고객 마스터 키 로테이션
  • 다음을 사용하여 데이터 암호화 키를 순환하세요. KeyVault.rewrapManyDataKey()

이 가이드에서는 애플리케이션에서 키 관리 시스템(KMS)을 사용하여 암호화 키를 managed 방법을 배울 수 있습니다.

이 절차에서는 mongosh 를 사용하여 Queryable Encryption 에 대한 암호화 키를 순환하는 방법을 보여줍니다. DEK 순환은 새 고객 마스터 키 다시 래핑하는 것으로 구성되므로 '회전'과 '재래핑'이라는 용어는 때때로 같은 의미로 사용됩니다.

이 가이드를 완료한 후에는 키 관리 시스템에서 고객 마스터 키(고객 마스터 키)를 로테이션할 수 있으며, 키 볼트 컬렉션의 기존 DEK를 새 고객 마스터 키 로 다시 래핑할 수 있습니다.

경고

키를 순환할 때 키나 데이터를 암호화하는 데 사용되지 않은지 확인한 후 삭제합니다. DEK 를 삭제하면 해당 DEK 로 암호화된 모든 필드를 영구적으로 읽을 수 없게 됩니다. CMK 를 삭제하면 해당 CMK 를 사용하여 DEK 로 암호화된 모든 필드를 영구적으로 읽을 수 없게 됩니다.

이 절차에 포함된 개념에 대한 자세한 설명은 아래 항목을 참조하세요.

키 및 키 볼트에 학습 보려면 암호화 키 및 키 볼트를 참조하세요. 지원되는 KMS 제공자 목록을 보려면 KMS 제공자 페이지를 참조하세요.

지원되는 각 KMS 제공자를 사용하여 Queryable Encryption 지원 애플리케이션 을 설정하다 하는 방법을 자세히 설명하는 튜토리얼은 개요: Queryable Encryption 활성화를 참조하세요.

1

고객 마스터 키 로테이션 프로세스는 KMS 제공자에 따라 다릅니다. 자세한 내용은 키 제공자의 설명서를 참조하세요.

CMK 를 순환시키면 MongoDB는 이를 사용하여 모든 새 DEK를 래핑합니다. 기존 DEK를 다시 래핑하려면 다음 단계를 계속 진행합니다.

2

KeyVault.rewrapManyDataKey() 메서드는 여러 데이터 암호화 키를 자동으로 해독하고 지정된 CMK 를 사용하여 다시 암호화합니다. 그런 다음 키 볼트 컬렉션의 키를 업데이트합니다.

이 메서드에는 다음과 같은 구문이 있습니다.

let keyVault = db.getMongo().getKeyVault()
keyVault.rewrapManyDataKey(
{
"<Query filter document>"
},
{
provider: "<KMS provider>",
masterKey: {
"<dataKeyOpts Key>" : "<dataKeyOpts Value>"
}
}
)
  1. 쿼리 필터 문서를 지정하여 회전할 키를 선택하거나 인수를 생략하여 키 볼트 컬렉션의 모든 키를 회전합니다.

    쿼리 필터 문서 를 지정했지만 일치하는 키가 없으면 키가 순환되지 않습니다.

  2. KMS 제공자 지정

  3. CMK 를 사용하여 masterKey 를 지정하거나 기존 CMK를 사용하여 키를 회전하려면 인수를 생략합니다.

고객 마스터 키 로 다시 래핑한 후에도 DEK 자체는 변경되지 않습니다. 키 로테이션 프로세스는 원활하게 진행되며 애플리케이션을 중단하지 않습니다.

돌아가기

명시적 암호화