문서 홈 → 애플리케이션 개발 → MongoDB 매뉴얼
CSFLE KMS 공급자
이 페이지의 내용
개요
클라이언트측 필드 레벨 암호화(CSFLE)가 지원하는 키 관리 시스템(KMS) 제공자에 대해 알아봅니다.
키 관리 시스템 작업
CSFLE에서 키 관리 시스템은 다음 작업을 수행합니다:
고객 마스터 키 및 데이터 암호화 키에 대해 자세히 알아보려면 키 및 키 볼트를참조하십시오.
고객 마스터 키 생성 및 저장
고객 마스터 키를 생성하려면 다음과 같이 고객 마스터 키를 생성하도록 키 관리 시스템을 구성해야 합니다.
선호하는 KMS에서 CMK를 생성하고 저장하는 방법을 보여주는 튜토리얼을 보려면 튜토리얼을 참조하세요.
데이터 암호화 키 생성 및 암호화
데이터 암호화 키를 만들 때는 다음 작업을 수행해야 합니다:
CSFLE 지원 애플리케이션에서
ClientEncryption
인스턴스를 인스턴스화합니다:CSFLE 지원 애플리케이션이 KMS 제공자를 통해 인증하는 데 사용하는 자격 증명을 지정하는
kmsProviders
객체를 제공합니다.
CSFLE 지원 애플리케이션에서
ClientEncryption
객체의CreateDataKey
메서드를 사용하여 데이터 암호화 키를 생성합니다.KMS가 새 데이터 암호화 키를 암호화할 키를 지정하는
dataKeyOpts
체를 입력합니다.
데이터 암호화 키를 생성하고 암호화하는 방법을 보여주는 튜토리얼을 보려면 다음 리소스를 참조하세요.
지원되는 모든 KMS 제공자에 대한 kmsProviders
및 dataKeyOpts
객체의 구조를 보려면 지원되는 키 관리 서비스를 참조하세요.
지원되는 키 관리 서비스
이 페이지의 다음 섹션에서는 모든 키 관리 시스템 제공자에 대한 다음 정보를 제공합니다.
CSFLE 지원 클라이언트의 아키텍처
kmsProviders
객체의 구조dataKeyOpts
객체의 구조
CSFLE는 다음과 같은 키 관리 시스템 제공자를 지원합니다.
Amazon Web Services KMS
이 섹션에서는 AWS 키 관리 서비스 사용과 관련된 정보를 제공합니다. CSFLE 지원 애플리케이션에서
CSFLE 지원 애플리케이션에서 AWS KMS를 사용하는 방법을 보여주는 튜토리얼을 보려면 AWS에서 자동 클라이언트 측 필드 레벨 암호화 사용을 참조하세요.
아키텍처
다음 다이어그램은 AWS KMS를 사용하는 CSFLE 지원 애플리케이션의 아키텍처를 설명합니다.
참고
클라이언트가 고객 마스터 키에 액세스할 수 없음
이전 키 관리 시스템을 사용하는 경우 CSFLE 지원 애플리케이션은 고객 마스터 키에 액세스할 수 없습니다.
kmsProviders 객체
다음 표에는 AWS KMS용 kmsProviders
객체의 구조가 나와 있습니다.
필드 | IAM 사용자에게 필수 | IAM 역할에 필요 | 설명 |
---|---|---|---|
액세스 키 ID | 예 | 예 | 계정 사용자를 식별합니다. |
보안 액세스 키 | 예 | 예 | 계정 사용자의 인증 자격 증명을 포함합니다. |
세션 토큰 | 아니요 | 예 | AWS Security Token Service(STS)에서 얻은 토큰이 포함되어 있습니다. |
dataKeyOpts 객체
다음 표에는 AWS KMS용 dataKeyOpts
객체의 구조가 나와 있습니다.
필드 | 필수 사항 | 설명 |
---|---|---|
키 | 예 | Amazon 리소스 번호(ARN) 마스터 키의. |
region | 아니요 | 마스터 키의 AWS 지역입니다. 예를 들면 다음과 같습니다. 'US-WEST-2': ARN에 지정되지 않은 경우에만 필요합니다. |
엔드포인트 | 아니요 | 계정에 구성된 경우 AWS 엔드포인트의 사용자 지정 호스트 이름입니다. |
Azure 키 볼트
이 섹션에서는 Azure Key Vault 사용과 관련된 정보를 제공합니다. CSFLE 지원 애플리케이션에서
CSFLE 지원 애플리케이션에서 Azure Key Vault를 사용하는 방법을 보여 주는 튜토리얼을 보려면 Azure에서 자동 클라이언트 측 필드 수준 암호화 사용을 참조하세요.
아키텍처
다음 다이어그램에서는 Azure Key Vault를 사용하는 CSFLE 지원 애플리케이션의 아키텍처를 설명합니다.
참고
클라이언트가 고객 마스터 키에 액세스할 수 없음
이전 키 관리 시스템을 사용하는 경우 CSFLE 지원 애플리케이션은 고객 마스터 키에 액세스할 수 없습니다.
kmsProviders 객체
다음 표는 Azure Key Vault에 대한 kmsProviders
객체의 구조를 나타냅니다.
필드 | 필수 사항 | 설명 |
---|---|---|
azure.tenantId | 예 | 계정의 조직을 식별합니다. |
azure.clientId | 예 | 등록된 애플리케이션을 인증하기 위해 clientId를 식별합니다. |
azure.clientSecret | 예 | 등록된 애플리케이션을 인증하는 데 사용됩니다. |
azure.identityPlatformEndpoint | 아니요 | 인증 서버의 호스트 이름 및 포트 번호를 지정합니다. 기본값은 login.microsoftonline.com 이며 정부 또는 중국 계정과 같은 비상업적 Azure 인스턴스에만 필요합니다. |
dataKeyOpts 객체
다음 표는 Azure Key Vault에 대한 dataKeyOpts
객체의 구조를 나타냅니다.
필드 | 필수 사항 | 설명 |
---|---|---|
keyName | 예 | 마스터 키의 이름 |
keyVersion | 아니요, 하지만 적극 권장합니다. | 마스터 키의 버전 |
keyVaultEndpoint | 예 | 키 저장소의 URL입니다. 예: myVaultName.vault.azure.net |
경고
keyVersion
필드를 포함하지 않으면 Azure Key Vault는 최신 고객 마스터 키를 사용하여 데이터 암호화 키를 해독하려고 시도합니다. 고객 마스터 키를 교체하되 데이터 암호화 키를 새 마스터 키로 다시 래핑하지 않으면 DEK가 이전 버전의 고객 마스터 키로 암호화되므로 기존 DEK의 암호 해독 시도가 실패합니다.
Google Cloud Platform KMS
이 섹션에서는 Google Cloud 키 관리 사용과 관련된 정보를 제공합니다. CSFLE 지원 애플리케이션에서
CSFLE 지원 애플리케이션에서 GCP KMS를 사용하는 방법을 보여주는 튜토리얼을 보려면 GCP에서 자동 클라이언트 측 필드 레벨 암호화 사용을 참조하세요.
아키텍처
다음 다이어그램은 GCP KMS를 사용하는 CSFLE 지원 애플리케이션의 아키텍처를 설명합니다.
참고
클라이언트가 고객 마스터 키에 액세스할 수 없음
이전 키 관리 시스템을 사용하는 경우 CSFLE 지원 애플리케이션은 고객 마스터 키에 액세스할 수 없습니다.
kmsProviders 객체
다음 표에는 GCP KMS용 kmsProviders
객체의 구조가 나와 있습니다.
필드 | 필수 사항 | 설명 | |||
---|---|---|---|---|---|
이메일 | 예 | 서비스 계정 이메일 주소를 식별합니다. | |||
privateKey | 예 | 두 기본 문자열 에서 서비스 계정 비공개 키를 식별합니다. 또는 64 접두사 및 접미사 마커가 없는 이진 하위 유형 형식입니다.0 서비스 계정 비공개 키 값이 다음과 같다고 가정해 보겠습니다.
이 필드에 지정할 값은 다음과 같습니다.
자격 증명 파일이 있는 경우 bash 또는 유사한 셸에서 다음 명령을 실행하여 문자열을 추출할 수 있습니다. user-key.json 다음 명령을 사용하려면 OpenSSL 을 설치해야 합니다. :
| |||
엔드포인트 | 아니요 | 인증 서버의 호스트 이름 및 포트 번호를 지정합니다. 기본값은 oauth2.googleapis.com입니다. |
dataKeyOpts 객체
다음 표에는 GCP KMS용 dataKeyOpts
객체의 구조가 나와 있습니다.
필드 | 필수 사항 | 설명 |
---|---|---|
projectId | 예 | 키를 생성한 프로젝트의 식별자입니다. |
위치 | 예 | 키에 대해 지정된 지역입니다. |
keyRing | 예 | 키가 속한 키 그룹의 식별자입니다. |
keyName | 예 | 대칭 마스터 키의 식별자입니다. |
keyVersion | 아니요 | 명명된 키의 버전을 지정합니다. 지정하지 않으면 기본 버전의 키가 사용됩니다. |
엔드포인트 | 아니요 | 클라우드 KMS의 호스트 및 선택적 포트를 지정합니다. 기본값은 cloudkms.googleapis.com 입니다. |
KMIP
이 섹션에서는 KMIP 사용과 관련된 정보를 제공합니다. CSFLE 지원 애플리케이션의 호환 키 관리 시스템.
CSFLE 지원 애플리케이션에서 KMIP 호환 키 관리 시스템을 사용하는 방법을 보여주는 튜토리얼을 보려면 KMIP를 사용한 자동 클라이언트 측 필드 레벨 암호화 사용을 참조하세요.
아키텍처
다음 다이어그램은 KMIP 호환 키 제공자를 사용하는 CSFLE 지원 애플리케이션의 아키텍처를 설명합니다.
중요
클라이언트 고객 마스터 키 액세스
CSFLE 지원 애플리케이션이 KMIP 호환 키 제공자를 사용하는 경우 애플리케이션은 고객 마스터 키에 직접 액세스합니다.
kmsProviders 객체
다음 표에는 KMIP 호환 키 제공자에 대한 kmsProviders
객체의 구조가 나와 있습니다.
참고
TLS/SSL을 통한 인증
CSFLE 지원 애플리케이션은 KMIP를 사용할 때 TLS/SSL을 통해 인증합니다.
필드 | 필수 사항 | 설명 |
---|---|---|
엔드포인트 | 예 | 인증 서버의 호스트 이름 및 포트 번호를 지정합니다. |
dataKeyOpts 객체
다음 표는 KMIP 호환 키 관리 시스템에 대한 dataKeyOpts
객체의 구조를 나타냅니다.
필드 | 필수 사항 | 설명 |
---|---|---|
keyId | 아니요 |
KMIP 호환 키 제공자에게 보내는 |
엔드포인트 | 예 | KMIP호환 키 제공자의 URI입니다. |
로컬 키 제공자
이 섹션에서는 CSFLE 지원 애플리케이션에서 로컬 키 제공자(파일 시스템) 사용과 관련된 정보를 제공합니다.
경고
프로덕션에서 로컬 키 제공자를 사용하지 않습니다.
로컬 키 제공자는 안전하지 않은 저장 방법이므로 프로덕션 에는 권장되지 않습니다 . 대신 원격 키 관리 시스템 에 고객 마스터 키를 저장해야 합니다. (KMS).
CSFLE 구현에서 원격 KMS를 사용하는 방법을 알아보려면 튜토리얼 가이드를 참조하세요.
로컬 키 공급자를 사용하여 클라이언트 측 필드 레벨 암호화를 테스트하는 방법을 보여주는 튜토리얼을 보려면 빠른 시작을 참조하세요.
아키텍처
CSFLE 지원 애플리케이션에서 로컬 키 제공자를 사용하면 애플리케이션은 애플리케이션이 실행되는 컴퓨터의 파일 시스템에서 고객 마스터 키를 조회합니다.
다음 다이어그램은 로컬 키 제공자를 사용하는 CSFLE 지원 애플리케이션의 아키텍처를 설명합니다.
kmsProviders 객체
다음 표는 로컬 키 제공자의 kmsProviders
객체 구조를 보여줍니다.
필드 | 필수 사항 | 설명 |
---|---|---|
키 | 예 | 데이터 키를 암호화/복호화하는 데 사용되는 마스터 키입니다. 마스터 키는 base64로 인코딩된 문자열로 전달됩니다. |
dataKeyOpts 객체
로컬 키 제공자를 사용하는 경우 kmsProviders
객체를 통해 고객 마스터 키를 지정합니다.