암호화 키 관리(Encryption Key Management)
이 가이드에서는 Queryable Encryption이 활성화된 애플리케이션에서 KMS(KMS)을 사용하여 암호화 키를 managed 방법을 배울 수 있습니다.
암호화 구성 요소
MongoDB는 다음 구성 요소를 사용하여 Queryable Encryption을 수행합니다.
데이터 암호화 키(DEK)
고객 마스터 키(CMK)
키 볼트 컬렉션
키 관리 시스템(KMS)
키 및 키 볼트에 학습 보려면 키 및 키 볼트를 참조하세요.
mongosh를 사용하여 암호화 키 순환
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 Key Vault
Google Cloud KMS
KMIP를 준수하는 모든 키 관리 시스템
로컬 키 제공자(테스트 전용)
애플리케이션이 이러한 제공자를 사용하여 Queryable Encryption을 수행하는 방법을 보여주는 다이어그램을 포함하여 이러한 제공자에 대해 자세히 알아보려면 KMS 제공자를 참조하세요.
원격 KMS를 사용하는 이유
원격 키 관리 시스템을 사용하여 고객 마스터 키를 관리하면 로컬 파일 시스템을 사용하여 CMK를 호스팅하는 것에 비해 다음과 같은 이점이 있습니다.
액세스 감사를 통한 안전한 키 보관
액세스 권한 문제 발생 위험 감소
원격 클라이언트에 대한 키의 가용성 및 배포
자동화된 키 백업 및 복구
중앙 집중식 암호화 키 수명 주기 관리
또한 다음 KMS 제공자의 경우 KMS 는 데이터 암호화 키를 원격으로 암호화 및 해독하여 고객 마스터 키가 Queryable Encryption이 활성화된 애플리케이션에 노출되지 않도록 합니다.
Amazon Web Services KMS
Azure Key Vault
Google Cloud KMS
자세히 알아보기
지원되는 각 KMS 제공자에서 Queryable Encryption 지원 애플리케이션을 설정하는 방법을 자세히 설명하는 튜토리얼은 다음 페이지를 참조하세요.