KMS 제공자
이 페이지의 내용
개요
Queryable Encryption이 지원하는 키 관리 서비스 제공자에 대해 알아보세요.
KMS 는 서비스로 제공되는 키 관리 시스템입니다.
키 관리 서비스 작업
Queryable Encryption에서 키 관리 서비스는 다음을 수행합니다.
고객 마스터 키 생성 및 암호화
애플리케이션에서 생성한 데이터 암호화 키를 암호화합니다.
데이터 암호화 키 해독
고객 마스터 키 및 데이터 암호화 키에 학습 보려면 키 및 키 볼트를 참조하세요.
고객 마스터 키 생성 및 저장
고객 마스터 키를 생성하려면 다음과 같이 고객 마스터 키를 생성하도록 KMS 제공자를 구성합니다.
선호하는 키 관리 서비스에서 CMK 를 생성하고 저장하는 방법을 보여주는 튜토리얼을 보려면 튜토리얼을 참조하세요 .
데이터 암호화 키 생성 및 암호화
데이터 암호화 키를 생성하려면 다음을 수행합니다.
Queryable Encryption 지원 애플리케이션에서
ClientEncryption
인스턴스를 인스턴스화합니다.Queryable Encryption 지원 애플리케이션이 KMS 로 인증하는 데 사용하는 자격 증명을 지정하는
kmsProviders
객체를 제공합니다.
Queryable Encryption이 활성화된 애플리케이션에서
ClientEncryption
객체의CreateDataKey
메서드를 사용하여 데이터 암호화 키를 생성합니다.KMS가 새 데이터 암호화 키를 암호화할 키를 지정하는
dataKeyOpts
객체를 입력합니다.
데이터 암호화 키를 생성하고 암호화하는 방법을 보여주는 튜토리얼을 보려면 다음 리소스를 참조하세요.
지원되는 모든 KMS 제공자에 대한 kmsProviders
및 dataKeyOpts
객체의 구조를 보려면 지원되는 키 관리 서비스를 참조하세요.
지원되는 키 관리 서비스
이 페이지의 다음 섹션에서는 모든 KMS 제공자에 대한 다음 정보를 제공합니다.
Queryable Encryption 지원 클라이언트의 아키텍처
kmsProviders
객체의 구조dataKeyOpts
객체의 구조
Queryable Encryption은 다음과 같은 KMS 제공자를 지원합니다.
Amazon Web Services KMS
이 섹션에서는 사용과 관련된 정보를 Amazon Web Services KMS Queryable Encryption 제공합니다. 이 활성화된 애플리케이션 에서
Queryable Encryption이 활성화된 애플리케이션에서 AWS KMS를 사용하는 방법을 보여주는 튜토리얼을 보려면 AWS에서 자동 Queryable Encryption 사용을 참조하세요.
아키텍처
다음 다이어그램은 Amazon Web Services KMS를 사용하는 Queryable Encryption 지원 애플리케이션의 아키텍처를 설명합니다.
참고
클라이언트가 고객 마스터 키에 액세스할 수 없음
앞의 KMS를 사용할 때 Queryable Encryption이 활성화된 애플리케이션은 고객 마스터 키에 액세스할 수 없습니다.
kmsProviders 객체
다음 표에는 AWS KMS용 kmsProviders
객체의 구조가 나와 있습니다.
필드 | IAM 사용자에게 필수 | IAM 역할에 필요 | 설명 |
---|---|---|---|
액세스 키 ID | 예 | 예 | 계정 사용자를 식별합니다. |
보안 액세스 키 | 예 | 예 | 계정 사용자의 인증 자격 증명을 포함합니다. |
Session Token | No | 예 | AWS Security Token Service(STS)에서 얻은 토큰이 포함되어 있습니다. |
dataKeyOpts 객체
다음 표에는 AWS KMS용 dataKeyOpts
객체의 구조가 나와 있습니다.
필드 | 필수 사항 | 설명 |
---|---|---|
키 | 예 | Amazon 리소스 번호(ARN) 마스터 키의. |
리전 | No | 마스터 키의 AWS 리전입니다. 예를 들면 다음과 같습니다. 'US-WEST-2': ARN에 지정되지 않은 경우에만 필요합니다. |
엔드포인트 | No | 계정에 구성된 경우 AWS 엔드포인트의 사용자 지정 호스트 이름입니다. |
Azure Key Vault
이 섹션에서는 Azure Key Vault 사용과 관련된 정보를 제공합니다. Queryable Encryption 이 활성화된 애플리케이션 에서
Queryable Encryption이 활성화된 애플리케이션에서 Azure Key Vault를 사용하는 방법을 보여주는 튜토리얼을 보려면 Azure에서 자동 Queryable Encryption 사용을 참조하세요.
아키텍처
다음 다이어그램은 Azure Key Vault를 사용하는 Queryable Encryption 지원 애플리케이션의 아키텍처를 설명합니다.
참고
클라이언트가 고객 마스터 키에 액세스할 수 없음
앞의 KMS를 사용할 때 Queryable Encryption이 활성화된 애플리케이션은 고객 마스터 키에 액세스할 수 없습니다.
kmsProviders 객체
다음 표는 Azure Key Vault에 대한 kmsProviders
객체의 구조를 나타냅니다.
필드 | 필수 사항 | 설명 |
---|---|---|
azure.tenantId | 예 | 계정의 조직을 식별합니다. |
azure.clientId | 예 | 등록된 애플리케이션을 인증하기 위해 clientId를 식별합니다. |
azure.clientSecret | 예 | 등록된 애플리케이션을 인증하는 데 사용됩니다. |
azure.identityPlatformEndpoint | No | 인증 서버의 호스트 이름 및 포트 번호를 지정합니다. 기본값은 login.microsoftonline.com 이며 정부 또는 중국 계정과 같은 비상업적 Azure 인스턴스에만 필요합니다. |
dataKeyOpts 객체
다음 표는 Azure Key Vault에 대한 dataKeyOpts
객체의 구조를 나타냅니다.
필드 | 필수 사항 | 설명 |
---|---|---|
keyName | 예 | 마스터 키의 이름 |
keyVersion | No | 마스터 키의 버전 |
keyVaultEndpoint | 예 | 키 저장소의 URL입니다. 예: myVaultName.vault.azure.net |
Google Cloud Platform KMS
이 섹션에서는 GCP 키 관리 사용과 관련된 정보를 Queryable Encryption 제공합니다. 이 활성화된 애플리케이션에서
Queryable Encryption이 활성화된 애플리케이션에서 GCP KMS를 사용하는 방법을 보여주는 튜토리얼을 보려면 GCP에서 자동 Queryable Encryption 사용을 참조하세요.
아키텍처
다음 다이어그램은 GCP KMS를 사용하는 Queryable Encryption 지원 애플리케이션의 아키텍처를 설명합니다.
참고
클라이언트가 고객 마스터 키에 액세스할 수 없음
앞의 KMS를 사용할 때 Queryable Encryption이 활성화된 애플리케이션은 고객 마스터 키에 액세스할 수 없습니다.
kmsProviders 객체
다음 표에는 GCP KMS용 kmsProviders
객체의 구조가 나와 있습니다.
필드 | 필수 사항 | 설명 | |||
---|---|---|---|---|---|
이메일 | 예 | 서비스 계정 이메일 주소를 식별합니다. | |||
privateKey | 예 | Identifies your service account private key in either
base64 string or
Binary subtype 0
format without the prefix and suffix markers. Suppose your service account private key value is as follows:
The value you would specify for this field is:
If you have a user-key.json credential file, you can extract
the string by executing the following command in a bash or
similar shell:
| |||
엔드포인트 | No | 인증 서버의 호스트 이름 및 포트 번호를 지정합니다. 기본값은 oauth2.googleapis.com입니다. |
dataKeyOpts 객체
다음 표에는 GCP KMS용 dataKeyOpts
객체의 구조가 나와 있습니다.
필드 | 필수 사항 | 설명 |
---|---|---|
projectId | 예 | 키를 생성한 프로젝트의 식별자입니다. |
위치 | 예 | 키에 대해 지정된 리전입니다. |
keyRing | 예 | 키가 속한 키 그룹의 식별자입니다. |
keyName | 예 | 대칭 마스터 키의 식별자입니다. |
keyVersion | No | 명명된 키의 버전을 지정합니다. 지정하지 않으면 기본 버전의 키가 사용됩니다. |
엔드포인트 | No | 클라우드 KMS의 호스트 및 선택적 포트를 지정합니다. 기본값은 |
KMIP
이 섹션에서는 KMIP 사용과 관련된 정보를 제공합니다. 이 활성화된 KMS 애플리케이션 에서 호환되는 제공자 Queryable Encryption 를 추가합니다.
아키텍처
다음 다이어그램은 KMIP호환 키 제공자를 사용하는 Queryable Encryption 지원 애플리케이션의 아키텍처를 설명합니다.
중요
클라이언트 고객 마스터 키 액세스
Queryable Encryption이 활성화된 애플리케이션이 KMIP호환 키 제공자를 사용하는 경우 애플리케이션은 고객 마스터 키에 직접 액세스합니다.
kmsProviders 객체
다음 표에는 KMIP 호환 KMS에 대한 kmsProviders
객체의 구조가 나와 있습니다.
참고
TLS/SSL을 통한 인증
Queryable Encryption이 활성화된 애플리케이션은 KMIP를 사용할 때 TLS/SSL 을 통해 인증합니다.
필드 | 필수 사항 | 설명 |
---|---|---|
엔드포인트 | 예 | 인증 서버의 호스트 이름 및 포트 번호를 지정합니다. |
dataKeyOpts 객체
다음 표에는 KMIP 호환 KMS에 대한 dataKeyOpts
객체의 구조가 나와 있습니다.
필드 | 필수 사항 | 설명 |
---|---|---|
keyId | No |
KMIP 호환 키 제공자에게 보내는 |
엔드포인트 | 예 | KMIP호환 키 제공자의 URI입니다. |
로컬 키 제공자
이 섹션에서는 Queryable Encryption 지원 애플리케이션에서 로컬 키 제공자(파일 시스템)를 사용하는 것과 관련된 정보를 제공합니다.
경고
프로덕션 환경에서 로컬 키 파일을 사용하지 마세요.
파일 시스템의 로컬 키 파일은 안전하지 않으므로 프로덕션에 권장되지 않습니다 . 대신 원격 키 관리 시스템 에 고객 마스터 키를 저장해야 합니다. (KMS).
Queryable Encryption 구현에서 원격 KMS를 사용하는 방법을 알아보려면 튜토리얼 가이드를 참조하세요.
로컬 키 제공자를 사용하여 Queryable Encryption 테스트를 수행하는 방법을 보여주는 튜토리얼을 보려면 빠른 시작을 참조하세요.
아키텍처
로컬 키 제공자를 사용하면 애플리케이션은 실행되는 컴퓨터의 파일 시스템에서 고객 마스터 키를 조회합니다. 다음 다이어그램은 로컬 키 제공자를 사용하는 Queryable Encryption 지원 애플리케이션의 아키텍처를 설명합니다.
kmsProviders 객체
다음 표는 로컬 키 제공자의 kmsProviders
객체 구조를 보여줍니다.
필드 | 필수 사항 | 설명 |
---|---|---|
키 | 예 | 데이터 키를 암호화/복호화하는 데 사용되는 마스터 키입니다. 마스터 키는 base64로 인코딩된 문자열로 전달됩니다. |
dataKeyOpts 객체
로컬 키 제공자를 사용하는 경우 kmsProviders
객체를 통해 고객 마스터 키를 지정합니다.