

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 외부 키 스토어
<a name="keystore-external"></a>

외부 키 스토어를 사용하면 외부의 암호화 키를 사용하여 AWS 리소스를 보호할 수 있습니다 AWS. 이 고급 기능은 사용자가 제어하는 외부 키 관리 시스템에 저장된 암호화 키로 보호해야 하는 규제 대상 워크로드용으로 설계되었습니다. 외부 키 스토어는 외부에서 소유하고 제어하는 키 구성 요소로 암호화할 수 있는 기능을 AWS포함하여의 데이터에 대한 주권 제어를 제공하는 [AWS 디지털 주권 서약](https://aws.amazon.com/blogs/security/aws-digital-sovereignty-pledge-control-without-compromise/)을 지원합니다 AWS.

*외부 키 스토어*는 외부에서 소유하고 관리하는 *외부 키 관리자가 지원하는* [사용자 지정 키 스토어](key-store-overview.md#custom-key-store-overview)입니다 AWS. 외부 키 관리자는 물리적 또는 가상 하드웨어 보안 모듈(HSM)이거나 암호화 키를 생성하고 사용할 수 있는 하드웨어 기반 또는 소프트웨어 기반 시스템일 수 있습니다. 외부 키 스토어에서 KMS 키를 사용하는 암호화 및 복호화 작업은 *HYOK(Hold Your Own Key)*라는 기능인 암호화 키 구성 요소를 사용하여 외부 키 관리자에 의해 수행됩니다.

AWS KMS 는 외부 키 관리자와 직접 상호 작용하지 않으며 키를 생성, 보기, 관리 또는 삭제할 수 없습니다. 대신는 사용자가 제공하는 [외부 키 스토어 프록시](#concept-xks-proxy)(XKS 프록시) 소프트웨어와만 AWS KMS 상호 작용합니다. 외부 키 스토어 프록시는 AWS KMS 와 외부 키 관리자 간의 모든 통신을 중재합니다. 의 모든 요청을 외부 키 관리자 AWS KMS 로 전송하고 외부 키 관리자의 응답을 로 다시 전송합니다 AWS KMS. 또한 외부 키 스토어 프록시는의 일반 요청을 외부 키 관리자가 이해할 수 있는 AWS KMS 공급업체별 형식으로 변환하므로 다양한 공급업체의 키 관리자와 함께 외부 키 스토어를 사용할 수 있습니다.

[AWS Encryption SDK](https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/)를 포함하여 클라이언트측 암호화를 위해 외부 키 스토어에서 KMS 키를 사용할 수 있습니다. 그러나 외부 키 스토어는 서버 측 암호화에 중요한 리소스이므로 외부의 암호화 키를 사용하여 여러에서 AWS 리소스를 보호할 AWS 서비스 수 있습니다 AWS. AWS 서비스 대칭 암호화를 위한 [고객 관리형 키를](concepts.md#customer-mgn-key) 지원하는는 외부 키 스토어의 KMS 키도 지원합니다. 서비스 지원에 관한 자세한 내용을 확인하려면 [AWS 서비스 통합](https://aws.amazon.com/kms/features/#AWS_service_integration)을 참조하세요.

외부 키 스토어를 사용하면 외부에서 암호화 키를 저장하고 사용해야 하는 규제된 워크로드 AWS KMS 에를 사용할 수 있습니다 AWS. 그러나 이는 표준 공유 책임 모델에서 크게 벗어나며 추가 운영 부담이 필요합니다. 대부분의 고객에게 가용성 및 지연 시간에 대한 더 큰 위험은 외부 키 스토어의 인식된 보안 이점을 초과합니다.

외부 키 스토어를 사용하면 신뢰할 수 있는 루트를 제어할 수 있습니다. 외부 키 스토어의 KMS 키로 암호화된 데이터는 사용자가 제어하는 외부 키 관리자를 통해서만 복호화할 수 있습니다. 외부 키 스토어 연결을 해제하거나 외부 키 스토어 프록시에서 외부 키 관리자 연결을 해제하는 등 외부 키 관리자에 대한 액세스를 일시적으로 취소하면 복원할 때까지 암호화 키에 대한 모든 액세스 권한이 AWS 상실됩니다. 이 기간 동안에는 KMS 키로 암호화된 사이퍼텍스트를 복호화할 수 없습니다. 외부 키 관리자에 대한 액세스를 영구적으로 취소하면 외부 키 스토어의 KMS 키로 암호화된 모든 사이퍼텍스트를 복구할 수 없게 됩니다. 유일한 예외는 KMS [키로 보호되는 데이터](data-keys.md) 키를 잠시 캐싱하는 AWS 서비스입니다. 이러한 데이터 키는 리소스를 비활성화하거나 캐시가 만료될 때까지 계속 작동합니다. 자세한 내용은 [사용할 수 없는 KMS 키가 데이터 키에 미치는 영향](unusable-kms-keys.md)을 참조하세요.

외부 키 스토어는 암호화 키가 전적으로 사용자의 제어 하에 있고 액세스할 수 없는 규제 대상 워크로드의 몇 가지 사용 사례를 차단 해제합니다 AWS. 그러나 이는 클라우드 기반 인프라 운영 방식의 큰 변화이자 공동 책임 모델의 중요한 변화입니다. 대부분의 워크로드에서 가용성과 성능에 대한 추가 운영 부담과 더 큰 위험은 외부 키 스토어의 인식된 보안 이점을 초과합니다.



**외부 키 스토어가 필요한가요?**

대부분의 사용자의 경우 [FIPS 140-3 보안 수준 3 검증 하드웨어 보안 모듈](https://csrc.nist.gov/projects/cryptographic-module-validation-program/certificate/4884)로 보호되는 기본 AWS KMS 키 스토어는 보안, 제어 및 규제 요구 사항을 충족합니다. 외부 키 스토어 사용자는 상당한 비용, 유지 보수 및 문제 해결 부담과 지연 시간, 가용성 및 신뢰성에 대한 위험을 부담하게 됩니다.

외부 키 스토어를 고려할 때 잠시 시간을 내어 사용자가 소유하고 관리하는 AWS CloudHSM 클러스터에서 지원하는 [AWS CloudHSM 키 스토어](keystore-cloudhsm.md), 자체 HSM에서 생성하고 요청 시 KMS 키에서 삭제할 수 있는 [가져온 키 구성 요소](importing-keys.md)가 있는 KMS 키 등의 대안에 대해 알아보세요. 특히 매우 짧은 만료 간격으로 키 구성 요소를 가져오면 성능 또는 가용성 위험 없이 비슷한 수준의 제어를 제공할 수 있습니다.

다음과 같은 요구 사항이 있는 경우 외부 키 스토어가 조직에 적합한 솔루션일 수 있습니다.
+ 온프레미스 키 관리자 또는 사용자가 제어하는 외부의 키 관리자에서 암호화 키를 사용해야 AWS 합니다.
+ 암호화 키가 클라우드 외부에서만 제어할 수 있음을 입증해야 합니다.
+ 독립된 권한이 있는 암호화 키를 사용하여 암호화하고 복호화해야 합니다.
+ 키 구성 요소는 독립적인 보조 감사 경로를 따라야 합니다.

외부 키 스토어를 선택하는 경우 AWS외부의 암호화 키를 사용하여 보호해야 하는 워크로드로 사용을 제한합니다.



**공동 책임 모델**

표준 KMS 키는가 AWS KMS 소유하고 관리하는 HSMs에서 생성되고 사용되는 키 구성 요소를 사용합니다. KMS 키에 대한 액세스 제어 정책을 설정하고 KMS 키를 사용하여 리소스를 보호 AWS 서비스 하도록를 구성합니다.는 KMS 키에 있는 키 구성 요소의 보안, 가용성, 지연 시간 및 내구성에 대한 책임을 AWS KMS 집니다.

외부 키 스토어의 KMS 키는 외부 키 관리자의 키 구성 요소 및 작업에 의존합니다. 따라서 책임의 균형이 사용자의 방향으로 바뀝니다. 외부 키 관리자에서 암호화 키의 보안, 신뢰성, 내구성 및 성능에 대한 책임은 사용자에게 있습니다. AWS KMS 는 요청에 즉시 응답하고 외부 키 스토어 프록시와 통신하며 보안 표준을 유지할 책임이 있습니다. 모든 외부 키가 최소한 표준 사이퍼텍스트보다 강력한 AWS KMS 사이퍼텍스트를 저장하도록 하기 위해는 AWS KMS 먼저 KMS 키와 관련된 AWS KMS 키 구성 요소로 모든 일반 텍스트를 암호화한 다음, [*이중*](#concept-double-encryption) 암호화라고 하는 프로시저인 외부 키로 암호화하기 위해 외부 키 관리자에게 전송합니다. 결과적으로 AWS KMS 나 외부 키 구성 요소의 소유자는 이중 암호화된 사이퍼텍스트를 단독으로 복호화할 수 없습니다.

규정 및 성능 표준을 충족하는 외부 키 관리자를 유지 관리하고, [AWS KMS 외부 키 스토어 프록시 API 사양](https://github.com/aws/aws-kms-xksproxy-api-spec/)을 준수하는 외부 키 스토어 프록시를 제공 및 유지 관리하고, 키 구성 요소의 가용성 및 내구성을 보장할 책임은 사용자에게 있습니다. 또한 외부 키 스토어를 생성, 구성 및 유지 관리해야 합니다. 유지 관리하는 구성 요소로 인해 오류가 발생하는 경우 서비스가 과도한 중단 없이 리소스에 액세스할 AWS 수 있도록 오류를 식별하고 해결할 준비가 되어 있어야 합니다.는 문제의 원인과 가장 가능성이 높은 해결 방법을 결정하는 데 도움이 되는 [문제 해결 지침을](xks-troubleshooting.md) AWS KMS 제공합니다.

가 외부 키 스토어에 대해 기록하는 AWS KMS [Amazon CloudWatch 지표 및 차원](monitoring-cloudwatch.md#kms-metrics)을 검토합니다. AWS KMS 에서는 성능 및 운영 문제가 발생하기 전에 조기 징후를 감지할 수 있도록 외부 키 스토어를 모니터링하는 CloudWatch 경보를 생성할 것을 강력히 권장합니다.

**무엇이 바뀌고 있나요?**

외부 키 스토어는 대칭 암호화 KMS 키만 지원합니다. 내에서 AWS KMS는 [액세스 제어 정책 설정](authorize-xks-key-store.md) 및 키 [사용 모니터링을](monitoring-overview.md) 포함하여 다른 [고객 관리형 키를](concepts.md#customer-mgn-key) 관리하는 것과 거의 동일한 방식으로 외부 키 스토어에서 KMS 키를 사용하고 관리합니다. 동일한 파라미터와 동일한 API를 사용하여 모든 KMS 키에 사용하는 외부 키 스토어에서 KMS 키로 암호화 작업을 요청합니다. 가격도 표준 KMS 키와 동일합니다. 자세한 내용은 [외부 키 저장소의 KMS 키](keystore-external-key-manage.md) 및 [AWS Key Management Service 요금](https://aws.amazon.com/kms/pricing/)을 참조하세요.

그러나 외부 키 스토어를 사용하면 다음 원칙이 변경됩니다.
+ 키 작업의 가용성, 내구성 및 지연 시간에 대한 책임은 사용자에게 있습니다.
+ 외부 키 관리자 시스템의 개발, 구매, 운영 및 라이선스에 대한 모든 비용은 사용자의 책임입니다.
+ 에서 외부 키 스토어 프록시로의 모든 요청에 대해 [독립적인 권한 부여](authorize-xks-key-store.md#xks-proxy-authorization) AWS KMS 를 구현할 수 있습니다.
+ 외부 키 스토어 프록시의 모든 작업과 AWS KMS 요청과 관련된 외부 키 관리자의 모든 작업을 모니터링, 감사 및 로깅할 수 있습니다.

**어디에서 시작합니까?**

외부 키 스토어를 생성하고 관리하려면 [외부 키 스토어 프록시 연결 옵션을 선택하고](choose-xks-connectivity.md), [사전 조건을 수집하고](create-xks-keystore.md#xks-requirements), [외부 키 스토어를 생성하고 구성](create-xks-keystore.md)해야 합니다.

**할당량**

AWS KMS 는 연결 상태에 관계없이 [키 스토어와 외부 키 스토어를 모두 포함하여 각 및 리전에서 최대 10개의 사용자 지정](resource-limits.md) [키 스토어](https://docs.aws.amazon.com/kms/latest/developerguide/keystore-external.html)를 허용합니다. AWS 계정 [AWS CloudHSM](https://docs.aws.amazon.com/kms/latest/developerguide/keystore-cloudhsm.html) 또한 [외부 키 스토어에 KMS 키 사용](requests-per-second.md#rps-key-stores)에 대한 AWS KMS 요청 할당량이 있습니다.

외부 키 스토어 프록시에 대해 [VPC 프록시 연결](#concept-xks-connectivity)을 선택하는 경우 VPC, 서브넷 및 Network Load Balancer와 같은 필수 구성 요소에 할당량이 있을 수도 있습니다. 이러한 할당량에 대한 자세한 내용을 보려면 [Service Quotas 콘솔](https://console.aws.amazon.com/servicequotas/home)을 사용합니다.



**리전**

네트워크 지연 시간을 최소화하려면 [외부 키 관리자](#concept-ekm)와 가장 가까운 AWS 리전 에 외부 키 스토어 구성 요소를 생성합니다. 가능하면 네트워크 왕복 시간(RTT)이 35밀리초 이하인 리전을 선택합니다.

외부 키 스토어는 중국(베이징) 및 중국(닝샤)을 제외하고 AWS KMS 가 지원되는 모든 AWS 리전 에서 지원됩니다.

**지원되지 않는 기능**

AWS KMS 는 사용자 지정 키 스토어에서 다음 기능을 지원하지 않습니다.
+ [비대칭 KMS 키](symmetric-asymmetric.md)
+ [HMAC KMS 키](hmac.md)
+ [가져온 키 구성 요소가 있는 KMS 키](importing-keys.md)
+ [자동 키 교체](rotate-keys.md)
+ [다중 리전 키](multi-region-keys-overview.md)

**자세히 알아보기:**
+ *AWS News Blog*의 [AWS KMS KMS 외부 키 스토어 발표](https://aws.amazon.com/blogs/aws/announcing-aws-kms-external-key-store-xks/)

## 외부 키 스토어 개념
<a name="xks-concepts"></a>

외부 키 저장소에서 사용하는 기본 용어와 개념에 대해 알아봅니다.

### 외부 키 스토어
<a name="concept-external-key-store"></a>

*외부 키 스토어*는 사용자가 소유하고 관리하는 외부 키 관리자가 지원하는 AWS KMS [사용자 지정 키 스토어](key-store-overview.md#custom-key-store-overview) AWS 입니다. 외부 키 스토어의 각 KMS 키는 외부 키 관리자의 [외부 키](#concept-external-key)와 연결됩니다. 암호화 또는 복호화를 위해 외부 키 스토어에서 KMS 키를 사용하는 경우 HYOK(*Hold your Own Keys*)로 알려진 배열인 외부 키를 사용하여 외부 키 관리자에서 작업이 수행됩니다. 이 기능은 자체 외부 키 관리자에서 암호화 키를 유지해야 하는 조직을 위해 설계되었습니다.

외부 키 스토어는 AWS 리소스를 보호하는 암호화 키와 작업이 사용자가 제어하는 외부 키 관리자에 남아 있도록 합니다.는 데이터를 암호화 및 해독하기 위해 외부 키 관리자에게 요청을 AWS KMS 보내지만 외부 키를 생성, 삭제 또는 관리할 AWS KMS 수는 없습니다. 에서 외부 키 관리자 AWS KMS 로의 모든 요청은 사용자가 제공, 소유 및 관리하는 [외부 키 스토어 프록시](#concept-xks-proxy) 소프트웨어 구성 요소에 의해 조정됩니다.

AWS AWS KMS [고객 관리형 키를](concepts.md) 지원하는 서비스는 외부 키 스토어의 KMS 키를 사용하여 데이터를 보호할 수 있습니다. 결과적으로 데이터는 궁극적으로 외부 키 관리자의 암호화 작업을 사용하여 키로 보호됩니다.

외부 키 스토어의 KMS 키는 표준 KMS 키와 신뢰 모델, [공동 규정 배열](#xks-shared-responsibility) 및 성능 기대치가 근본적으로 다릅니다. 외부 키 스토어 사용 시 키 구성 요소 및 암호화 작업의 보안 및 무결성에 대한 책임은 사용자에게 있습니다. 외부 키 스토어의 KMS 키 가용성 및 지연 시간은 하드웨어, 소프트웨어, 네트워킹 구성 요소 및 AWS KMS 와 외부 키 관리자 간 거리의 영향을 받습니다. 또한 외부 키 관리자와 통신하는 데 필요한 네트워킹 및 로드 밸런싱 인프라에 대해 추가 비용이 발생할 수 있습니다. AWS KMS

보다 광범위한 데이터 보호 전략의 일부로 외부 키 스토어를 사용할 수 있습니다. 보호하는 각 AWS 리소스에 대해 외부 키 스토어에 KMS 키가 필요한 리소스와 표준 KMS 키로 보호할 수 있는 리소스를 결정할 수 있습니다. 이를 통해 특정 데이터 분류, 애플리케이션 또는 프로젝트에 대한 KMS 키를 유연하게 선택할 수 있습니다.

### 외부 키 관리자
<a name="concept-ekm"></a>

외부 키 관리자**는 256비트 AES 대칭 키를 생성하고 대칭 암호화 및 복호화를 수행할 수 있는 AWS 외부의 구성 요소입니다. 외부 키 스토어의 외부 키 관리자는 물리적 하드웨어 보안 모듈(HSM), 가상 HSM 또는 HSM 구성 요소가 있거나 없는 소프트웨어 키 관리자일 수 있습니다. 온프레미스 AWS, 로컬 또는 원격 데이터 센터, 클라우드 등 외부 어디에나 위치할 수 있습니다. 단일 외부 키 관리자 또는 암호화 키를 공유하는 여러 관련 키 관리자 인스턴스(예: HSM 클러스터)에서 외부 키 스토어를 지원할 수 있습니다. 외부 키 스토어는 여러 공급업체의 다양한 외부 관리자를 지원하도록 설계되었습니다. 외부 키 관리자에 연결하는 방법에 대한 자세한 내용은 [외부 키 저장소 프록시 연결 옵션 선택](choose-xks-connectivity.md) 단원을 참조하세요.

### 외부 키
<a name="concept-external-key"></a>

외부 키 스토어의 각 KMS 키는 외부 키**라고 하는 [외부 키 관리자](#concept-ekm)의 암호화 키와 연결됩니다. 외부 키 스토어에서 KMS 키로 암호화하거나 복호화하면 외부 키를 사용하여 [외부 키 관리자](#concept-ekm)에서 암호화 작업이 수행됩니다.

**주의**  
외부 키는 KMS 키 작동에 필수적입니다. 외부 키가 분실되거나 삭제되면 연결된 KMS 키로 암호화된 사이퍼텍스트를 복구할 수 없습니다.

외부 키 스토어의 경우 외부 키는 활성화되고 암호화와 복호화를 수행할 수 있는 256비트 AES 키여야 합니다. 자세한 외부 키 요구 사항은 [외부 키 스토어의 KMS 키 요구 사항](create-xks-keys.md#xks-key-requirements) 섹션을 참조하세요.

AWS KMS 는 외부 키를 생성, 삭제 또는 관리할 수 없습니다. 암호화 키 구성 요소는 외부 키 관리자를 떠나지 않습니다. 외부 키 스토어에서 KMS 키를 생성할 때는 외부 키의 ID(`XksKeyId`)를 제공합니다. 외부 키 관리자가 외부 키 ID와 연결된 키 구성 요소를 교체할 수 있지만 KMS 키와 연결된 외부 키 ID는 변경할 수 없습니다.

외부 키 스토어의 KMS 키에는 외부 키 외에도 AWS KMS 키 구성 요소가 있습니다. KMS 키로 보호되는 데이터는 먼저 AWS KMS 키 구성 요소를 AWS KMS 사용하여 암호화한 다음 외부 키를 사용하여 외부 키 관리자가 암호화합니다. 이 [이중 암호화](#concept-double-encryption) 프로세스를 통해 KMS 키로 보호되는 사이퍼텍스트가 항상 AWS KMS으로만 보호되는 사이퍼텍스트 이상으로 강력해집니다.

많은 암호화 키에는 서로 다른 유형의 식별자가 있습니다. 외부 키 스토어에 KMS 키를 생성할 때 [외부 키 스토어 프록시](#concept-xks-proxy)가 외부 키를 참조하는 데 사용하는 외부 키의 ID를 제공하세요. 잘못된 식별자를 사용하면 외부 키 스토어에서 KMS 키를 생성하려는 시도가 실패합니다.

### 외부 키 스토어 프록시
<a name="concept-xks-proxy"></a>

*외부 키 스토어 프록시*(“XKS 프록시”)는와 외부 키 관리자 간의 모든 통신을 매개하는 고객 소유 AWS KMS 및 고객 관리형 소프트웨어 애플리케이션입니다. 또한 일반 AWS KMS 요청을 공급업체별 외부 키 관리자가 이해하는 형식으로 변환합니다. 외부 키 스토어 프록시는 외부 키 스토어에 필요합니다. 각 외부 키 스토어는 하나의 외부 키 스토어 프록시와 연결됩니다.

![\[외부 키 스토어 프록시\]](http://docs.aws.amazon.com/ko_kr/kms/latest/developerguide/images/xks-proxy-concept-40.png)


AWS KMS 는 외부 키를 생성, 삭제 또는 관리할 수 없습니다. 암호화 키 구성 요소는 절대 외부 키 관리자를 떠나지 않습니다. AWS KMS 와 외부 키 관리자 간의 모든 통신은 외부 키 스토어 프록시에 의해 조정됩니다.는 외부 키 스토어 프록시에 요청을 AWS KMS 보내고 외부 키 스토어 프록시로부터 응답을 받습니다. 외부 키 스토어 프록시는에서 외부 키 관리자 AWS KMS 로 요청을 전송하고 외부 키 관리자의 응답을 로 다시 전송하는 역할을 합니다. AWS KMS

외부 키 스토어의 외부 키 스토어 프록시는 사용자가 소유하고 관리하며 유지 관리 및 운영에 대한 책임은 사용자에게 있습니다. 공급업체로부터 프록시 애플리케이션을 AWS KMS 게시하거나 구매하는 오픈 소스 외부 키 스토어 [프록시 API 사양을 기반으로 외부 키 스토어](https://github.com/aws/aws-kms-xksproxy-api-spec/) 프록시를 개발할 수 있습니다. 외부 키 스토어 프록시는 외부 키 관리자에 포함될 수 있습니다. 프록시 개발을 지원하기 위해는 샘플 외부 키 스토어 프록시([aws-kms-xks-proxy](https://github.com/aws-samples/aws-kms-xks-proxy))와 외부 키 스토어 프록시가 사양을 준수하는지 확인하는 테스트 클라이언트([xks-kms-xksproxy-test-client](https://github.com/aws-samples/aws-kms-xksproxy-test-client)) AWS KMS 도 제공합니다.

프록시 AWS KMS는에 인증하기 위해 서버 측 TLS 인증서를 사용합니다. 프록시에 인증하기 위해는 SigV4 프록시 [인증 자격](#concept-xks-credential) 증명을 사용하여 외부 키 스토어 프록시에 대한 모든 요청에 AWS KMS 서명합니다.

외부 키 스토어 프록시는 다음 암호화 제품군 중 하나 이상을 포함하는 HTTP/1.1 이상 및 TLS 1.2 이상을 지원해야 합니다.
+ TLS\$1AES\$1256\$1GCM\$1SHA384(TLS 1.3)
+ TLS\$1CHACHA20\$1POLY1305\$1SHA256(TLS 1.3)
**참고**  
 AWS GovCloud (US) Region 는 TLS\$1CHACHA20\$1POLY1305\$1SHA256을 지원하지 않습니다.
+ TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1256\$1GCM\$1SHA384(TLS 1.2)
+ TLS\$1ECDHE\$1ECDSA\$1WITH\$1AES\$1256\$1GCM\$1SHA384(TLS 1.2)

외부 키 스토어에서 KMS 키를 생성하고 사용하려면 먼저 외부 키 스토어 프록시에 [외부 키 스토어를 연결](xks-connect-disconnect.md)해야 합니다. 요청 시 프록시에서 외부 키 스토어를 연결 해제할 수도 있습니다. 이렇게 하면 외부 키 스토어의 모든 KMS 키를 [사용할 수 없게](key-state.md) 되어 암호화 작업에 사용할 수 없습니다.

### 외부 키 스토어 프록시 연결
<a name="concept-xks-connectivity"></a>

외부 키 스토어 프록시 연결("XKS 프록시 연결")은가 외부 키 스토어 프록시와 통신하는 데 AWS KMS 사용하는 방법을 설명합니다.

외부 키 스토어를 생성할 때 프록시 연결 옵션을 지정하면 해당 옵션이 외부 키 스토어의 속성이 됩니다. 사용자 지정 키 스토어 속성을 업데이트하여 프록시 연결 옵션을 변경할 수 있지만 외부 키 스토어 프록시가 여전히 동일한 외부 키에 액세스할 수 있는지 확인해야 합니다.

AWS KMS 는 다음과 같은 연결 옵션을 지원합니다.
+ [퍼블릭 엔드포인트 연결](choose-xks-connectivity.md#xks-connectivity-public-endpoint) - 인터넷을 통해 외부 키 스토어 프록시에 대한 요청을 제어하는 퍼블릭 엔드포인트로 AWS KMS 보냅니다. 이 옵션은 생성 및 유지 관리가 간단하지만 모든 설치에 대한 보안 요구 사항을 충족하지 못할 수 있습니다.
+ [VPC 엔드포인트 서비스 연결](choose-xks-connectivity.md#xks-vpc-connectivity) - 사용자가 생성하고 유지 관리하는 Amazon Virtual Private Cloud(Amazon VPC) 엔드포인트 서비스에 요청을 AWS KMS 보냅니다. Amazon VPC 내에서 외부 키 스토어 프록시를 호스팅하거나 외부에서 외부 키 스토어 프록시를 호스팅 AWS 하고 통신에만 Amazon VPC를 사용할 수 있습니다. 또한 외부 키 저장소를 다른 AWS 계정이 소유한 Amazon VPC 엔드포인트 서비스에 연결할 수도 있습니다.

외부 키 스토어 프록시 연결 옵션에 대한 자세한 내용은 [외부 키 저장소 프록시 연결 옵션 선택](choose-xks-connectivity.md) 섹션을 참조하세요.

### 외부 키 스토어 프록시 인증 자격 증명
<a name="concept-xks-credential"></a>

외부 키 스토어 프록시에 인증하기 위해는 [Signature V4(SigV4)](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) 인증 자격 증명을 사용하여 외부 키 스토어 프록시에 대한 모든 요청에 AWS KMS 서명합니다. 프록시에서 인증 자격 증명을 설정하고 유지 관리한 다음 외부 저장소를 생성할 AWS KMS 때이 자격 증명을에 제공합니다.

**참고**  
가 XKS 프록시에 대한 요청에 서명하는 데 AWS KMS 사용하는 SigV4 자격 증명은의 AWS Identity and Access Management 보안 주체와 연결된 모든 SigV4 자격 증명과 관련이 없습니다 AWS 계정. 외부 키 스토어 프록시에 IAM SigV4 자격 증명을 재사용하지 마세요.

각 프록시 인증 자격 증명은 두 부분으로 구성됩니다. 외부 키 스토어를 생성하거나 외부 키 스토어의 인증 자격 증명을 업데이트할 때 두 부분을 모두 제공해야 합니다.
+ 액세스 키 ID: 비밀 액세스 키를 식별합니다. 이 ID를 일반 텍스트로 제공할 수 있습니다.
+ 보안 액세스 키: 보안 인증의 보안 암호 부분입니다. 보안 인증 정보를 저장하기 전에 보안 암호 액세스 키를 AWS KMS 암호화합니다.

잘못된 값을 입력하거나 프록시에서 자격 증명을 변경하거나 프록시가 자격 증명을 교체하는 경우와 같이 언제든지 [자격 증명 설정을 편집](update-xks-keystore.md)할 수 있습니다. 외부 키 스토어 프록시에 대한 인증에 대한 AWS KMS 자세한 내용은 AWS KMS 외부 키 스토어 프록시 API 사양의 [인증을](https://github.com/aws/aws-kms-xksproxy-api-spec/blob/main/xks_proxy_api_spec.md#authentication) 참조하세요.

외부 키 스토어에서 KMS 키를 AWS 서비스 사용하는를 중단하지 않고 자격 증명을 교체할 수 있도록 하려면 외부 키 스토어 프록시가 2개 이상의 유효한 인증 자격 증명을 지원하는 것이 좋습니다 AWS KMS. 이렇게 하면 AWS KMS에 새 자격 증명을 제공하는 동안 이전 자격 증명이 계속 작동합니다.

프록시 인증 자격 증명의 수명을 추적하는 데 도움이 되도록는 Amazon CloudWatch 지표 [XksProxyCredentialAge](monitoring-cloudwatch.md#metric-xks-proxy-credential-age)를 AWS KMS 정의합니다. 이 지표를 사용하여 자격 증명의 사용 기간이 설정한 임계값에 도달하면 알려주는 CloudWatch 경보를 생성할 수 있습니다.

### 프록시 API
<a name="concept-proxy-apis"></a>

 AWS KMS 외부 키 스토어를 지원하려면 [외부 키 스토어 프록시](#concept-xks-proxy)가 외부 키 스토어 프록시 APIs 사양에 설명된 대로 필요한 프록시 API를 구현해야 합니다. [AWS KMS](https://github.com/aws/aws-kms-xksproxy-api-spec/) 이러한 프록시 API 요청은가 프록시로 AWS KMS 보내는 유일한 요청입니다. 이러한 요청을 직접 전송하지는 않지만 이에 대해 알면 외부 키 스토어 또는 해당 프록시에서 발생할 수 있는 문제를 해결하는 데 도움이 될 수 있습니다. 예를 들어는 외부 키 스토어에 대한 [Amazon CloudWatch 지표](monitoring-cloudwatch.md)에 이러한 API 호출의 지연 시간 및 성공률에 대한 정보를 AWS KMS 포함합니다. 자세한 내용은 [외부 키 저장소 모니터링](xks-monitoring.md)을 참조하세요.

다음 표에는 각 프록시 API와 그에 대한 설명이 나와 있습니다. 또한 프록시 API에 대한 호출을 트리거하는 AWS KMS 작업과 프록시 API와 관련된 모든 AWS KMS 작업 예외도 포함됩니다.


| 프록시 API | 설명 | 관련 AWS KMS 작업 | 
| --- | --- | --- | 
| Decrypt | AWS KMS 는 암호 해독할 사이퍼텍스트와 사용할 [외부 키](#concept-external-key)의 ID를 전송합니다. 필수 암호화 알고리즘은 AES\$1GCM입니다. | [Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html), [ReEncrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_ReEncrypt.html) | 
| 암호화 | AWS KMS 는 암호화할 데이터와 사용할 [외부 키](#concept-external-key)의 ID를 전송합니다. 필수 암호화 알고리즘은 AES\$1GCM입니다. | [Encrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Encrypt.html), [GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html), [GenerateDataKeyWithoutPlaintext](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyWithoutPlaintext.html), [ReEncrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_ReEncrypt.html) | 
| GetHealthStatus | AWS KMS 는 프록시 및 외부 키 관리자의 상태에 대한 정보를 요청합니다.각 외부 키 관리자의 상태는 다음 중 하나일 수 있습니다.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/kms/latest/developerguide/keystore-external.html) | [CreateCustomKeyStore](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateCustomKeyStore.html)([퍼블릭 엔드포인트 연결](choose-xks-connectivity.md#xks-connectivity-public-endpoint)용), [ConnectCustomKeyStore](https://docs.aws.amazon.com/kms/latest/APIReference/API_ConnectCustomKeyStore.html)([VPC 엔드포인트 서비스 연결](choose-xks-connectivity.md#xks-vpc-connectivity)용)모든 외부 키 관리자 인스턴스가 `Unavailable`인 경우 키 스토어를 생성하거나 연결하려는 시도는 [`XksProxyUriUnreachableException`](xks-troubleshooting.md#fix-xks-latency)과 함께 실패합니다. | 
| GetKeyMetadata | AWS KMS 는 [외부 키](#concept-external-key) 스토어의 KMS 키와 연결된 외부 키에 대한 정보를 요청합니다.응답에는 키 사양(`AES_256`), 키 사용(`[ENCRYPT, DECRYPT]`) 및 외부 키가 `ENABLED`인지 아니면 `DISABLED`인지가 포함됩니다. | [CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html)키 사양이 `AES_256`이 아니거나, 키 사용이 `[ENCRYPT, DECRYPT]`가 아니거나, 상태가 `DISABLED`인 경우 `XksKeyInvalidConfigurationException`과 함께 `CreateKey` 작업이 실패합니다. | 

### 이중 암호화
<a name="concept-double-encryption"></a>

외부 키 스토어의 KMS 키로 암호화된 데이터는 두 번 암호화됩니다. 먼저는 KMS AWS KMS 키와 관련된 키 구성 요소로 데이터를 AWS KMS 암호화합니다. 그런 다음 AWS KMS로 암호화된 사이퍼텍스트가 [외부 키](#concept-external-key)를 사용하여 [외부 키 관리자](#concept-ekm)에 의해 암호화됩니다. 이 프로세스를 이중 암호화**라고 합니다.

이중 암호화를 사용하면 외부 키 스토어의 KMS 키로 암호화된 데이터가 표준 KMS 키로 암호화된 사이퍼텍스트 이상으로 강력해집니다. 또한에서 외부 키 스토어 프록시 AWS KMS 로 전송되는 일반 텍스트를 보호합니다. 이중 암호화를 사용하면 사이퍼텍스트를 완벽하게 제어할 수 있습니다. 외부 프록시를 통해 외부 키에 대한 AWS 액세스를 영구적으로 취소하면 AWS 에 남아 있는 사이퍼텍스트가 효과적으로 암호 파쇄됩니다.

![\[외부 키 스토어의 KMS 키로 보호되는 데이터의 이중 암호화\]](http://docs.aws.amazon.com/ko_kr/kms/latest/developerguide/images/xks-double-encrypt-40.png)


이중 암호화를 활성화하기 위해 외부 키 스토어의 각 KMS 키에는 두 개**의 암호화 백업 키가 있습니다.
+ KMS AWS KMS 키에 고유한 키 구성 요소입니다. 이 키 구성 요소는 AWS KMS [FIPS 140-3 보안 수준 3](https://csrc.nist.gov/projects/cryptographic-module-validation-program/certificate/4884) 인증 하드웨어 보안 모듈(HSMs)에서만 생성되고 사용됩니다.
+ 외부 키 관리자의 [외부 키](#concept-external-key).

이중 암호화는 다음과 같은 효과가 있습니다.
+ AWS KMS 는 외부 키 스토어 프록시를 통해 외부 키에 액세스하지 않고 외부 키 스토어의 KMS 키로 암호화된 사이퍼텍스트를 해독할 수 없습니다.
+ 외부 키 구성 요소가 AWS있더라도 외부 키 스토어의 KMS 키로 암호화된 사이퍼텍스트는 복호화할 수 없습니다.
+ 외부 키 구성 요소가 있더라도 외부 키 스토어에서 삭제된 KMS 키를 다시 생성할 수 없습니다. 각 KMS 키에는 대칭 사이퍼텍스트에 포함된 고유한 메타데이터가 있습니다. 새 KMS 키는 동일한 외부 키 구성 요소를 사용하더라도 원래 키로 암호화된 사이퍼텍스트를 복호화할 수 없습니다.

실제 이중 암호화의 예는 [외부 키 스토어 작동 방식](#xks-how-it-works) 섹션을 참조하세요.

## 외부 키 스토어 작동 방식
<a name="xks-how-it-works"></a>

[외부 키 저장소](#concept-external-key-store), [외부 키 저장소 프록시](#concept-xks-proxy) 및 [외부 키 관리자](#concept-ekm)가 함께 작동하여 AWS 리소스를 보호합니다. 다음 절차는 KMS 키로 보호되는 고유한 데이터 키로 각 객체를 암호화하는 일반적인 AWS 서비스 의 암호화 워크플로를 보여줍니다. 이 경우 객체를 보호하기 위해 외부 키 스토어에서 KMS 키를 선택했습니다. 이 예제는가 [이중 암호화](#concept-double-encryption)를 AWS KMS 사용하여 전송 중인 데이터 키를 보호하고 외부 키 스토어의 KMS 키로 생성된 사이퍼텍스트가 항상 최소한 키 구성 요소가 있는 표준 대칭 KMS 키로 암호화된 사이퍼텍스트만큼 강력한지 확인하는 방법을 보여줍니다 AWS KMS.

와 통합 AWS 서비스 되는 각 실제에서 사용하는 암호화 방법은 AWS KMS 다양합니다. 자세한 내용은 AWS 서비스 설명서의 보안 장에 있는 '데이터 보호' 주제를 참조하세요.

![\[외부 키 스토어 작동 방식\]](http://docs.aws.amazon.com/ko_kr/kms/latest/developerguide/images/xks-how-it-works-jan26.png)


1.  AWS 서비스 리소스에 새 객체를 추가합니다. 객체를 암호화하기 위해는 외부 키 스토어의 KMS 키를 AWS KMS 사용하여 [GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html) 요청을에 AWS 서비스 보냅니다.

1. AWS KMS 는 256비트 대칭 [데이터 키를](data-keys.md) 생성하고 외부 키 스토어 프록시를 통해 외부 키 관리자에게 일반 텍스트 데이터 키의 사본을 보낼 준비를 합니다.는 외부 키 스토어의 KMS 키와 연결된 [AWS KMS 키 구성 요소로](#concept-double-encryption) 일반 텍스트 데이터 키를 암호화하여 [이중 암호화](#concept-double-encryption) 프로세스를 AWS KMS 시작합니다.

1. AWS KMS 는 외부 키 스토어와 연결된 외부 키 스토어 프록시에 [암호화](#concept-proxy-apis) 요청을 보냅니다. 요청에는 암호화할 데이터 키 사이퍼텍스트와 KMS 키와 연결된 [외부](#concept-external-key) 키의 ID가 포함됩니다.는 외부 키 스토어 프록시에 대한 [프록시 인증 자격 증명을](#concept-xks-credential) 사용하여 요청에 AWS KMS 서명합니다.

   데이터 키의 일반 텍스트 사본은 외부 키 스토어 프록시로 전송되지 않습니다.

1. 외부 키 스토어 프록시는 요청을 인증한 다음 암호화 요청을 외부 키 관리자에게 전달합니다.

   일부 외부 키 스토어 프록시는 선택한 보안 주체만 특정 조건에서 작업을 수행할 수 있도록 허용하는 선택적 [권한 부여 정책](authorize-xks-key-store.md#xks-proxy-authorization)도 구현합니다.

1. 외부 키 관리자는 지정된 외부 키를 사용하여 데이터 키 사이퍼텍스트를 암호화합니다. 외부 키 관리자는 이중 암호화된 데이터 키를 외부 키 스토어 프록시로 반환하고, 외부 키 스토어 프록시는 이를 AWS KMS로 반환합니다.

1. AWS KMS 는 일반 텍스트 데이터 키와 해당 데이터 키의 이중 암호화 사본을에 반환합니다 AWS 서비스.

1. 는 일반 텍스트 데이터 키를 AWS 서비스 사용하여 리소스 객체를 암호화하고, 일반 텍스트 데이터 키를 삭제하고, 암호화된 데이터 키를 암호화된 객체와 함께 저장합니다.

   일부 AWS 서비스 는 여러 객체에 사용하거나 리소스가 사용 중인 동안 재사용하기 위해 일반 텍스트 데이터 키를 캐시할 수 있습니다. 자세한 내용은 [사용할 수 없는 KMS 키가 데이터 키에 미치는 영향](unusable-kms-keys.md)을 참조하세요.

암호화된 객체를 복호화하려면가 [복호화](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) 요청 AWS KMS 에서 암호화된 데이터 키를 로 다시 전송 AWS 서비스 해야 합니다. 암호화된 데이터 키를 복호화하려면 암호화된 데이터 키를 외부 키의 ID와 함께 외부 키 스토어 프록시로 다시 전송해야 AWS KMS 합니다. 어떤 이유로든 외부 키 스토어 프록시에 대한 복호화 요청이 실패하면 AWS KMS 는 암호화된 데이터 키를 복호화할 수 없으며는 암호화된 객체를 복호화할 AWS 서비스 수 없습니다.

# 외부 키 저장소에 대한 액세스 제어
<a name="authorize-xks-key-store"></a>

표준 KMS 키와 함께 사용하는 [키 정책](key-policies.md), [IAM 정책](iam-policies.md) 및 [권한 부여](grants.md)와 같은 모든 AWS KMS 액세스 제어 기능은 외부 키 스토어의 KMS 키에 대해 동일한 방식으로 작동합니다. IAM 정책을 사용하여 외부 키 스토어를 생성하고 관리하는 API 작업에 대한 액세스를 제어할 수 있습니다. IAM 정책 및 키 정책을 사용하여 외부 키 스토어 AWS KMS keys 의에 대한 액세스를 제어합니다. AWS 조직의 [서비스 제어 정책과](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html) [VPC 엔드포인트 정책을](https://docs.aws.amazon.com/vpc/latest/privatelink/interface-endpoints.html#edit-vpc-endpoint-policy) 사용하여 외부 키 스토어의 KMS 키에 대한 액세스를 제어할 수도 있습니다.

사용자와 역할에 수행할 가능성이 있는 작업에 필요한 권한만 제공하는 것이 좋습니다.

**Topics**
+ [

## 외부 키 스토어 관리자 권한 부여
](#authorize-xks-managers)
+ [

## 외부 키 스토어의 KMS 키 사용자에게 권한 부여
](#authorize-xks-users)
+ [

## 외부 키 스토어 프록시와 통신 AWS KMS 할 수 있는 권한 부여
](#allowlist-kms-xks)
+ [

## 외부 키 스토어 프록시 권한 부여(선택 사항)
](#xks-proxy-authorization)
+ [

## mTLS 인증(사용되지 않음)
](#xks-mtls)

## 외부 키 스토어 관리자 권한 부여
<a name="authorize-xks-managers"></a>

외부 키 스토어를 생성하고 관리하는 보안 주체는 사용자 지정 키 스토어 작업에 대한 권한을 필요로 합니다. 다음 목록에는 외부 키 스토어 관리자에게 필요한 최소 권한이 설명되어 있습니다. 사용자 지정 키 스토어는 AWS 리소스가 아니므로 다른의 보안 주체에 대해 외부 키 스토어에 권한을 제공할 수 없습니다 AWS 계정.
+ `kms:CreateCustomKeyStore`
+ `kms:DescribeCustomKeyStores`
+ `kms:ConnectCustomKeyStore`
+ `kms:DisconnectCustomKeyStore`
+ `kms:UpdateCustomKeyStore`
+ `kms:DeleteCustomKeyStore`

[Amazon VPC 엔드포인트 서비스 연결](choose-xks-connectivity.md#xks-vpc-connectivity)로 외부 키 스토어를 생성하고 VPC 엔드포인트 서비스를 다른이 소유하려면 다음 권한도 필요합니다 AWS 계정.
+ `ec2:DescribeVPCEndpointServices`

외부 키 스토어를 생성하는 보안 주체는 외부 키 스토어 구성 요소를 생성하고 구성할 수 있는 권한을 필요로 합니다. 보안 주체는 자신의 계정에서만 외부 키 스토어를 생성할 수 있습니다. [VPC 엔드포인트 서비스 연결](choose-xks-connectivity.md#xks-vpc-connectivity)이 있는 외부 키 스토어를 생성하려면 보안 주체에 다음 구성 요소를 생성할 수 있는 권한이 있어야 합니다.
+ Amazon VPC
+ 퍼블릭 및 프라이빗 서브넷
+ Network Load Balancer 및 대상 그룹
+ Amazon VPC 엔드포인트 서비스

자세한 내용은 [Amazon VPC용 Identity and Access Management](https://docs.aws.amazon.com/vpc/latest/userguide/security-iam.html), [VPC 엔드포인트 및 VPC 엔드포인트 서비스에 대한 ID 및 액세스 관리](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-iam.html) 및 [Elastic Load Balancing API 권한](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/elb-api-permissions.html)을 참조하세요.

## 외부 키 스토어의 KMS 키 사용자에게 권한 부여
<a name="authorize-xks-users"></a>

외부 키 스토어 AWS KMS keys 에서를 생성하고 관리하는 보안 주체는에서 KMS 키를 생성하고 관리하는 보안 주체와 [동일한 권한이](create-keys.md#create-key-permissions) 필요합니다 AWS KMS. 외부 키 스토어의 KMS 키에 대한 [기본 키 정책](key-policy-default.md)은 AWS KMS의 KMS 키에 대한 기본 키 정책과 동일합니다. 태그와 별칭을 사용하여 KMS 키에 대한 액세스를 제어하는 [속성 기반 액세스 제어](abac.md)(ABAC)는 외부 키 스토어의 KMS 키에도 유효합니다.

[암호화 작업](manage-cmk-keystore.md#use-cmk-keystore)을 위해 사용자 지정 키 스토어에서 KMS 키를 사용하는 보안 주체에게는 [kms:Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) 같은 암호화 작업을 KMS 키에서 수행할 수 있는 권한이 필요합니다. IAM 또는 키 정책에서 이러한 권한을 제공할 수 있습니다. 하지만 사용자 지정 키 스토어에서 KMS 키를 사용하기 위해 어떠한 추가 권한도 필요하지 않습니다.

외부 키 스토어의 KMS 키에만 적용되는 권한을 설정하려면 값이 `EXTERNAL_KEY_STORE`인 [`kms:KeyOrigin`](conditions-kms.md#conditions-kms-key-origin) 정책 조건을 사용합니다. 이 조건을 사용하여 [kms:CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html) 권한 또는 KMS 키 리소스와 관련된 모든 권한을 제한할 수 있습니다. 예를 들어 다음 IAM 정책은 KMS 키가 외부 키 스토어에 있는 경우 연결된 ID가 계정의 모든 KMS 키에 대해 지정된 작업을 호출하도록 허용합니다. 권한을 외부 키 스토어의 KMS 키와의 KMS 키로 제한할 수 AWS 계정있지만 계정의 특정 외부 키 스토어로 제한할 수는 없습니다.

```
{
  "Sid": "AllowKeysInExternalKeyStores",
  "Effect": "Allow",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:DescribeKey"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringEquals": {
      "kms:KeyOrigin": "EXTERNAL_KEY_STORE"
    }
  }
}
```

## 외부 키 스토어 프록시와 통신 AWS KMS 할 수 있는 권한 부여
<a name="allowlist-kms-xks"></a>

AWS KMS 는 사용자가 제공한 외부 키 [스토어 프록시를 통해서만 외부 키](keystore-external.md#concept-xks-proxy) 관리자와 통신합니다. AWS KMS 는 사용자가 지정한 외부 키 스토어 프록시 인증 자격 증명으로 [서명 버전 4(SigV4) 프로세스를](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) 사용하여 요청에 서명하여 프록시에 인증합니다. [외부 키 스토어 프록시 인증 자격 증명](keystore-external.md#concept-xks-credential) 외부 키 스토어 프록시에 [퍼블릭 엔드포인트 연결을](choose-xks-connectivity.md#xks-connectivity-public-endpoint) 사용하는 경우 AWS KMS 에 추가 권한이 필요하지 않습니다.

그러나 [VPC 엔드포인트 서비스 연결을](choose-xks-connectivity.md#xks-vpc-connectivity) 사용하는 경우 Amazon VPC 엔드포인트 서비스에 대한 인터페이스 엔드포인트를 생성할 수 있는 AWS KMS 권한을 부여해야 합니다. 이 권한은 외부 키 스토어 프록시가 VPC에 있는지 아니면 외부 키 스토어 프록시가 다른 위치에 있는지에 관계없이 필요하지만는 VPC 엔드포인트 서비스를 사용하여 통신합니다 AWS KMS.

가 인터페이스 엔드포인트를 생성 AWS KMS 하도록 허용하려면 [Amazon VPC 콘솔](https://docs.aws.amazon.com/vpc/latest/privatelink/configure-endpoint-service.html#add-remove-permissions) 또는 [ModifyVpcEndpointServicePermissions](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyVpcEndpointServicePermissions.html) 작업을 사용합니다. 보안 주체 `cks.kms.<region>.amazonaws.com`에 대한 권한을 허용합니다.

Amazon VPC 엔드포인트 서비스를 외부 키 스토어(XKS) 소유 이외의 AWS 계정 다른에서 AWS 계정 소유한 경우 VPC 엔드포인트 서비스에 대한 XKS 액세스도 허용해야 합니다. 이렇게 하려면 [XKS AWS 계정 ID를 Amazon VPC 엔드포인트 서비스의 보안 주체로 허용 목록에](https://docs.aws.amazon.com/vpc/latest/privatelink/configure-endpoint-service.html#add-remove-permissions) 추가하세요.

------
#### [ Same AWS 계정 ]

VPC 엔드포인트 서비스를 외부 키 스토어 AWS 계정 와 동일한에서 소유한 경우 VPC 엔드포인트 서비스에 대한 보안 **주체 허용** 목록에 AWS KMS 를 추가해야 합니다.

다음 예제에서는 [https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-vpc-endpoint-service-permissions.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-vpc-endpoint-service-permissions.html) AWS CLI 명령을 사용하여 AWS KMS 가 미국 서부(오레곤)(us-west-2) 리전에서 지정된 VPC 엔드포인트 서비스에 연결하도록 허용합니다. 이 명령을 사용하기 전에 Amazon VPC 서비스 ID 및를 구성에 유효한 AWS 리전 값으로 바꿉니다.

```
modify-vpc-endpoint-service-permissions
--service-id vpce-svc-12abc34567def0987
--add-allowed-principals '["cks.kms.us-west-2.amazonaws.com"]'
```

이 권한을 제거하려면 [Amazon VPC 콘솔](https://docs.aws.amazon.com/vpc/latest/privatelink/configure-endpoint-service.html#add-remove-permissions) 또는 `RemoveAllowedPrincipals` 파라미터와 함께 [ModifyVpcEndpointServicePermissions](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyVpcEndpointServicePermissions.html)를 사용합니다.

------
#### [ Cross AWS 계정 ]

VPC 엔드포인트 서비스를 다른이 소유한 경우 VPC 엔드포인트 서비스의 보안 **주체 허용** 목록에 AWS KMS 및 외부 키 스토어를 모두 추가 AWS 계정해야 합니다.

다음 예제에서는 [https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-vpc-endpoint-service-permissions.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-vpc-endpoint-service-permissions.html) AWS CLI 명령을 사용하여 AWS KMS 및 외부 키 스토어(XKS)가 모두 미국 서부(오레곤)(us-west-2) 리전에서 지정된 VPC 엔드포인트 서비스에 연결할 수 있도록 허용합니다. 이 명령을 사용하기 전에 Amazon VPC 서비스 ID, AWS 리전및 IAM 위탁자 ARN을 구성에 유효한 값으로 바꾸세요. IAM 보안 주체는 XKS 소유자의 보안 주체로 대체되어야 합니다 AWS 계정.

이 예제에서 `arn:aws:iam::123456789012:role/cks_role`는 XKS 소유자 계정의 IAM 위탁자이며, XKS를 생성, 업데이트 또는 VPC 엔드포인트 서비스에 연결하는 데 사용됩니다. XKS 소유자 계정의 모든 위탁자가 VPC 엔드포인트 서비스에 액세스하도록 허용하려면 `arn:aws:iam::123456789012:root`을 지정할 수 있습니다.

```
modify-vpc-endpoint-service-permissions
--service-id vpce-svc-12abc34567def0987
--add-allowed-principals '["cks.kms.us-west-2.amazonaws.com", "arn:aws:iam::123456789012:role/cks_role"]'
```

이 권한을 제거하려면 [Amazon VPC 콘솔](https://docs.aws.amazon.com/vpc/latest/privatelink/configure-endpoint-service.html#add-remove-permissions) 또는 `RemoveAllowedPrincipals` 파라미터와 함께 [ModifyVpcEndpointServicePermissions](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyVpcEndpointServicePermissions.html)를 사용합니다.

------

## 외부 키 스토어 프록시 권한 부여(선택 사항)
<a name="xks-proxy-authorization"></a>

일부 외부 키 스토어 프록시는 외부 키 사용에 대한 권한 부여 요구 사항을 구현합니다. 외부 키 스토어 프록시는 특정 사용자가 특정 조건에서만 특정 작업을 요청할 수 있도록 하는 권한 부여 체계를 설계하고 구현하는 데 허용되지만 필수는 아닙니다. 예를 들어 사용자 A가 특정 외부 키로 암호화할 수는 있지만 복호화할 수는 없도록 프록시를 구성할 수 있습니다.

프록시 권한 부여는 모든 외부 키 스토어 프록시에가 AWS KMS 필요한 [SigV4-based 프록시 인증](keystore-external.md#concept-xks-credential)과 독립적입니다. 또한 외부 키 스토어 또는 해당 KMS 키에 영향을 미치는 작업에 대한 액세스 권한을 부여하는 키 정책, IAM 정책 및 권한 부여와도 독립적입니다.

외부 키 스토어 프록시에 의한 권한 부여를 활성화하려면 호출자, KMS 키, AWS KMS 작업, AWS 서비스 (있는 경우)를 포함하여 각 [프록시 API 요청에](keystore-external.md#concept-proxy-apis) 메타데이터를 AWS KMS 포함합니다. 외부 키 프록시 API의 버전 1(v1)에 대한 요청 메타데이터는 다음과 같습니다.

```
"requestMetadata": {
    "awsPrincipalArn": string,
    "awsSourceVpc": string, // optional
    "awsSourceVpce": string, // optional
    "kmsKeyArn": string,
    "kmsOperation": string,
    "kmsRequestId": string,
    "kmsViaService": string // optional
}
```

예를 들어 특정 보안 주체(`awsPrincipalArn`)의 요청을 허용하도록 프록시를 구성할 수 있습니다. 단, 특정 보안 주체 AWS 서비스 ()가 보안 주체를 대신하여 요청을 하는 경우에만 가능합니다`kmsViaService`.

프록시 권한 부여에 실패하면 오류를 설명하는 메시지와 함께 관련 AWS KMS 작업이 실패합니다. 자세한 내용은 [프록시 권한 부여 문제](xks-troubleshooting.md#fix-xks-authorization) 섹션을 참조하세요.

## mTLS 인증(사용되지 않음)
<a name="xks-mtls"></a>

이 가이드의 이전 버전에서는 *상호 전송 계층 보안*(mTLS)을 요청을 인증하기 위한 선택적 보조 인증 메커니즘으로 언급했습니다 AWS KMS. mTLS를 사용하면 TLS 채널을 통해 통신하는 두 당사자(AWS KMS 클라이언트 및 서버로서의 XKS 프록시)가 인증서를 사용하여 서로 인증합니다.

그러나 [Chrome 루트 프로그램 정책(섹션 4.2.2)](https://googlechrome.github.io/chromerootprogram/policy-archive/policy-version-1-7/#422-pki-hierarchies-included-in-the-chrome-root-store)을 변경하면 Chrome 루트 스토어에 포함된 공개적으로 신뢰할 수 있는 루트 CAs가 2026년 6월 15일 이후 clientAuth 확장 키 사용(EKU) 확장으로 인증서를 발급할 수 없습니다. 따라서는 더 이상 [Amazon Trust Services](https://www.amazontrust.com/repository/)에서 mTLS에 적합한 클라이언트 인증서를 얻을 AWS KMS 수 없습니다. 2026년 3월 16일 AWS KMS 이후에서 새 외부 키 스토어를 생성하는 데 사용되는 XKS 프록시에는 mTLS가 필요하지 않습니다. 2026년 6월 15일 이후에는 mTLS를 요구하도록 구성된 XKS 프록시가와 통신할 수 없습니다 AWS KMS. 고객은 SigV4 인증을 사용하여 요청이 시작되었는지 확인해야 합니다 AWS KMS. 자세한 내용은 [외부 키 스토어 프록시 인증 자격 증명을](keystore-external.md#concept-xks-credential) 참조하세요.

# 외부 키 저장소 프록시 연결 옵션 선택
<a name="choose-xks-connectivity"></a>

외부 키 스토어를 생성하기 전에가 외부 키 스토어 구성 요소와 AWS KMS 통신하는 방식을 결정하는 연결 옵션을 선택합니다. 선택한 연결 옵션에 따라 나머지 계획 프로세스가 결정됩니다.

외부 키 스토어를 생성하는 경우가 [외부 키 스토어 프록시](keystore-external.md#concept-xks-proxy)와 AWS KMS 통신하는 방식을 결정해야 합니다. 이 선택에 따라 필요한 구성 요소와 구성 방법이 결정됩니다.는 다음 연결 옵션을 AWS KMS 지원합니다.
+ [퍼블릭 엔드포인트 연결](#xks-connectivity-public-endpoint)
+ [VPC 엔드포인트 서비스 연결](#xks-vpc-connectivity)

성능과 보안 목표에 맞는 옵션을 선택합니다.

시작하기 전에 [외부 키 스토어가 필요한지 확인합니다](keystore-external.md#do-i-need-xks). 대부분의 고객은 키 구성 요소가 지원하는 KMS AWS KMS 키를 사용할 수 있습니다.

**고려 사항**
+ 외부 키 스토어 프록시가 외부 키 관리자에 내장된 경우 연결이 미리 결정될 수 있습니다. 지침은 외부 키 관리자 또는 외부 키 스토어 프록시의 설명서를 참조하세요.
+ 작동 중인 외부 키 스토어에서도 [외부 키 스토어 프록시 연결 옵션을 변경](update-xks-keystore.md)할 수 있습니다. 그러나 중단을 최소화하고 오류를 방지하고 데이터를 암호화하는 암호화 키에 지속적으로 액세스할 수 있도록 프로세스를 신중하게 계획하고 실행해야 합니다.

## 퍼블릭 엔드포인트 연결
<a name="xks-connectivity-public-endpoint"></a>

AWS KMS 는 퍼블릭 엔드포인트를 사용하여 인터넷을 통해 외부 키 스토어 프록시(XKS 프록시)에 연결합니다.

이 연결 옵션은 설정 및 유지 관리가 더 쉽고 일부 키 관리 모델과 잘 맞습니다. 그러나 일부 조직의 보안 요구 사항을 충족하지 못할 수 있습니다.

![\[퍼블릭 엔드포인트 연결\]](http://docs.aws.amazon.com/ko_kr/kms/latest/developerguide/images/xks-public-endpoint-60.png)


**요구 사항**

퍼블릭 엔드포인트 연결을 선택하는 경우 다음이 필요합니다.
+ 외부 키 스토어 프록시는 공개적으로 라우팅 가능한 엔드포인트에서 연결할 수 있어야 합니다.
+ 서로 다른 [프록시 URI 경로](create-xks-keystore.md#require-path) 값을 사용하는 경우 여러 외부 키 스토어에 동일한 퍼블릭 엔드포인트를 사용할 수 있습니다.
+ 키 스토어가 다른에 AWS 리전있더라도 퍼블릭 엔드포인트 연결이 있는 외부 키 스토어와 동일한에 VPC 엔드포인트 서비스 연결이 있는 외부 키 스토어에 동일한 엔드포인트를 사용할 수 없습니다 AWS 계정.
+ 외부 키 스토어에 대해 지원되는 공인 인증 기관에서 발급한 TLS 인증서를 받아야 합니다. 목록은 [신뢰할 수 있는 인증 기관](https://github.com/aws/aws-kms-xksproxy-api-spec/blob/main/TrustedCertificateAuthorities)을 참조하세요.

  TLS 인증서의 주체 일반 이름(CN)은 외부 키 스토어 프록시에 대한 [프록시 URI 엔드포인트](create-xks-keystore.md#require-endpoint)의 도메인 이름과 일치해야 합니다. 예를 들어 퍼블릭 엔드포인트가 `https://myproxy.xks.example.com`인 경우 TLS, TLS 인증서의 CN은 `myproxy.xks.example.com` 또는 `*.xks.example.com`이어야 합니다.
+  AWS KMS 와 외부 키 스토어 프록시 사이의 방화벽이 IPv4를 통해 포트 443에서 프록시 AWS KMS 통신의 포트 443과 주고받는 트래픽을 허용하는지 확인합니다. 이 값은 구성할 수 없습니다.

외부 키 스토어의 모든 요구 사항은 [사전 조건 수집](create-xks-keystore.md#xks-requirements)을 참조하세요.

## VPC 엔드포인트 서비스 연결
<a name="xks-vpc-connectivity"></a>

AWS KMS 는 사용자가 생성하고 구성하는 Amazon VPC 엔드포인트 서비스에 대한 인터페이스 엔드포인트를 생성하여 외부 키 스토어 프록시(XKS 프록시)에 연결합니다. [VPC 엔드포인트 서비스를 생성](vpc-connectivity.md)하고 VPC를 외부 키 관리자에 연결하는 것은 사용자의 책임입니다.

엔드포인트 서비스는 [AWS Direct Connect](https://docs.aws.amazon.com/directconnect/latest/UserGuide/)를 포함하여 [지원되는 네트워크와 Amazon VPC 간 옵션](https://docs.aws.amazon.com/whitepapers/latest/aws-vpc-connectivity-options/network-to-amazon-vpc-connectivity-options.html)을 사용할 수 있습니다.

이 연결 옵션은 설정 및 유지 관리가 더 복잡합니다. 그러나가 퍼블릭 인터넷 AWS KMS 을 사용하지 않고 Amazon VPC 및 외부 키 스토어 프록시에 비공개로 연결할 수 AWS PrivateLink있는를 사용합니다.

Amazon VPC에서 외부 키 스토어 프록시를 찾을 수 있습니다.

![\[VPC 엔드포인트 서비스 연결 - VPC의 XKS 프록시\]](http://docs.aws.amazon.com/ko_kr/kms/latest/developerguide/images/xks-proxy-in-vpc-60.png)


또는 외부에서 외부 키 스토어 프록시를 찾고 보안 통신을 위해서만 Amazon VPC 엔드포인트 서비스를 AWS 클라우드 사용할 수 있습니다 AWS KMS.

![\[VPC 엔드포인트 서비스 연결 - 외부의 XKS 프록시 AWS\]](http://docs.aws.amazon.com/ko_kr/kms/latest/developerguide/images/xks-proxy-via-vpc-60.png)


외부 키 스토어를 다른이 소유한 Amazon VPC 엔드포인트 서비스에 연결할 수도 있습니다 AWS 계정. 둘 다 AWS KMS 와 VPC 엔드포인트 서비스 간의 통신을 허용하는 데 [필요한 권한이](authorize-xks-key-store.md#authorize-xks-managers) AWS 계정 필요합니다.

**자세히 알아보기:**
+ [사전 요구 사항 취합](create-xks-keystore.md#xks-requirements)을 포함하여 외부 키 스토어 생성 프로세스를 검토합니다. 이를 통해 외부 키 스토어를 생성할 때 필요한 모든 구성 요소가 있는지 확인할 수 있습니다.
+ 외부 키 스토어 관리자 및 사용자에게 필요한 권한을 포함하여 [외부 키 스토어에 대한 액세스를 제어](authorize-xks-key-store.md)하는 방법을 알아봅니다.
+ 가 외부 키 스토어에 대해 AWS KMS 기록하는 [Amazon CloudWatch 지표 및 차원](monitoring-cloudwatch.md#kms-metrics)에 대해 알아봅니다. 성능 및 운영 문제의 초기 징후를 감지할 수 있도록 외부 키 스토어를 모니터링하는 경보를 생성하는 것이 좋습니다.

# VPC 엔드포인트 서비스 연결 구성
<a name="vpc-connectivity"></a>

이 섹션의 지침에 따라 [VPC 엔드포인트 서비스 연결을](choose-xks-connectivity.md#xks-vpc-connectivity) 사용하는 외부 키 스토어에 필요한 AWS 리소스 및 관련 구성 요소를 생성하고 구성합니다. 이 연결 옵션에 대해 나열된 리소스는 [모든 외부 키 스토어에 필요한 리소스](create-xks-keystore.md#xks-requirements)를 보충하는 것입니다. 필요한 리소스를 생성하고 구성한 후 [외부 키 스토어를 생성](create-xks-keystore.md)할 수 있습니다.

Amazon VPC에서 외부 키 스토어 프록시를 찾거나 외부에서 프록시를 찾 AWS 은 다음 VPC 엔드포인트 서비스를 사용하여 통신할 수 있습니다.

시작하기 전에 [외부 키 스토어가 필요한지 확인합니다](keystore-external.md#do-i-need-xks). 대부분의 고객은 키 구성 요소가 지원하는 KMS AWS KMS 키를 사용할 수 있습니다.

**참고**  
VPC 엔드포인트 서비스 연결에 필요한 일부 요소가 외부 키 관리자에 포함될 수 있습니다. 또한 소프트웨어에 추가 구성 요구 사항이 있을 수 있습니다. 이 단원에서 AWS 리소스를 생성하고 구성하기 전에 프록시 및 키 관리자 설명서를 참조하세요.

**Topics**
+ [

## VPC 엔드포인트 서비스 연결 요구 사항
](#xks-vpce-service-requirements)
+ [

## 1단계: Amazon VPC와 서브넷 생성
](#xks-create-vpc)
+ [

## 2단계: 대상 그룹 생성
](#xks-target-group)
+ [

## 3단계: 새 Network Load Balancer 생성
](#xks-nlb)
+ [

## 4단계: VPC 엔드포인트 서비스 생성
](#xks-vpc-svc)
+ [

## 5단계: 프라이빗 DNS 이름 도메인 확인
](#xks-private-dns)
+ [

## 6단계: VPC 엔드포인트 서비스에 AWS KMS 연결하도록 권한 부여
](#xks-vpc-authorize-kms)

## VPC 엔드포인트 서비스 연결 요구 사항
<a name="xks-vpce-service-requirements"></a>

외부 키 스토어에 대해 VPC 엔드포인트 서비스 연결을 선택하는 경우 다음 리소스가 필요합니다.
+ 외부 키 관리자에 연결된 Amazon VPC. 두 개의 서로 다른 가용성 영역에 두 개 이상의 프라이빗 [서브넷](https://docs.aws.amazon.com/vpc/latest/userguide/configure-subnets.html)이 있어야 합니다.

  외부 키 스토어와 함께 사용하기 위한 [요구 사항을 충족](#xks-vpc-requirements)하는 경우 외부 키 스토어에 기존 Amazon VPC를 사용할 수 있습니다. 여러 외부 키 스토어가 Amazon VPC를 공유할 수 있지만 각 외부 키 스토어에는 자체 VPC 엔드포인트 서비스와 프라이빗 DNS 이름이 있어야 합니다.
+ [Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/introduction.html) 및 [대상 그룹](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-target-groups.html)과 함께 [AWS PrivateLink로 구동되는 Amazon VPC 엔드포인트 서비스](https://docs.aws.amazon.com/vpc/latest/privatelink/privatelink-share-your-services.html).

  엔드포인트 서비스에서 수락을 요구할 수 없습니다. 또한 AWS KMS 를 허용된 보안 주체로 추가해야 합니다. 이렇게 하면 AWS KMS 가 인터페이스 엔드포인트를 생성하여 외부 키 스토어 프록시와 통신할 수 있습니다.
+  AWS 리전에서 고유한 VPC 엔드포인트 서비스의 프라이빗 DNS 이름.

  프라이빗 DNS 이름은 상위 수준 퍼블릭 도메인의 하위 도메인이어야 합니다. 예를 들어 프라이빗 DNS 이름이 `myproxy-private.xks.example.com`인 경우 `xks.example.com` 또는 `example.com`과 같은 퍼블릭 도메인의 하위 도메인이어야 합니다.

  프라이빗 DNS 이름에 대한 DNS 도메인의 [소유권을 확인](#xks-private-dns)해야 합니다.
+ 외부 키 스토어 프록시에 대해 [지원되는 공인 인증 기관](https://github.com/aws/aws-kms-xksproxy-api-spec/blob/main/TrustedCertificateAuthorities)에서 발급한 TLS 인증서.

  TLS 인증서의 주체 일반 이름(CN)은 프라이빗 DNS 이름과 일치해야 합니다. 예를 들어 프라이빗 DNS 이름이 `myproxy-private.xks.example.com`인 경우 TLS 인증서의 CN은 `myproxy-private.xks.example.com` 또는 `*.xks.example.com`이어야 합니다.
+ 네트워크 지연 시간을 최소화하려면 [외부 키 관리자와](keystore-external.md#concept-ekm) 가장 가까운 [지원되는 AWS 리전](keystore-external.md#xks-regions)에서 AWS 구성 요소를 생성합니다. 가능하면 네트워크 왕복 시간(RTT)이 35밀리초 이하인 리전을 선택합니다.

외부 키 스토어의 모든 요구 사항은 [사전 조건 수집](create-xks-keystore.md#xks-requirements)을 참조하세요.

## 1단계: Amazon VPC와 서브넷 생성
<a name="xks-create-vpc"></a>

VPC 엔드포인트 서비스 연결에는 프라이빗 서브넷이 2개 이상 있는 외부 키 관리자에 연결된 Amazon VPC가 필요합니다. Amazon VPC를 생성하거나 외부 키 스토어의 요구 사항을 충족하는 기존 Amazon VPC를 사용할 수 있습니다. 새 Amazon VPC를 생성하는 방법에 대한 도움말은 Amazon Virtual Private Cloud 사용 설명서**의 [VPC 생성](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-vpcs.html#Create-VPC)을 참조하세요.

### Amazon VPC의 요구 사항
<a name="xks-vpc-requirements"></a>

외부 키 저장소와 함께 사용하려면 Amazon VPC 엔드포인트 서비스는 다음과 같은 속성을 갖추어야 합니다.
+ 외부 키 저장소와 동일한 [지원 리전](keystore-external.md#xks-regions)에 있어야 합니다.
+ 각각 다른 가용 영역에 있는 두 개 이상의 프라이빗 서브넷이 필요합니다.
+ Amazon VPC의 프라이빗 IP 주소 범위는 [외부 키 관리자](keystore-external.md#concept-ekm)를 호스팅하는 데이터 센터의 프라이빗 IP 주소 범위와 겹치지 않아야 합니다.
+ 모든 구성 요소는 IPv4를 사용해야 합니다.

Amazon VPC를 외부 키 스토어 프록시에 연결하기 위한 많은 옵션이 있습니다. 성능과 보안 요구 사항에 맞는 옵션을 선택합니다. 목록을 보려면 [다른 네트워크에 VPC 연결](https://docs.aws.amazon.com/vpc/latest/userguide/extend-intro.html) 및 [네트워크와 Amazon VPC 간 연결 옵션](https://docs.aws.amazon.com/whitepapers/latest/aws-vpc-connectivity-options/network-to-amazon-vpc-connectivity-options.html)을 참조하세요. 자세한 내용은 [Direct Connect](https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html)와 [AWS Site-to-Site VPN 사용 설명서](https://docs.aws.amazon.com/vpn/latest/s2svpn/)를 참조하세요.

### 외부 키 스토어용 Amazon VPC 생성
<a name="xks-vpc-create"></a>

다음 지침에 따라 외부 키 스토어용 Amazon VPC를 생성하세요. Amazon VPC는 [VPC 엔드포인트 서비스 연결](choose-xks-connectivity.md) 옵션을 선택한 경우에만 필요합니다. 외부 키 스토어의 요구 사항을 충족하는 기존 Amazon VPC를 사용할 수 있습니다.

다음 필수 값을 사용하여 [VPC, 서브넷 및 기타 VPC 리소스 생성](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-vpcs.html#create-vpc-and-other-resources) 주제의 지침을 따르세요. 다른 필드의 경우 기본값을 그대로 사용하고 요청에 따라 이름을 제공합니다.


| Field | 값 | 
| --- | --- | 
| IPv4 CIDR block | VPC의 IP 주소를 입력합니다. Amazon VPC의 프라이빗 IP 주소 범위는 [외부 키 관리자](keystore-external.md#concept-ekm)를 호스팅하는 데이터 센터의 프라이빗 IP 주소 범위와 겹치지 않아야 합니다. | 
| 가용 영역 수 | 2 이상 | 
| 퍼블릭 서브넷 수 |  필요 없음(0)  | 
| 프라이빗 서브넷 수 | 각 AZ에 대해 하나씩 | 
| NAT 게이트웨이 | 필요 없음 | 
| VPC 엔드포인트 | 필요 없음 | 
| Enable DNS hostnames | 예 | 
| DNS 확인 활성화 | 예 | 

VPC 통신을 테스트해야 합니다. 예를 들어 외부 키 스토어 프록시가 Amazon VPC에 없는 경우 Amazon VPC에서 Amazon EC2 인스턴스를 생성하고 Amazon VPC가 외부 키 스토어 프록시와 통신할 수 있는지 확인합니다.

### 외부 키 관리자에 VPC 연결
<a name="xks-vpc-to-ekm"></a>

Amazon VPC가 지원하는 [네트워크 연결 옵션](https://docs.aws.amazon.com/whitepapers/latest/aws-vpc-connectivity-options/network-to-amazon-vpc-connectivity-options.html)을 사용하여 외부 키 관리자를 호스팅하는 데이터 센터에 VPC를 연결합니다. VPC의 Amazon EC2 인스턴스 또는 외부 키 스토어 프록시(VPC에 있는 경우)가 데이터 센터 및 외부 키 관리자와 통신할 수 있는지 확인합니다.

## 2단계: 대상 그룹 생성
<a name="xks-target-group"></a>

필수 VPC 엔드포인트 서비스를 생성하기 전에 필수 구성 요소, Network Load Balancer(NLB) 및 대상 그룹을 생성합니다. Network Load Balancer(NLB)는 요청을 서비스할 수 있는 여러 정상 대상에 요청을 분산합니다. 이 단계에서는 외부 키 스토어 프록시에 사용할 호스트가 두 개 이상 있는 대상 그룹을 만들고 대상 그룹에 IP 주소를 등록합니다.

다음 필수 값을 사용하여 [대상 그룹 구성](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-network-load-balancer.html#configure-target-group) 주제의 지침을 따르세요. 다른 필드의 경우 기본값을 그대로 사용하고 요청에 따라 이름을 제공합니다.


| Field | 값 | 
| --- | --- | 
| 대상 유형 | IP 주소 | 
| 프로토콜 | TCP | 
| 포트 |  443  | 
| IP 주소 유형 | IPv4 | 
| VPC | 외부 키 스토어에 대한 VPC 엔드포인트 서비스를 생성할 VPC를 선택합니다. | 
| 상태 확인 프로토콜 및 경로 | 상태 확인 프로토콜 및 경로는 외부 키 스토어 프록시 구성에 따라 달라집니다. 외부 키 관리자 또는 외부 키 스토어 프록시의 설명서를 참조하세요.대상 그룹의 상태 확인 구성에 대한 일반 정보는 Elastic Load Balancing - Network Load Balancer 사용 설명서의 [대상 그룹에 대한 상태 확인](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/target-group-health-checks.html)을 참조하세요. | 
| Network | 다른 프라이빗 IP 주소 | 
| IPv4 주소 | 외부 키 스토어 프록시의 프라이빗 주소 | 
| 포트 | 443 | 

## 3단계: 새 Network Load Balancer 생성
<a name="xks-nlb"></a>

Network Load Balancer는 AWS KMS 에서 외부 키 스토어 프록시로의 요청을 포함하여 네트워크 트래픽을 구성된 대상으로 분산합니다.

[로드 밸런서 및 리스너 구성](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-network-load-balancer.html#configure-load-balancer) 주제의 지침에 따라 리스너를 구성 및 추가하고 다음 필수 값을 사용하여 로드 밸런서를 생성합니다. 다른 필드의 경우 기본값을 그대로 사용하고 요청에 따라 이름을 제공합니다.


| Field | 값 | 
| --- | --- | 
| 스킴 | Internal(내부) | 
| IP 주소 유형 | IPv4 | 
| 네트워크 매핑 |  외부 키 스토어에 대한 VPC 엔드포인트 서비스를 생성할 VPC를 선택합니다.  | 
| 매핑 | VPC 서브넷용으로 구성한 가용 영역(최소 2개)을 모두 선택합니다. 서브넷 이름과 프라이빗 IP 주소를 확인합니다. | 
| 프로토콜 | TCP | 
| 포트 | 443 | 
| Default action: Forward to(기본 작업: 다음으로 전달) | Network Load Balancer의 [대상 그룹](#xks-target-group)을 선택합니다. | 

## 4단계: VPC 엔드포인트 서비스 생성
<a name="xks-vpc-svc"></a>

일반적으로 서비스에 대한 엔드포인트를 생성합니다. 그러나 VPC 엔드포인트 서비스를 생성하면 공급자가 되고 서비스에 대한 엔드포인트가 AWS KMS 생성됩니다. 외부 키 스토어의 경우 이전 단계에서 생성한 Network Load Balancer를 사용하여 VPC 엔드포인트 서비스를 생성합니다. VPC 엔드포인트 서비스는 외부 키 스토어 AWS 계정 와 동일한 또는 다른에 있을 수 있습니다 AWS 계정.

여러 외부 키 스토어가 Amazon VPC를 공유할 수 있지만 각 외부 키 스토어에는 자체 VPC 엔드포인트 서비스와 프라이빗 DNS 이름이 있어야 합니다.

[엔드포인트 서비스 생성](https://docs.aws.amazon.com/vpc/latest/privatelink/create-endpoint-service.html#create-endpoint-service-nlb) 주제의 지침에 따라 다음과 같은 필수 값으로 VPC 엔드포인트 서비스를 생성합니다. 다른 필드의 경우 기본값을 그대로 사용하고 요청에 따라 이름을 제공합니다.


| Field | 값 | 
| --- | --- | 
| 로드 밸런서 유형 | Network | 
| 사용 가능한 로드 밸런서 | 이전 단계에서 생성한 [Network Load Balancer](#xks-nlb)를 선택합니다.새 로드 밸런서가 목록에 나타나지 않으면 해당 상태가 활성인지 확인합니다. 로드 밸런서 상태가 프로비저닝에서 활성으로 변경되는 데 몇 분 정도 걸릴 수 있습니다. | 
| 수락 필요 | False. 확인란 선택을 취소합니다.*acceptance.cannot connect to the VPC endpoint service without 수동 수락이 필요하지 않습니다*. AWS KMS 수락이 필요한 경우 [외부 키 스토어를 생성](create-xks-keystore.md)하려는 시도는 `XksProxyInvalidConfigurationException` 예외와 함께 실패합니다. | 
| 프라이빗 DNS 이름 활성화 | 프라이빗 DNS 이름을 서비스와 연결 | 
| 프라이빗 DNS 이름 |  AWS 리전에서 고유한 프라이빗 DNS 이름을 입력합니다.프라이빗 DNS 이름은 상위 수준 퍼블릭 도메인의 하위 도메인이어야 합니다. 예를 들어 프라이빗 DNS 이름이 `myproxy-private.xks.example.com`인 경우 `xks.example.com` 또는 `example.com`과 같은 퍼블릭 도메인의 하위 도메인이어야 합니다.이 프라이빗 DNS 이름은 외부 키 스토어 프록시에 구성된 TLS 인증서의 주체 일반 이름(CN)과 일치해야 합니다. 예를 들어 프라이빗 DNS 이름이 `myproxy-private.xks.example.com`인 경우 TLS 인증서의 CN은 `myproxy-private.xks.example.com` 또는 `*.xks.example.com`이어야 합니다.인증서와 프라이빗 DNS 이름이 일치하지 않으면 외부 키 스토어 프록시에 외부 키 스토어를 연결하려는 시도가 연결 오류 코드(`XKS_PROXY_INVALID_TLS_CONFIGURATION`)와 함께 실패합니다. 자세한 내용은 [일반 구성 오류](xks-troubleshooting.md#fix-xks-gen-configuration)을 참조하세요. | 
| 지원되는 IP 주소 유형 | IPv4 | 

## 5단계: 프라이빗 DNS 이름 도메인 확인
<a name="xks-private-dns"></a>

VPC 엔드포인트 서비스를 생성할 때 해당 도메인 확인 상태는 `pendingVerification`입니다. VPC 엔드포인트 서비스를 사용하여 외부 키 스토어를 생성하기 전에 이 상태는 `verified`여야 합니다. 프라이빗 DNS 이름과 연결된 도메인을 소유하고 있는지 확인하려면 퍼블릭 DNS 서버에 TXT 레코드를 생성해야 합니다.

예를 들어 VPC 엔드포인트 서비스의 프라이빗 DNS 이름이 인 경우 `myproxy-private.xks.example.com`먼저에서 TXT 레코드에 대해 `xks.example.com` 또는 `example.com`와 같은 퍼블릭 도메인에 TXT 레코드를 생성한 `xks.example.com` 다음에서 public. AWS PrivateLink looks를 생성해야 합니다`example.com`.

**작은 정보**  
TXT 레코드를 추가한 후 **Domain verification status**(도메인 확인 상태) 값이 `pendingVerification`에서 `verify`로 변경되는 데 몇 분 정도 걸릴 수 있습니다.

시작하려면 다음 방법 중 하나를 사용하여 도메인의 확인 상태를 찾습니다. 유효한 값은 `verified`, `pendingVerification`, `failed`입니다.
+ [Amazon VPC 콘솔](https://console.aws.amazon.com/vpc)에서 **Endpoint services**(엔드포인트 서비스)를 선택하고 엔드포인트 서비스를 선택합니다. 세부 정보 창에서 **Domain verification status**(도메인 확인 상태)를 봅니다.
+ [DescribeVpcEndpointServiceConfigurations](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeVpcEndpointServiceConfigurations.html) 작업을 사용합니다. `State` 값은 `ServiceConfigurations.PrivateDnsNameConfiguration.State` 필드에 있습니다.

확인 상태가 `verified`가 아니면 [도메인 소유권 확인](https://docs.aws.amazon.com/vpc/latest/privatelink/manage-dns-names.html#verify-domain-ownership) 주제의 지침에 따라 도메인의 DNS 서버에 TXT 레코드를 추가하고 TXT 레코드가 게시되었는지 확인합니다. 그런 다음 인증 상태를 다시 확인합니다.

프라이빗 DNS 도메인 이름에 대한 A 레코드를 생성할 필요는 없습니다. 가 VPC 엔드포인트 서비스에 대한 인터페이스 엔드포인트를 AWS KMS 생성하면 AWS PrivateLink 는 AWS KMS VPC의 프라이빗 도메인 이름에 필요한 A 레코드가 있는 호스팅 영역을 자동으로 생성합니다. VPC 엔드포인트 서비스 연결이 있는 외부 키 스토어의 경우 [외부 키 스토어 프록시에 외부 키 스토어를 연결](xks-connect-disconnect.md)할 때 이러한 작업이 수행됩니다.

## 6단계: VPC 엔드포인트 서비스에 AWS KMS 연결하도록 권한 부여
<a name="xks-vpc-authorize-kms"></a>

Amazon VPC 엔드포인트 서비스 권한을 관리하기 위한 절차는 다음을 참조하세요. 각 단계는 외부 키 저장소, VPC 엔드포인트 서비스 및 AWS 계정사이의 연결 상태 및 구성에 따라 달라집니다.

------
#### [ Same AWS 계정 ]

VPC 엔드포인트 서비스를 외부 키 스토어 AWS 계정 와 동일한에서 소유한 경우 VPC 엔드포인트 서비스에 대한 보안 **주체 허용** 목록에 AWS KMS 를 추가해야 합니다. 이렇게 하면 AWS KMS 가 VPC 엔드포인트 서비스에 대한 인터페이스 엔드포인트를 생성할 수 있습니다. AWS KMS 가 허용된 보안 주체가 아닌 경우 외부 키 스토어를 생성하려는 시도는 `XksProxyVpcEndpointServiceNotFoundException` 예외와 함께 실패합니다.

AWS PrivateLink 가이드**의 [Manage permissions](https://docs.aws.amazon.com/vpc/latest/privatelink/configure-endpoint-service.html#add-remove-permissions)(권한 관리) 주제에 나와 있는 지침을 따르세요. 다음 필수 값을 사용합니다.


| Field | 값 | 
| --- | --- | 
| AWS KMS ARN | cks.kms.<region>.amazonaws.com예: `cks.kms.us-east-1.amazonaws.com` | 

------
#### [ Cross AWS 계정 ]

VPC 엔드포인트 서비스를 다른이 소유한 경우 보안 **주체 허용** 목록에 AWS KMS 및 계정을 모두 추가 AWS 계정 해야 합니다. 이렇게 하면 AWS KMS 및 외부 키 스토어가 VPC 엔드포인트 서비스에 대한 인터페이스 엔드포인트를 생성할 수 있습니다. AWS KMS 가 허용된 보안 주체가 아닌 경우 외부 키 스토어를 생성하려는 시도는 `XksProxyVpcEndpointServiceNotFoundException` 예외와 함께 실패합니다. 외부 키 스토어가 있는 AWS 계정 ARN을 제공해야 합니다.

AWS PrivateLink 가이드**의 [Manage permissions](https://docs.aws.amazon.com/vpc/latest/privatelink/configure-endpoint-service.html#add-remove-permissions)(권한 관리) 주제에 나와 있는 지침을 따르세요. 다음 필수 값을 사용합니다.


| Field | 값 | 
| --- | --- | 
| AWS KMS ARN | cks.kms.<region>.amazonaws.com예: `cks.kms.us-east-1.amazonaws.com` | 
| AWS 계정 ARN | arn:aws:iam::111122223333:role/role\$1name예: `arn:aws:iam::123456789012:role/cks_role` | 

------

**다음**: [외부 키 저장소 생성](create-xks-keystore.md)

# 외부 키 저장소 생성
<a name="create-xks-keystore"></a>

각 AWS 계정 및 리전에서 하나 이상의 외부 키 스토어를 생성할 수 있습니다. 각 외부 키 스토어는 외부의 외부 키 관리자 AWS및와 외부 키 관리자 간의 통신을 매개하는 외부 키 스토어 프록시(XKS 프록시) AWS KMS 와 연결되어야 합니다. 자세한 내용은 [외부 키 저장소 프록시 연결 옵션 선택](choose-xks-connectivity.md)을 참조하세요. 시작하기 전에 [외부 키 스토어가 필요한지 확인합니다](keystore-external.md#do-i-need-xks). 대부분의 고객은 키 구성 요소가 지원하는 KMS AWS KMS 키를 사용할 수 있습니다.

**작은 정보**  
일부 외부 키 관리자는 외부 키 스토어를 생성하는 더 간단한 방법을 제공합니다. 자세한 내용은 외부 키 관리자 설명서를 참조하세요.

외부 키 스토어를 생성하기 전에 [사전 조건을 수집](#xks-requirements)해야 합니다. 생성 프로세스 중 외부 키 스토어의 속성을 지정합니다. 가장 중요한 것은의 외부 키 스토어가 [퍼블릭 엔드포인트](choose-xks-connectivity.md#xks-connectivity-public-endpoint)를 AWS KMS 사용하는지 아니면 [VPC 엔드포인트 서비스를](choose-xks-connectivity.md#xks-vpc-connectivity) 사용하여 외부 키 스토어 프록시에 연결하는지를 나타냅니다. 또한 프록시의 URI 엔드포인트와가 API 요청을 프록시로 AWS KMS 보내는 프록시 엔드포인트 내의 경로를 포함하여 연결 세부 정보를 지정합니다.

**고려 사항**
+ KMS는 IPv6를 통해 외부 키 저장소와 통신할 수 없습니다.
+  퍼블릭 엔드포인트 연결을 사용하는 경우가 HTTPS 연결을 사용하여 인터넷을 통해 프록시와 통신 AWS KMS 할 수 있는지 확인합니다. 여기에는 외부 키 스토어 프록시에서 TLS를 구성하고 AWS KMS 와 프록시 사이의 방화벽이 프록시의 포트 443에서 송수신되는 IPv4 트래픽을 허용하는지 확인하는 작업이 포함됩니다. 퍼블릭 엔드포인트 연결이 있는 외부 키 스토어를 생성하는 동안는 외부 키 스토어 프록시에 상태 요청을 전송하여 연결을 AWS KMS 테스트합니다. 이 테스트는 엔드포인트에 연결할 수 있고 외부 키 스토어 프록시가 [외부 키 스토어 프록시 인증 자격 증명](keystore-external.md#concept-xks-credential)으로 서명된 요청을 수락하는지 확인합니다. 이 테스트 요청이 실패하면 외부 키 스토어를 생성하는 작업이 실패합니다.
+ VPC 엔드포인트 서비스 연결을 사용하는 경우 Network Load Balancer, 프라이빗 DNS 이름 및 VPC 엔드포인트 서비스가 올바르게 구성되고 작동하는지 확인합니다. 외부 키 스토어 프록시가 VPC에 없는 경우 VPC 엔드포인트 서비스가 외부 키 스토어 프록시와 통신할 수 있는지 확인해야 합니다. ([외부 키 스토어를 외부 키 스토어 프록시에 연결할](xks-connect-disconnect.md) 때 VPC 엔드포인트 서비스 연결을AWS KMS 테스트합니다.)
+ AWS KMS 는 특히 외부 키 스토어에 대한 [Amazon CloudWatch 지표 및 차원](monitoring-cloudwatch.md#kms-metrics)을 기록합니다. 이러한 지표 중 일부를 기반으로 한 모니터링 그래프는 각 외부 키 스토어의 AWS KMS 콘솔에 표시됩니다. 이러한 지표를 사용하여 외부 키 저장소를 모니터링하는 경보를 생성하는 것을 적극 권장합니다. 이러한 경보는 성능 및 작동 문제가 발생하기 전에 조기 징후를 알립니다. 지침은 [외부 키 저장소 모니터링](xks-monitoring.md) 섹션을 참조하세요.
+ 외부 키 스토어에는 [리소스 할당량](resource-limits.md#cks-resource-quota)이 적용됩니다. 외부 키 스토어에서 KMS 키를 사용할 경우 [요청 할당량](requests-per-second.md#rps-key-stores)이 적용됩니다. 외부 키 스토어 구현을 설계하기 전에 이러한 할당량을 검토합니다.

**참고**  
작동을 방해할 수 있는 순환 종속성이 있는지 구성을 검토하세요.  
예를 들어 AWS 리소스를 사용하여 외부 키 스토어 프록시를 생성하는 경우 프록시를 운영할 때 해당 프록시를 통해 액세스하는 외부 키 스토어에서 KMS 키를 사용할 필요가 없는지 확인합니다.

모든 새 외부 키 스토어는 연결 해제된 상태로 생성됩니다. 외부 키 스토어에서 KMS 키를 생성하려면 먼저 외부 키 스토어 프록시에 [연결](about-xks-connecting.md)해야 합니다. 외부 키 스토어의 속성을 변경하려면 [외부 키 스토어 설정을 편집](update-xks-keystore.md)합니다.

**Topics**
+ [

## 사전 조건 수집
](#xks-requirements)
+ [

## 새로운 외부 키 저장소 생성
](#create-xks)

## 사전 조건 수집
<a name="xks-requirements"></a>

외부 키 스토어를 생성하기 전에 외부 키 스토어를 지원하는 데 사용할 [외부 키 관리자와](keystore-external.md#concept-ekm) [요청을 외부 키 관리자가 이해할 수 있는 형식으로 변환하는 외부 키 스토어 프록시](keystore-external.md#concept-xks-proxy) AWS KMS 를 포함하여 필요한 구성 요소를 조합해야 합니다.

모든 외부 키 스토어에는 다음 구성 요소가 필요합니다. 이러한 구성 요소 외에도 선택한 [외부 키 스토어 프록시 연결 옵션](choose-xks-connectivity.md)을 지원하는 구성 요소를 제공해야 합니다.

**작은 정보**  
외부 키 관리자에 이러한 구성 요소 중 일부가 포함되어 있거나 사용자에게 맞게 구성될 수 있습니다. 자세한 내용은 외부 키 관리자 설명서를 참조하세요.  
 AWS KMS 콘솔에서 외부 키 스토어를 생성하는 경우 [프록시 URI 경로](#require-path)와 프록시 [인증 자격](keystore-external.md#concept-xks-credential) 증명을 지정하는 JSON 기반 [프록시 구성 파일을](#proxy-configuration-file) 업로드할 수 있습니다. 일부 외부 키 스토어 프록시는 이 파일을 자동으로 생성합니다. 자세한 내용은 외부 키 스토어 프록시 또는 외부 키 관리자의 설명서를 참조하세요.

### 외부 키 관리자
<a name="require-ekm"></a>

외부 키 스토어마다 하나 이상의 [외부 키 관리자](keystore-external.md#concept-ekm) 인스턴스가 필요합니다. 이는 물리적 또는 가상 하드웨어 보안 모듈(HSM)이나 키 관리 소프트웨어일 수 있습니다.

단일 키 관리자를 사용할 수 있지만 중복성을 위해 암호화 키를 공유하는 관련 키 관리자 인스턴스를 두 개 이상 사용하는 것이 좋습니다. 외부 키 스토어에는 외부 키 관리자의 독점 사용이 필요 없습니다. 그러나 외부 키 관리자는 외부 키 스토어에서 KMS 키를 사용하여 리소스를 보호하는 AWS 서비스의 예상 암호화 및 복호화 요청 빈도를 처리할 수 있는 용량이 있어야 합니다. 외부 키 관리자는 초당 최대 1,800개의 요청을 처리하고 각 요청에 대해 250밀리초 제한 시간 내에 응답하도록 구성되어야 합니다. 네트워크 왕복 시간(RTT)이 35밀리초 이하가 AWS 리전 되도록 외부 키 관리자를에 가깝게 배치하는 것이 좋습니다.

외부 키 스토어 프록시에서 허용하는 경우 외부 키 스토어 프록시와 연결하는 외부 키 관리자를 변경할 수 있지만 새 외부 키 관리자는 동일한 키 구성 요소를 사용하는 백업 또는 스냅샷이어야 합니다. KMS 키와 연결하는 외부 키를 외부 키 스토어 프록시에서 더 이상 사용할 수 없는 경우는 KMS 키로 암호화된 사이퍼텍스트를 해독 AWS KMS 할 수 없습니다.

외부 키 관리자가 외부 키 스토어 프록시에 액세스할 수 있어야 합니다. 프록시의 [GetHealthStatus](keystore-external.md#xks-concepts) 응답이 모든 외부 키 관리자 인스턴스가 `Unavailable` 상태라고 보고하는 경우 외부 키 스토어를 생성하려고 할 때마다 [`XksProxyUriUnreachableException`](xks-troubleshooting.md#fix-xks-proxy)이 발생하여 실패합니다.

### 외부 키 스토어 프록시
<a name="require-proxy"></a>

[AWS KMS 외부 키 스토어 프록시 API 사양](https://github.com/aws/aws-kms-xksproxy-api-spec/)의 설계 요구 사항을 준수하는 [외부 키 스토어 프록시](keystore-external.md#concept-xks-proxy)(XKS 프록시)를 지정해야 합니다. 외부 키 스토어 프록시를 개발 또는 구매하거나 외부 키 관리자가 제공하거나 외부 키 관리자에 내장된 외부 키 스토어 프록시를 사용할 수 있습니다.는 외부 키 스토어 프록시가 초당 최대 1,800개의 요청을 처리하고 각 요청에 대해 250밀리초 제한 시간 내에 응답하도록 구성할 AWS KMS 것을 권장합니다. 네트워크 왕복 시간(RTT)이 35밀리초 이하가 AWS 리전 되도록 외부 키 관리자를에 가깝게 배치하는 것이 좋습니다.

둘 이상의 외부 키 스토어에 대해 외부 키 스토어 프록시를 사용할 수 있지만, 각 외부 키 스토어에는 요청에 대한 외부 키 스토어 프록시 내에 고유한 URI 엔드포인트 및 경로가 있어야 합니다.

VPC 엔드포인트 서비스 연결을 사용하는 경우 Amazon VPC에서 외부 키 스토어 프록시를 찾을 수 있지만 이것이 필수는 아닙니다. 프라이빗 데이터 센터 AWS와 같이 외부에서 프록시를 찾고 VPC 엔드포인트 서비스를 사용하여 프록시와 통신할 수 있습니다.

### 프록시 인증 자격 증명
<a name="require-credential"></a>

외부 키 스토어를 생성하려면 외부 키 스토어 프록시 인증 자격 증명(`XksProxyAuthenticationCredential`)을 지정해야 합니다.

외부 키 스토어 프록시 [인증 자격 증명](keystore-external.md#concept-xks-credential)으로 서명 버전 4(SigV4`XksProxyAuthenticationCredential`) 프로세스를 사용하여 요청에 서명하여 외부 키 스토어 프록시. AWS KMS authenticates AWS KMS 에서 프록시에 대한 인증 자격 증명()을 설정해야 합니다. [SigV4](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) 외부 키 스토어를 생성할 때 인증 자격 증명을 지정하며 언제든지 [이를 변경할 수](update-xks-keystore.md) 있습니다. 프록시가 자격 증명을 교체하는 경우 외부 키 스토어의 자격 증명 값을 업데이트해야 합니다.

프록시 인증 자격 증명은 두 부분으로 구성됩니다. 외부 키 스토어에 대해 두 부분을 모두 제공해야 합니다.
+ 액세스 키 ID: 비밀 액세스 키를 식별합니다. 이 ID를 일반 텍스트로 제공할 수 있습니다.
+ 보안 액세스 키: 자격 증명의 보안 암호 부분입니다. 자격 증명을 저장하기 전에 자격 증명의 보안 암호 액세스 키를 AWS KMS 암호화합니다.

가 외부 키 스토어 프록시에 대한 요청에 서명하는 데 AWS KMS 사용하는 SigV4 자격 증명은 AWS 계정의 보안 주체와 연결된 SigV4 자격 증명과 관련이 없습니다. AWS Identity and Access Management 외부 키 스토어 프록시에 IAM SigV4 자격 증명을 재사용하지 마세요.

### 프록시 연결
<a name="require-connectivity"></a>

외부 키 스토어를 생성하려면 외부 키 스토어 프록시 연결 옵션(`XksProxyConnectivity`)을 지정해야 합니다.

AWS KMS 는 [퍼블릭 엔드포인트](choose-xks-connectivity.md#xks-connectivity-public-endpoint) 또는 [Amazon Virtual Private Cloud(VPC) 엔드포인트 서비스를](choose-xks-connectivity.md#xks-vpc-connectivity) 사용하여 외부 키 스토어 프록시와 통신할 수 있습니다. 퍼블릭 엔드포인트는 구성 및 유지 관리가 더 간단하지만 모든 설치에 대한 보안 요구 사항을 충족하지 못할 수 있습니다. Amazon VPC 엔드포인트 서비스 연결 옵션을 선택하는 경우 서로 다른 두 가용 영역에 두 개 이상의 서브넷이 있는 Amazon VPC, Network Load Balancer와 대상 그룹이 있는 VPC 엔드포인트 서비스, VPC 엔드포인트 서비스의 프라이빗 DNS 이름을 비롯하여 필요한 구성 요소를 생성하고 유지 관리해야 합니다.

외부 키 스토어에 대한 [프록시 연결 옵션](update-xks-keystore.md)을 변경할 수 있습니다. 그러나 외부 키 스토어에서 KMS 키와 연결된 키 구성 요소를 계속 사용할 수 있는지 확인해야 합니다. 그렇지 않으면 해당 KMS 키로 암호화된 사이퍼텍스트를 해독할 AWS KMS 수 없습니다.

외부 키 스토어에 가장 적합한 프록시 연결 옵션을 결정하는 방법에 대한 도움말은 [외부 키 저장소 프록시 연결 옵션 선택](choose-xks-connectivity.md) 섹션을 참조하세요. VPC 엔드포인트 서비스 연결을 생성하고 구성하는 방법에 대한 도움말은 [VPC 엔드포인트 서비스 연결 구성](vpc-connectivity.md) 섹션을 참조하세요.

### 프록시 URI 엔드포인트
<a name="require-endpoint"></a>

외부 키 스토어를 생성하려면가 외부 키 스토어 프록시로 요청을 보내는 데 AWS KMS 사용하는 엔드포인트(`XksProxyUriEndpoint`)를 지정해야 합니다.

프로토콜은 포트 443의 IPv4를 통해 HTTPS. AWS KMS communicates여야 합니다. 프록시 URI 엔드포인트 값에 포트를 지정하지 마세요.
+ [퍼블릭 엔드포인트 연결](choose-xks-connectivity.md#xks-connectivity-public-endpoint) - 외부 키 스토어 프록시에 대해 공개적으로 사용 가능한 엔드포인트를 지정합니다. 외부 키 스토어를 생성하기 전에 이 엔드포인트에 연결할 수 있어야 합니다.
+ [VPC 엔드포인트 서비스 연결](choose-xks-connectivity.md#xks-vpc-connectivity) - `https://` 뒤에 VPC 엔드포인트 서비스의 프라이빗 DNS 이름을 지정합니다.

외부 키 스토어 프록시에 구성된 TLS 서버 인증서는 외부 키 스토어 프록시 URI 엔드포인트의 도메인 이름과 일치해야 하며 외부 키 스토어에 대해 지원되는 인증 기관에서 발급해야 합니다. 목록은 [신뢰할 수 있는 인증 기관](https://github.com/aws/aws-kms-xksproxy-api-spec/blob/main/TrustedCertificateAuthorities)을 참조하세요. 인증 기관은 TLS 인증서를 발급하기 전에 도메인 소유권 증명을 요구합니다.

TLS 인증서의 주체 일반 이름(CN)은 프라이빗 DNS 이름과 일치해야 합니다. 예를 들어 프라이빗 DNS 이름이 `myproxy-private.xks.example.com`인 경우 TLS 인증서의 CN은 `myproxy-private.xks.example.com` 또는 `*.xks.example.com`이어야 합니다.

[프록시 URI 엔드포인트를 변경](update-xks-keystore.md)할 수 있지만, 외부 키 스토어 프록시가 외부 키 스토어의 KMS 키와 연결된 키 구성 요소에 액세스할 수 있는지 확인합니다. 그렇지 않으면 해당 KMS 키로 암호화된 사이퍼텍스트를 해독할 AWS KMS 수 없습니다.

**고유성 요구 사항**
+ 결합된 프록시 URI 엔드포인트(`XksProxyUriEndpoint`) 및 프록시 URI 경로(`XksProxyUriPath`) 값은 AWS 계정 과 리전에서 고유해야 합니다.
+ 퍼블릭 엔드포인트 연결이 있는 외부 키 스토어는 프록시 URI 경로 값이 다른 경우 동일한 프록시 URI 엔드포인트를 공유할 수 있습니다.
+ 퍼블릭 엔드포인트 연결이 있는 외부 키 스토어는 키 스토어가 다르 AWS 리전더라도 VPC 엔드포인트 서비스 연결이 동일한 외부 키 스토어와 동일한 프록시 URI 엔드포인트 값을 사용할 수 없습니다 AWS 계정.
+  VPC 엔드포인트 연결이 있는 각 외부 키 스토어에는 자체 프라이빗 DNS 이름이 있어야 합니다. 프록시 URI 엔드포인트(프라이빗 DNS 이름)는 AWS 계정 및 리전에서 고유해야 합니다.

### 프록시 URI 경로
<a name="require-path"></a>

외부 키 스토어를 생성하려면 외부 키 스토어 프록시에 [필수 프록시 API](keystore-external.md#concept-proxy-apis)에 대한 기본 경로를 지정해야 합니다. 값은 `/`로 시작하고 /kms/xks/v1로 끝나야 하며, 여기서 `v1`은 외부 키 스토어 프록시에 대한 AWS KMS API의 버전을 나타냅니다. 이 경로에는 `/example-prefix/kms/xks/v1`과 같은 필수 요소 사이에 선택적 접두사가 포함될 수 있습니다. 이 값을 찾으려면 외부 키 스토어 프록시에 대한 설명서를 참조하세요.

AWS KMS 는 프록시 URI 엔드포인트와 프록시 URI 경로의 연결로 지정된 주소로 프록시 요청을 보냅니다. 예를 들어 프록시 URI 엔드포인트가 `https://myproxy.xks.example.com`이고 프록시 URI 경로가 인 경우는 프록시 API 요청을에 `/kms/xks/v1` AWS KMS 보냅니다`https://myproxy.xks.example.com/kms/xks/v1`.

[프록시 URI 경로를 변경](update-xks-keystore.md)할 수 있지만, 외부 키 스토어 프록시가 외부 키 스토어의 KMS 키와 연결된 키 구성 요소에 액세스할 수 있는지 확인합니다. 그렇지 않으면 해당 KMS 키로 암호화된 사이퍼텍스트를 해독할 AWS KMS 수 없습니다.

**고유성 요구 사항**
+ 결합된 프록시 URI 엔드포인트(`XksProxyUriEndpoint`) 및 프록시 URI 경로(`XksProxyUriPath`) 값은 AWS 계정 과 리전에서 고유해야 합니다.

### VPC 엔드포인트 서비스
<a name="require-vpc-service-name"></a>

외부 키 스토어 프록시와 통신하는 데 사용되는 Amazon VPC 엔드포인트 서비스의 이름을 지정합니다. 이 구성 요소는 VPC 엔드포인트 서비스 연결을 사용하는 외부 키 스토어에만 필요합니다. 외부 키 스토어의 VPC 엔드포인트 서비스를 설정하고 구성하는 방법에 대한 도움말은 [VPC 엔드포인트 서비스 연결 구성](vpc-connectivity.md) 섹션을 참조하세요.

VPC 엔드포인트 서비스에 다음과 같은 속성이 있어야 합니다.
+ VPC 엔드포인트 서비스는 외부 키 저장소와 동일한 또는 서로 다른 AWS 계정 에 위치할 수 있습니다.
  + VPC 엔드포인트 서비스는 외부 키 스토어 AWS 리전 와 동일한에 있어야 합니다.
  + VPC 엔드포인트 서비스가 다른에 있는 경우 VPC 엔드포인트 서비스의 AWS 계정 ID를 제공해야 합니다 AWS 계정.
+ 각각 다른 가용 영역에 있는 두 개 이상의 서브넷에 연결된 NLB(Network Load Balancer)가 있어야 합니다.
+ VPC 엔드포인트 서비스의 *허용 보안 주체 목록에*는 `cks.kms.<region>.amazonaws.com`와 같은 리전의 AWS KMS 서비스 보안 주체가 포함되어야 합니다`cks.kms.us-east-1.amazonaws.com`.
  + Amazon VPC 엔드포인트 서비스를 외부 키 스토어(XKS) 소유가 아닌 AWS 계정 다른에서 AWS 계정 소유한 경우 VPC 엔드포인트 서비스에 대한 XKS 액세스도 허용해야 합니다. 이렇게 하려면 [XKS AWS 계정 ID를 Amazon VPC 엔드포인트 서비스의 보안 주체로 허용 목록에](https://docs.aws.amazon.com/vpc/latest/privatelink/configure-endpoint-service.html#add-remove-permissions) 추가하세요.
+ 연결 요청 수락이 필요하지 않아야 합니다.
+ 상위 수준의 퍼블릭 도메인 내에 프라이빗 DNS 이름이 있어야 합니다. 예를 들어 퍼블릭 `xks.example.com` 도메인의 프라이빗 DNS 이름이 myproxy-private.xks.example.com일 수 있습니다.

  VPC 엔드포인트 서비스 연결이 있는 외부 키 스토어의 프라이빗 DNS 이름은 AWS 리전에서 고유해야 합니다.
+ 프라이빗 DNS 이름 도메인의 [도메인 확인 상태](vpc-connectivity.md#xks-private-dns)는 `verified`여야 합니다.
+ 외부 키 스토어 프록시에 구성된 TLS 서버 인증서는 엔드포인트에 연결할 수 있는 프라이빗 DNS 호스트 이름을 지정해야 합니다.

**고유성 요구 사항**
+ VPC 엔드포인트 연결이 있는 외부 키 스토어가 `Amazon VPC`를 공유할 수 있지만 각 외부 키 스토어에는 자체 VPC 엔드포인트 서비스와 프라이빗 DNS 이름이 있어야 합니다.

### 프록시 구성 파일
<a name="proxy-configuration-file"></a>

**프록시 구성 파일은 외부 키 스토어의 [프록시 URI 경로](#require-path)와 [프록시 인증 자격 증명](#require-credential) 속성에 대한 값을 포함하는 선택적 JSON 기반 파일입니다. AWS KMS 콘솔에서 [외부 키 스토어를 생성하거나 편집](update-xks-keystore.md)할 때 프록시 구성 파일을 업로드하여 외부 키 스토어에 대한 구성 값을 제공할 수 있습니다. 이 파일을 사용하면 입력 및 붙여넣기 오류를 방지하고 외부 키 스토어의 값이 외부 키 스토어 프록시의 값과 일치하는지 확인할 수 있습니다.

프록시 구성 파일은 외부 키 스토어 프록시에 의해 생성됩니다. 외부 키 스토어 프록시가 프록시 구성 파일을 제공하는지 알아보려면 외부 키 스토어 프록시 설명서를 참조하세요.

다음은 가상 값이 포함된 올바른 형식의 프록시 구성 파일의 예입니다.

```
{
  "XksProxyUriPath": "/example-prefix/kms/xks/v1",
  "XksProxyAuthenticationCredential": {
    "AccessKeyId": "ABCDE12345670EXAMPLE",
    "RawSecretAccessKey": "0000EXAMPLEFA5FT0mCc3DrGUe2sti527BitkQ0Zr9MO9+vE="
  }
}
```

 AWS KMS 콘솔에서 외부 키 스토어를 생성하거나 편집할 때만 프록시 구성 파일을 업로드할 수 있습니다. [CreateCustomKeyStore](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateCustomKeyStore.html) 또는 [UpdateCustomKeyStore](https://docs.aws.amazon.com/kms/latest/APIReference/API_UpdateCustomKeyStore.html) 작업과 함께 사용할 수는 없지만 프록시 구성 파일의 값을 사용하여 파라미터 값이 올바른지 확인할 수 있습니다.

## 새로운 외부 키 저장소 생성
<a name="create-xks"></a>

필요한 사전 조건을 조합한 후에는 AWS KMS 콘솔에서 또는 [CreateCustomKeyStore](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateCustomKeyStore.html) 작업을 사용하여 새 외부 키 스토어를 생성할 수 있습니다.

### AWS KMS 콘솔 사용
<a name="create-keystore-console"></a>

외부 키 저장소를 생성하기 전에 [프록시 연결 유형을 선택](choose-xks-connectivity.md)한 다음, [필요한 구성 요소](#xks-requirements)를 모두 생성하고 구성했는지 확인합니다. 필요한 값을 찾는 데 도움이 필요한 경우 외부 키 스토어 프록시 또는 키 관리 소프트웨어에 대한 설명서를 참조하세요.

**참고**  
에서 외부 키 스토어를 생성할 때 *프록시 URI 경로 및 프록시 인증 자격 증명 값이 포함된 JSON 기반 프록시 구성 파일을* 업로드 AWS Management Console할 수 있습니다. [프록시 URI 경로](#require-path) [프록시 인증 자격 증명](#require-credential) 일부 프록시는 이 파일을 자동으로 생성합니다. 이 값은 필수가 아닙니다.

1. 에 로그인 AWS Management Console 하고 [https://console.aws.amazon.com/kms](https://console.aws.amazon.com/kms) AWS Key Management Service (AWS KMS) 콘솔을 엽니다.

1. 를 변경하려면 페이지 오른쪽 상단에 있는 리전 선택기를 AWS 리전사용합니다.

1. 탐색 창에서 **Custom key stores**(사용자 지정 키 스토어), **External key stores**(외부 키 스토어)를 선택합니다.

1. **Create external key store**(외부 키 스토어 생성)를 선택합니다.

1. 기억하기 쉬운 외부 키 스토어 이름을 입력합니다. 이름은 계정의 모든 외부 키 스토어에서 고유해야 합니다.
**중요**  
이 필드에 기밀 또는 민감한 정보를 포함하지 마십시오. 이 필드는 CloudTrail 로그 및 기타 출력에 일반 텍스트로 표시될 수 있습니다.

1. [프록시 연결](#require-connectivity) 유형을 선택합니다.

   프록시 연결 선택에 따라 외부 키 스토어 프록시에 [필요한 구성 요소가](#xks-requirements) 결정됩니다. 이 선택에 대한 도움말은 [외부 키 저장소 프록시 연결 옵션 선택](choose-xks-connectivity.md) 섹션을 참조하세요.

   1. VPC 엔드포인트 서비스가 다른 AWS 계정에 있는 경우 **교차 계정 VPC 엔드포인트 서비스**를 선택합니다. 그런 다음 VPC 엔드포인트 서비스 소유자 계정 AWS 계정 ID 필드에 VPC 엔드포인트 소유자의 ID를 입력합니다. **** 

   1. 이 외부 키 스토어에 대한 [VPC 엔드포인트 서비스](#require-vpc-service-name)의 이름을 선택하거나 입력합니다. 이 단계는 외부 키 저장소 프록시 연결 유형이 **VPC 엔드포인트 서비스**인 경우에만 나타납니다.

      VPC 엔드포인트 서비스와 해당 VPC가 외부 키 스토어의 요구 사항을 충족해야 합니다. 자세한 내용은 [사전 조건 수집](#xks-requirements)을 참조하세요.

1. 이 외부 키 스토어에 대한 [VPC 엔드포인트 서비스](#require-vpc-service-name)의 이름을 선택하거나 입력합니다. 이 단계는 외부 키 스토어 프록시 연결 유형이 **VPC endpoint service**(VPC 엔드포인트 서비스)인 경우에만 나타납니다.

   VPC 엔드포인트 서비스와 해당 VPC가 외부 키 스토어의 요구 사항을 충족해야 합니다. 자세한 내용은 [사전 조건 수집](#xks-requirements)을 참조하세요.

1. [프록시 URI 엔드포인트](#require-endpoint)를 입력합니다. 프로토콜은 포트 443의 IPv4를 통해 HTTPS. AWS KMS communicates여야 합니다. 프록시 URI 엔드포인트 값에 포트를 지정하지 마세요.

   가 이전 단계에서 지정한 VPC 엔드포인트 서비스를 AWS KMS 인식하면이 필드가 자동으로 작성됩니다.

   퍼블릭 엔드포인트 연결로 공개적으로 사용 가능한 엔드포인트 URI를 입력합니다. VPC 엔드포인트 연결로 `https://` 뒤에 VPC 엔드포인트 서비스의 프라이빗 DNS 이름을 지정합니다.

1. [프록시 URI 경로](#require-path) 접두사 및 [프록시 인증 자격 증명](#require-credential)의 값을 입력하려면 프록시 구성 파일을 업로드하거나 값을 수동으로 입력합니다.
   + [프록시 URI 경로](#require-path.title) 및 [프록시 인증 자격 증명](#require-credential)에 대한 값이 포함된 선택적 [프록시 구성 파일](#proxy-configuration-file)이 있는 경우 **Upload configuration file**(구성 파일 업로드)을 선택합니다. 단계에 따라 파일을 업로드합니다.

     파일이 업로드되면 콘솔은 편집 가능한 필드에 파일의 값을 표시합니다. 지금 값을 변경하거나 외부 키 스토어를 생성한 후 [이 값을 편집](update-xks-keystore.md)할 수 있습니다.

     비밀 액세스 키의 값을 표시하려면 **Show secret access key**(비밀 액세스 키 표시)를 선택합니다.
   + 프록시 구성 파일이 없는 경우 프록시 URI 경로 및 프록시 인증 자격 증명 값을 수동으로 입력할 수 있습니다.

     1. 프록시 구성 파일이 없는 경우에는 프록시 URI를 수동으로 입력할 수 있습니다. 콘솔에서 필요한 **/kms/xks/v1** 값을 제공합니다.

        [프록시 URI 경로](#require-path)에 선택적 접두사(예: `/example-prefix/kms/xks/v1`의 `example-prefix`)가 포함된 경우 **Proxy URI path prefix**(프록시 URI 경로 접두사) 필드에 접두사를 입력합니다. 그렇지 않은 경우 필드를 비워둡니다.

     1. 프록시 구성 파일이 없는 경우 [프록시 인증 자격 증명](keystore-external.md#concept-xks-credential)을 수동으로 입력할 수 있습니다. 액세스 키 ID와 비밀 액세스 키가 모두 필요합니다.
        + **Proxy credential: Access key ID**(프록시 자격 증명: 액세스 키 ID)에 프록시 인증 자격 증명의 액세스 키 ID를 입력합니다. 액세스 키 ID가 비밀 액세스 키를 식별합니다.
        + **Proxy credential: Secret access key**(프록시 자격 증명: 비밀 액세스 키)에 프록시 인증 자격 증명의 비밀 액세스 키를 입력합니다.

        비밀 액세스 키의 값을 표시하려면 **Show secret access key**(비밀 액세스 키 표시)를 선택합니다.

        이 절차는 외부 키 스토어 프록시에 설정한 인증 자격 증명을 설정하거나 변경하지 않습니다. 단지 이러한 값을 외부 키 스토어와 연결합니다. 프록시 인증 자격 증명 설정, 변경 및 교체에 대한 자세한 내용은 외부 키 스토어 프록시 또는 키 관리 소프트웨어 설명서를 참조하세요.

        프록시 인증 자격 증명이 변경되면 외부 키 스토어의 [자격 증명 설정을 편집](update-xks-keystore.md)합니다.

1. **Create external key store**(외부 키 스토어 생성)를 선택합니다.

절차가 성공하면 계정 및 리전의 외부 키 스토어 목록에 새로운 외부 키 스토어가 나타납니다. 절차가 실패하면 오류 메시지가 나타나서 문제를 설명하고 이를 수정할 수 있는 방법에 대한 도움말을 제공합니다. 도움이 더 필요한 경우 [외부 키에 대한 CreateKey 오류](xks-troubleshooting.md#fix-external-key-create) 섹션을 참조하십시오.

**다음**: 새로운 외부 키 스토어는 자동으로 연결되지 않습니다. 외부 키 스토어 AWS KMS keys 에서를 생성하려면 [먼저 외부 키 스토어 프록시에 외부 키 스토어를 연결](xks-connect-disconnect.md)해야 합니다.

### AWS KMS API 사용
<a name="create-keystore-api"></a>

[CreateCustomKeyStore](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateCustomKeyStore.html) 작업을 사용하여 외부 키 스토어를 새로 생성할 수 있습니다. 필수 파라미터의 값을 찾는 방법에 대한 도움말은 외부 키 스토어 프록시 또는 키 관리 소프트웨어 설명서를 참조하세요.

**작은 정보**  
`CreateCustomKeyStore` 작업을 사용할 때는 [프록시 구성 파일](#proxy-configuration-file)을 업로드할 수 없습니다. 그러나 프록시 구성 파일의 값을 사용하여 파라미터 값이 올바른지 확인할 수 있습니다.

외부 키 스토어를 생성하려면 `CreateCustomKeyStore` 작업에 다음 파라미터 값이 필요합니다.
+ `CustomKeyStoreName` – 계정에서 고유한 기억하기 쉬운 외부 키 스토어의 이름입니다.
**중요**  
이 필드에 기밀 또는 민감한 정보를 포함하지 마십시오. 이 필드는 CloudTrail 로그 및 기타 출력에 일반 텍스트로 표시될 수 있습니다.
+ `CustomKeyStoreType` - `EXTERNAL_KEY_STORE`를 지정합니다.
+ [`XksProxyConnectivity`](#require-connectivity) – `PUBLIC_ENDPOINT` 또는 `VPC_ENDPOINT_SERVICE`를 지정합니다.
+ [`XksProxyAuthenticationCredential`](keystore-external.md#concept-xks-credential) - 액세스 키 ID와 비밀 액세스 키를 모두 지정합니다.
+ [`XksProxyUriEndpoint`](#require-endpoint) - AWS KMS 가 외부 키 스토어 프록시와 통신하는 데 사용하는 엔드포인트입니다.
+ [`XksProxyUriPath`](#require-path) - 프록시 API에 대한 프록시 내의 경로입니다.
+ [`XksProxyVpcEndpointServiceName`](#require-vpc-service-name) - `XksProxyConnectivity` 값이 `VPC_ENDPOINT_SERVICE`인 경우에만 필요합니다.

**참고**  
 AWS CLI 버전 1.0을 사용하는 경우 파라미터와 같은 HTTP 또는 HTTPS 값으로 `XksProxyUriEndpoint` 파라미터를 지정하기 전에 다음 명령을 실행합니다.  

```
aws configure set cli_follow_urlparam false
```
그렇지 않으면 AWS CLI 버전 1.0이 파라미터 값을 해당 URI 주소에 있는 콘텐츠로 대체하여 다음 오류가 발생합니다.  

```
Error parsing parameter '--xks-proxy-uri-endpoint': Unable to retrieve 
https:// : received non 200 status code of 404
```

다음 예제에서는 가상의 값을 사용합니다. 명령을 실행하기 전에 해당 값을 외부 키 스토어의 유효한 값으로 바꾸세요.

퍼블릭 엔드포인트 연결이 있는 외부 키 스토어를 생성합니다.

```
$ aws kms create-custom-key-store
        --custom-key-store-name ExampleExternalKeyStorePublic \
        --custom-key-store-type EXTERNAL_KEY_STORE \
        --xks-proxy-connectivity PUBLIC_ENDPOINT \
        --xks-proxy-uri-endpoint https://myproxy.xks.example.com \
        --xks-proxy-uri-path /kms/xks/v1 \
        --xks-proxy-authentication-credential AccessKeyId=<value>,RawSecretAccessKey=<value>
```

VPC 엔드포인트 서비스 연결이 있는 외부 키 스토어를 생성합니다.

```
$ aws kms create-custom-key-store
        --custom-key-store-name ExampleExternalKeyStoreVPC \
        --custom-key-store-type EXTERNAL_KEY_STORE \
        --xks-proxy-connectivity VPC_ENDPOINT_SERVICE \
        --xks-proxy-vpc-endpoint-service-name com.amazonaws.vpce.us-east-1.vpce-svc-example \
        --xks-proxy-uri-endpoint https://myproxy-private.xks.example.com \
        --xks-proxy-uri-path /kms/xks/v1 \
        --xks-proxy-authentication-credential AccessKeyId=<value>,RawSecretAccessKey=<value>
```

작업이 성공하면 `CreateCustomKeyStore`가 사용자 지정 키 스토어 ID를 반환합니다(다음 예제 응답 참조).

```
{
    "CustomKeyStoreId": cks-1234567890abcdef0
}
```

작업이 실패할 경우 예외로 표시된 오류를 정정하고 다시 시도해보세요. 추가적인 도움말은 [외부 키 스토어 문제 해결](xks-troubleshooting.md) 섹션을 참조하십시오.

**다음**: 외부 키 스토어를 사용하려면 [외부 키 스토어 프록시에 연결](xks-connect-disconnect.md)합니다.

# 외부 키 저장소 속성 편집
<a name="update-xks-keystore"></a>

기존 외부 키 스토어의 선택된 속성을 편집할 수 있습니다.

외부 키 스토어가 연결되거나 연결 해제된 상태에서 일부 속성을 편집할 수 있습니다. 다른 속성의 경우 먼저 외부 키 스토어 프록시에서 [외부 키 스토어를 연결 해제](xks-connect-disconnect.md)해야 합니다. 외부 키 스토어의 [연결 상태](xks-connect-disconnect.md#xks-connection-state)는 `DISCONNECTED`여야 합니다. 외부 키 스토어가 연결 해제된 동안 사용자가 키 스토어와 해당 KMS 키를 관리할 수 있지만, 외부 키 스토어에서 KMS 키를 생성 또는 사용할 수 없습니다. 외부 키 스토어의 [연결 상태](xks-connect-disconnect.md#xks-connection-state)를 찾으려면 [DescribeCustomKeystore](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeCustomKeyStores.html) 작업을 사용하거나 외부 키 스토어의 세부 정보 페이지에서 **General configuration**(일반 구성) 섹션을 봅니다.

외부 키 스토어의 속성을 업데이트하기 전에는 새 값을 사용하여 외부 키 스토어 프록시에 [GetHealthStatus](keystore-external.md#concept-proxy-apis) 요청을 AWS KMS 보냅니다. 요청이 성공하면 업데이트된 속성 값을 사용하여 외부 키 스토어 프록시에 연결하고 인증할 수 있는 것입니다. 요청이 실패하면 오류를 식별하는 예외와 함께 편집 작업이 실패합니다.

편집 작업이 완료되면 외부 키 스토어의 업데이트된 속성 값이 AWS KMS 콘솔과 `DescribeCustomKeyStores` 응답에 나타납니다. 그러나 변경 내용이 완전히 적용되는 데 최대 5분이 걸릴 수 있습니다.

 AWS KMS 콘솔에서 외부 키 스토어를 편집하는 경우 [프록시 URI 경로](create-xks-keystore.md#require-path)와 프록시 [인증 자격](keystore-external.md#concept-xks-credential) 증명을 지정하는 JSON 기반 [프록시 구성 파일을](create-xks-keystore.md#proxy-configuration-file) 업로드할 수 있습니다. 일부 외부 키 스토어 프록시는 이 파일을 자동으로 생성합니다. 자세한 내용은 외부 키 스토어 프록시 또는 외부 키 관리자의 설명서를 참조하세요.

**주의**  
업데이트된 속성 값은 이전 값과 동일한 외부 키 관리자 또는 동일한 암호화 키를 사용하는 외부 키 관리자의 백업 또는 스냅샷에 대한 프록시에 외부 키 스토어를 연결해야 합니다. 외부 키 스토어가 KMS 키와 연결된 외부 키에 대한 액세스 권한을 영구적으로 상실하는 경우 해당 외부 키로 암호화된 사이퍼텍스트를 복구할 수 없습니다. 특히 외부 키 스토어의 프록시 연결을 변경하면가 외부 키 AWS KMS 에 액세스하지 못할 수 있습니다.

**작은 정보**  
일부 외부 키 관리자는 외부 키 스토어 속성을 편집하는 더 간단한 방법을 제공합니다. 자세한 내용은 외부 키 관리자 설명서를 참조하세요.

외부 키 스토리의 다음 속성을 변경할 수 있습니다.


| 편집 가능한 외부 키 스토어 속성 | 연결 상태 | 연결 해제됨 상태 필요 | 
| --- | --- | --- | 
| 사용자 지정 키 스토어 이름 사용자 지정 키 스토어에 필요한 이름입니다. 이 필드에 기밀 또는 민감한 정보를 포함하지 마십시오. 이 필드는 CloudTrail 로그 및 기타 출력에 일반 텍스트로 표시될 수 있습니다.  | ![\[Green checkmark icon indicating success or completion.\]](http://docs.aws.amazon.com/ko_kr/kms/latest/developerguide/images/icon-successful.png) |  | 
| [프록시 인증 자격 증명](keystore-external.md#concept-xks-credential)(XksProxyAuthenticationCredential)(액세스 키 ID와 비밀 액세스 키 모두 지정해야 합니다. 하나의 요소만 변경하는 경우에도 마찬가지입니다.) | ![\[Green checkmark icon indicating success or completion.\]](http://docs.aws.amazon.com/ko_kr/kms/latest/developerguide/images/icon-successful.png) |  | 
| [프록시 URI 경로](create-xks-keystore.md#require-path)(XksProxyUriPath) | ![\[Green checkmark icon indicating success or completion.\]](http://docs.aws.amazon.com/ko_kr/kms/latest/developerguide/images/icon-successful.png) |  | 
| [프록시 연결](keystore-external.md#concept-xks-connectivity)(XksProxyConnectivity)(프록시 URI 엔드포인트도 업데이트해야 합니다. VPC 엔드포인트 서비스 연결로 변경하는 경우 프록시 VPC 엔드포인트 서비스 이름을 지정해야 합니다.) |  | ![\[Green checkmark icon indicating success or completion.\]](http://docs.aws.amazon.com/ko_kr/kms/latest/developerguide/images/icon-successful.png) | 
| [프록시 URI 엔드포인트](create-xks-keystore.md#require-endpoint)(XksProxyUriEndpoint)프록시 엔드포인트 URI를 변경하는 경우 연결된 TLS 인증서도 변경해야 할 수 있습니다. |  | ![\[Green checkmark icon indicating success or completion.\]](http://docs.aws.amazon.com/ko_kr/kms/latest/developerguide/images/icon-successful.png) | 
| [프록시 VPC 엔드포인트 서비스 이름](create-xks-keystore.md#require-vpc-service-name)(XksProxyVpcEndpointServiceName)(이 필드는 VPC 엔드포인트 서비스 연결에 필요합니다.) |  | ![\[Green checkmark icon indicating success or completion.\]](http://docs.aws.amazon.com/ko_kr/kms/latest/developerguide/images/icon-successful.png) | 
| [VPC 엔드포인트 서비스 소유자](create-xks-keystore.md#require-vpc-service-name)(XksProxyVpcEndpointServiceOwner)(이 필드는 VPC 엔드포인트 서비스 연결에 필요합니다.) |  | ![\[Green checkmark icon indicating success or completion.\]](http://docs.aws.amazon.com/ko_kr/kms/latest/developerguide/images/icon-successful.png) | 

## 외부 키 저장소의 속성 편집
<a name="edit-xks-keystore"></a>

 AWS KMS 콘솔에서 또는 [UpdateCustomKeyStore](https://docs.aws.amazon.com/kms/latest/APIReference/API_UpdateCustomKeyStore.html) 작업을 사용하여 외부 키 스토어의 속성을 편집할 수 있습니다.

### AWS KMS 콘솔 사용
<a name="update-keystore-console"></a>

키 스토어를 편집할 때 편집 가능한 값을 변경할 수 있습니다. 일부 변경을 위해서는 외부 키 스토어와 외부 키 스토어 프록시를 연결 해제해야 합니다.

프록시 URI 경로 또는 프록시 인증 자격 증명을 편집하는 경우 새 값을 입력하거나 새 값이 포함된 외부 키 스토어 [프록시 구성 파일](create-xks-keystore.md#proxy-configuration-file)을 업로드할 수 있습니다.

1. 에 로그인 AWS Management Console 하고 [https://console.aws.amazon.com/kms](https://console.aws.amazon.com/kms) AWS Key Management Service (AWS KMS) 콘솔을 엽니다.

1. 를 변경하려면 페이지 오른쪽 상단의 리전 선택기를 AWS 리전사용합니다.

1. 탐색 창에서 **Custom key stores**(사용자 지정 키 스토어), **External key stores**(외부 키 스토어)를 선택합니다.

1. 편집하고 싶은 키 저장소를 선택합니다.

   1. 필요한 경우 외부 키 스토어 프록시에서 외부 키 스토어를 연결 해제합니다. **Key store actions**(키 스토어 작업) 메뉴에서 **Disconnect**(연결 해제)를 선택합니다.

1. **Key store actions**(키 스토어 작업) 메뉴에서 **Edit**(편집)를 선택합니다.

1. 편집 가능한 외부 키 스토어 속성을 하나 이상 변경합니다. 프록시 URI 경로 및 프록시 인증 자격 증명에 대한 값이 있는 외부 키 스토어 [프록시 구성 파일](create-xks-keystore.md#proxy-configuration-file)을 업로드할 수도 있습니다. 파일에 지정된 일부 값이 변경되지 않은 경우에도 프록시 구성 파일을 사용할 수 있습니다.

1. **Update external key store**(외부 키 스토어 업데이트)를 선택합니다.

1. 경고를 검토하고 계속하기로 결정한 경우 경고를 확인한 다음 **Update external key store**(외부 키 스토어 업데이트)를 선택합니다.

   절차가 성공하면 편집한 속성을 설명하는 메시지가 표시됩니다. 절차가 실패하면 오류 메시지가 나타나서 문제를 설명하고 이를 수정할 수 있는 방법에 대한 도움말을 제공합니다.

1. 필요한 경우 외부 키 스토어를 다시 연결합니다. **Key store actions**(키 스토어 작업) 메뉴에서 **Connect**(연결)를 선택합니다.

   외부 키 스토어를 연결 해제된 상태로 남겨둘 수 있습니다. 하지만 연결 해제되어 있는 동안에는 외부 키 스토어에서 KMS 키를 생성하거나, [암호화 작업](manage-cmk-keystore.md#use-cmk-keystore)에서 외부 키 스토어의 KMS 키를 사용할 수 없습니다.

### AWS KMS API 사용
<a name="update-keystore-api"></a>

외부 키 스토어의 속성을 변경하려면 [UpdateCustomKeyStore](https://docs.aws.amazon.com/kms/latest/APIReference/API_UpdateCustomKeyStore.html) 작업을 사용합니다. 동일한 작업으로 외부 키 스토어에서 여러 개의 속성을 변경할 수 있습니다. 작업이 성공하면는 HTTP 200 응답과 속성이 없는 JSON 객체를 AWS KMS 반환합니다.

`CustomKeyStoreId` 파라미터를 사용하여 외부 키 스토어를 식별합니다. 다른 파라미터를 사용하여 속성을 변경합니다. `UpdateCustomKeyStore` 작업과 함께 [프록시 구성 파일](create-xks-keystore.md#proxy-configuration-file)을 사용할 수 없습니다. 프록시 구성 파일은 AWS KMS 콘솔에서만 지원됩니다. 그러나 프록시 구성 파일을 사용하여 외부 키 스토어 프록시에 대한 올바른 파라미터 값을 결정할 수 있습니다.

이 섹션의 예제는 [AWS Command Line Interface (AWS CLI)](https://aws.amazon.com/cli/)를 사용하지만, 지원되는 모든 프로그래밍 언어를 사용할 수 있습니다.

시작하기 전에 [필요한 경우](#update-xks-keystore) 외부 키 스토어 프록시에서 [외부 키 스토어를 연결 해제](xks-connect-disconnect.md)합니다. 업데이트 후 필요한 경우 외부 키 스토어 프록시에 [외부 키 스토어를 다시 연결](xks-connect-disconnect.md)할 수 있습니다. 외부 키 스토어를 연결 해제 상태로 남겨둘 수 있지만, 키 스토어에서 새 KMS 키를 생성하거나 키 스토어에서 기존 KMS 키를 암호화 작업에 사용할 수 있으려면 먼저 이를 다시 연결해야 합니다.

**참고**  
 AWS CLI 버전 1.0을 사용하는 경우 파라미터와 같은 HTTP 또는 HTTPS 값으로 `XksProxyUriEndpoint` 파라미터를 지정하기 전에 다음 명령을 실행합니다.  

```
aws configure set cli_follow_urlparam false
```
그렇지 않으면 AWS CLI 버전 1.0이 파라미터 값을 해당 URI 주소에 있는 콘텐츠로 대체하여 다음 오류가 발생합니다.  

```
Error parsing parameter '--xks-proxy-uri-endpoint': Unable to retrieve 
https:// : received non 200 status code of 404
```

#### 외부 키 스토어의 이름 변경
<a name="xks-edit-name"></a>

첫 번째 예제에서 [UpdateCustomKeyStore](https://docs.aws.amazon.com/kms/latest/APIReference/API_UpdateCustomKeyStore.html) 작업을 사용하여 기억하기 쉬운 외부 키 스토어의 이름을 `XksKeyStore`로 변경합니다. 이 명령은 `CustomKeyStoreId` 파라미터를 사용해 사용자 지정 키 스토어를 식별하고, `CustomKeyStoreName` 파라미터를 사용해 사용자 지정 키 스토어에서 새 이름을 지정합니다. 모든 예제 값을 외부 키 스토어의 실제 값으로 바꿉니다.

```
$ aws kms update-custom-key-store --custom-key-store-id cks-1234567890abcdef0 --new-custom-key-store-name XksKeyStore
```

#### 프록시 인증 자격 증명 변경
<a name="xks-edit-credential"></a>

다음 예제에서는 AWS KMS 가 외부 키 스토어 프록시에 인증하는 데 사용하는 프록시 인증 자격 증명을 업데이트합니다. 이와 같은 명령을 사용하여 프록시에서 교체되는 경우 자격 증명을 업데이트할 수 있습니다.

먼저 외부 키 스토어 프록시에서 자격 증명을 업데이트합니다. 그런 다음 이 기능을 사용하여 AWS KMS에 변경 사항을 보고합니다. (프록시가 이전 자격 증명과 새 자격 증명을 모두 잠시 지원하므로 자격 증명을 업데이트할 시간이 있습니다 AWS KMS.)

자격 증명에 액세스 키 ID와 보안 액세스 키를 모두 지정해야 합니다. 하나의 값만 변경된 경우에도 마찬가지입니다.

처음 두 명령은 자격 증명 값을 보유하도록 변수를 설정합니다. `UpdateCustomKeyStore` 작업은 `CustomKeyStoreId` 파라미터를 사용하여 외부 키 스토어를 식별합니다. `XksProxyAuthenticationCredential` 파라미터를 `AccessKeyId` 및 `RawSecretAccessKey` 필드와 함께 사용하여 새 자격 증명을 지정합니다. 모든 예제 값을 외부 키 스토어의 실제 값으로 바꿉니다.

```
$ accessKeyID=access key id
$ secretAccessKey=secret access key

$ aws kms update-custom-key-store --custom-key-store-id cks-1234567890abcdef0 \
        --xks-proxy-authentication-credential \ 
            AccessKeyId=$accessKeyId,RawSecretAccessKey=$secretAccessKey
```

#### 프록시 URI 경로 변경
<a name="xks-edit-path"></a>

다음 예제에서는 프록시 URI 경로(`XksProxyUriPath`)를 업데이트합니다. 프록시 URI 엔드포인트와 프록시 URI 경로의 조합은 AWS 계정 및 리전에서 고유해야 합니다. 모든 예제 값을 외부 키 스토어의 실제 값으로 바꿉니다.

```
$ aws kms update-custom-key-store --custom-key-store-id cks-1234567890abcdef0 \
            --xks-proxy-uri-path /kms/xks/v1
```

#### VPC 엔드포인트 서비스 연결로 변경
<a name="xks-edit-connectivity-vpc"></a>

다음 예제에서는 [UpdateCustomKeyStore](https://docs.aws.amazon.com/kms/latest/APIReference/API_UpdateCustomKeyStore.html) 작업을 사용하여 외부 키 스토어 프록시 연결 유형을 `VPC_ENDPOINT_SERVICE`로 변경합니다. 이렇게 변경하려면 VPC 엔드포인트 서비스 이름(`XksProxyVpcEndpointServiceName`)과 VPC 엔드포인트 서비스의 프라이빗 DNS 이름을 포함하는 프록시 URI 엔드포인트(`XksProxyUriEndpoint`) 값을 포함하여 VPC 엔드포인트 서비스 연결에 필요한 값을 지정해야 합니다. 모든 예제 값을 외부 키 스토어의 실제 값으로 바꿉니다.

```
$ aws kms update-custom-key-store --custom-key-store-id cks-1234567890abcdef0 \
            --xks-proxy-connectivity "VPC_ENDPOINT_SERVICE" \
            --xks-proxy-uri-endpoint https://myproxy-private.xks.example.com \
            --xks-proxy-vpc-endpoint-service-name com.amazonaws.vpce.us-east-1.vpce-svc-example
```

#### 퍼블릭 엔드포인트 연결로 변경
<a name="xks-edit-connectivity-public"></a>

다음 예제에서는 외부 키 스토어 프록시 연결 유형을 `PUBLIC_ENDPOINT`로 변경합니다. 이렇게 변경할 때는 프록시 URI 엔드포인트(`XksProxyUriEndpoint`) 값을 업데이트해야 합니다. 모든 예제 값을 외부 키 스토어의 실제 값으로 바꿉니다.

**참고**  
VPC 엔드포인트 연결은 퍼블릭 엔드포인트 연결보다 더 강력한 보안을 제공합니다. 퍼블릭 엔드포인트 연결로 변경하기 전에 온프레미스에서 외부 키 스토어 프록시를 찾고 통신에만 VPC를 사용하는 등 다른 옵션을 고려해 보세요.

```
$ aws kms update-custom-key-store --custom-key-store-id cks-1234567890abcdef0 \
            --xks-proxy-connectivity "PUBLIC_ENDPOINT" \
            --xks-proxy-uri-endpoint https://myproxy.xks.example.com
```

# 외부 키 저장소 보기
<a name="view-xks-keystore"></a>

 AWS KMS 콘솔을 사용하거나 [DescribeCustomKeyStores](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeCustomKeyStores.html) 작업을 사용하여 각 계정 및 리전의 외부 키 스토어를 볼 수 있습니다.

외부 키 스토어를 볼 때 다음이 표시됩니다.
+ 키 스토어의 이름, ID, 키 스토어 유형 및 생성 날짜를 포함한 키 스토어에 대한 기본 정보.
+ [연결 유형](keystore-external.md#concept-xks-connectivity), [프록시 URI 엔드포인트](create-xks-keystore.md#require-endpoint) 및 [경로](create-xks-keystore.md#require-path), 현재 [프록시 인증 자격 증명](keystore-external.md#concept-xks-credential)의 [액세스 키 ID](keystore-external.md#concept-xks-credential)를 비롯한 [외부 키 스토어 프록시](keystore-external.md#concept-xks-proxy)에 대한 구성 정보.
+ 외부 키 스토어 프록시가 [VPC 엔드포인트 서비스 연결](choose-xks-connectivity.md#xks-vpc-connectivity)을 사용하는 경우 콘솔에 VPC 엔드포인트 서비스의 이름이 표시됩니다.
+ 현재 [연결 상태](xks-connect-disconnect.md#xks-connection-state).
**참고**  
연결 상태 값이 **Disconnected**(연결 해제됨)면 외부 키 스토어가 연결된 적이 없거나 의도적으로 해당 외부 키 스토어 프록시에서 연결 해제된 것입니다. 하지만 연결된 외부 키 스토어에서 KMS 키를 사용하려는 시도가 실패하는 것은 외부 키 스토어 또는 프록시에 문제가 있음을 의미할 수 있습니다. 도움말은 [외부 키 스토어 연결 오류](xks-troubleshooting.md#fix-xks-connection)를 참조하십시오.
+ 외부 키 스토어의 문제를 감지하고 해결하는 데 도움이 되도록 설계된 [Amazon CloudWatch 지표](monitoring-cloudwatch.md#kms-metrics) 그래프가 포함된 [Monitoring](xks-monitoring.md)(모니터링) 섹션. 그래프를 해석하고, 계획 및 문제 해결에 그래프를 사용하고, 그래프의 지표를 기반으로 CloudWatch 경보를 생성하는 방법에 대한 도움말은 [외부 키 저장소 모니터링](xks-monitoring.md) 섹션을 참조하세요.

## 외부 키 스토어 속성
<a name="view-xks-properties"></a>

외부 키 스토어의 다음 속성은 AWS KMS 콘솔과 [DescribeCustomKeyStores](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeCustomKeyStores.html) 응답에 표시됩니다.

### 사용자 지정 키 스토어 속성
<a name="view-xks-custom-key-store"></a>

다음 값은 각 사용자 지정 키 스토어에 대한 세부 정보 페이지의 **일반 구성** 섹션에 표시됩니다. 이러한 속성은 AWS CloudHSM 키 스토어 및 외부 키 스토어를 포함한 모든 사용자 지정 키 스토어에 적용됩니다.

**사용자 지정 키 스토어 ID**  
가 사용자 지정 키 스토어에 AWS KMS 할당하는 고유 ID입니다.

**사용자 지정 키 스토어 이름**  
사용자 지정 키 스토어를 생성할 때 할당하는 친숙한 이름입니다. 이 값은 언제든지 변경할 수 있습니다.

**사용자 지정 키 스토어 유형**  
사용자 지정 키 스토어의 유형입니다. 유효한 값은 AWS CloudHSM (`AWS_CLOUDHSM`) 또는 외부 키 스토어(`EXTERNAL_KEY_STORE`)입니다. 사용자 지정 키 스토어를 생성한 후에는 유형을 변경할 수 없습니다.

**Creation(생성) 날짜**  
사용자 지정 키 스토어가 생성된 날짜입니다. 이 날짜는 AWS 리전의 로컬 시간으로 표시됩니다.

**연결 상태**  
사용자 지정 키 스토어가 백업 키 스토어에 연결되어 있는지 여부를 나타냅니다. 연결 상태는 사용자 지정 키 스토어가 백업 키 스토어에 연결된 적이 없거나 의도적으로 연결 해제된 경우에만 `DISCONNECTED`입니다. 자세한 내용은 [연결 상태](xks-connect-disconnect.md#xks-connection-state)을 참조하세요.

### 외부 키 스토어 구성 속성
<a name="view-xks-configuration"></a>

각 외부 키 스토어에 대한 세부 정보 페이지의 **External key store proxy configuration**(외부 키 스토어 프록시 구성) 섹션과 [DescribeCustomKeyStores](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeCustomKeyStores.html) 응답의 `XksProxyConfiguration` 요소에 다음 값이 나타납니다. 고유성 요구 사항을 포함한 각 필드에 대한 자세한 설명과 각 필드의 올바른 값 결정에 대한 도움말은 *외부 키 스토어 생성* 주제의 [사전 조건 수집](create-xks-keystore.md#xks-requirements) 섹션을 참조하세요.

**프록시 연결**  
외부 키 스토어가 [퍼블릭 엔드포인트 연결](choose-xks-connectivity.md#xks-connectivity-public-endpoint)을 사용하는지 아니면 [VPC 엔드포인트 서비스 연결](choose-xks-connectivity.md#xks-vpc-connectivity)을 사용하는지를 나타냅니다.

**프록시 URI 엔드포인트**  
가 [외부 키 스토어 프록시](keystore-external.md#concept-xks-proxy)에 연결하는 데 AWS KMS 사용하는 엔드포인트입니다.

**프록시 URI 경로**  
가 프록시 API 요청을 AWS KMS 보내는 프록시 URI 엔드포인트의 경로입니다. [프록시 API](keystore-external.md#concept-proxy-apis) 

**프록시 자격 증명: 액세스 키 ID**  
외부 키 스토어 프록시에서 설정하는 [프록시 인증 자격 증명](keystore-external.md#concept-xks-credential)의 일부입니다. 액세스 키 ID는 자격 증명에서 비밀 액세스 키를 식별합니다.  
AWS KMS 는 SigV4 서명 프로세스와 프록시 인증 자격 증명을 사용하여 외부 키 스토어 프록시에 대한 요청에 서명합니다. 서명의 자격 증명을 사용하면 외부 키 스토어 프록시가 사용자를 대신하여 요청을 인증할 수 있습니다 AWS KMS.

**VPC 엔드포인트 서비스 이름**  
외부 키 스토어를 지원하는 Amazon VPC 엔드포인트 서비스의 이름입니다. 이 값은 외부 키 스토어가 [PC 엔드포인트 서비스 연결](choose-xks-connectivity.md#xks-vpc-connectivity)을 사용하는 경우에만 나타납니다. VPC에서 외부 키 스토어 프록시를 찾거나 VPC 엔드포인트 서비스를 사용하여 외부 키 스토어 프록시와 안전하게 통신할 수 있습니다.

**VPC 엔드포인트 서비스 소유자 ID**  
외부 키 저장소를 지원하는 Amazon VPC 엔드포인트 서비스의 ID입니다. 이 값은 외부 키 스토어가 [PC 엔드포인트 서비스 연결](choose-xks-connectivity.md#xks-vpc-connectivity)을 사용하는 경우에만 나타납니다. VPC에서 외부 키 스토어 프록시를 찾거나 VPC 엔드포인트 서비스를 사용하여 외부 키 스토어 프록시와 안전하게 통신할 수 있습니다.

## 외부 키 저장소 속성 보기
<a name="view-xks"></a>

 AWS KMS 콘솔에서 또는 [DescribeCustomKeyStores](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeCustomKeyStores.html) 작업을 사용하여 외부 키 스토어 및 관련 속성을 볼 수 있습니다.

### AWS KMS 콘솔 사용
<a name="view-xks-keystore-console"></a>

해당 계정 및 리전에서 외부 키 스토어를 보려면 다음 절차를 사용하세요.

1. 에 로그인 AWS Management Console 하고 [https://console.aws.amazon.com/kms](https://console.aws.amazon.com/kms) AWS Key Management Service (AWS KMS) 콘솔을 엽니다.

1. 를 변경하려면 페이지 오른쪽 상단의 리전 선택기를 AWS 리전사용합니다.

1. 탐색 창에서 **Custom key stores**(사용자 지정 키 스토어), **External key stores**(외부 키 스토어)를 선택합니다.

1. 외부 키 스토어에 대한 자세한 정보를 보려면 키 스토어 이름을 선택합니다.

### AWS KMS API 사용
<a name="view-xks-keystore-api"></a>

외부 키 스토어를 보려면 [DescribeCustomKeyStores](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeCustomKeyStores.html) 작업을 사용합니다. 기본적으로 이 작업은 계정 및 리전에서 모든 사용자 지정 키 스토어를 반환합니다. 그러나 `CustomKeyStoreId` 또는 `CustomKeyStoreName` 파라미터(둘 중 하나만)를 사용해서 특정한 사용자 지정 키 스토어로 출력을 제한할 수 있습니다.

사용자 지정 키 스토어의 경우 출력은 사용자 지정 키 스토어 ID, 이름 및 유형과 키 스토어의 [연결 상태](xks-connect-disconnect.md#xks-connection-state)로 이루어집니다. 연결 상태가 `FAILED`인 경우 출력에는 오류 원인을 설명하는 `ConnectionErrorCode`도 포함됩니다. 외부 키 스토어에 대한 `ConnectionErrorCode`를 해석하는 방법에 대한 도움말은 [외부 키 스토어의 연결 오류 코드](xks-troubleshooting.md#xks-connection-error-codes) 섹션을 참조하세요.

외부 키 스토어의 경우 출력에 `XksProxyConfiguration` 요소도 포함됩니다. 이 요소에는 [연결 유형](create-xks-keystore.md#require-connectivity), [프록시 URI 엔드포인트](create-xks-keystore.md#require-endpoint), [프록시 URI 경로](create-xks-keystore.md#require-path) 및 [프록시 인증 자격 증명](keystore-external.md#concept-xks-credential)의 액세스 키 ID가 포함됩니다.

이 섹션의 예제는 [AWS Command Line Interface (AWS CLI)](https://aws.amazon.com/cli/)를 사용하지만, 지원되는 모든 프로그래밍 언어를 사용할 수 있습니다.

예를 들어 다음 명령은 계정 및 리전에 모든 사용자 지정 키 스토어를 반환합니다. `Limit` 및 `Marker` 파라미터를 사용해 출력에서 사용자 지정 키 스토어를 탐색할 수 있습니다.

```
$ aws kms describe-custom-key-stores
```

다음 명령은 `CustomKeyStoreName` 파라미터를 사용해 기억하기 쉬운 이름이 `ExampleXksPublic`인 예제 외부 키 스토어만 검색합니다. 이 예제 키 스토어는 퍼블릭 엔드포인트 연결을 사용하며 외부 키 스토어 프록시에 연결됩니다.

```
$ aws kms describe-custom-key-stores --custom-key-store-name ExampleXksPublic
{
    "CustomKeyStores": [
    {
      "CustomKeyStoreId": "cks-1234567890abcdef0",
      "CustomKeyStoreName": "ExampleXksPublic",
      "ConnectionState": "CONNECTED",    
      "CreationDate": "2022-12-14T20:17:36.419000+00:00",
      "CustomKeyStoreType": "EXTERNAL_KEY_STORE",
      "XksProxyConfiguration": { 
        "AccessKeyId": "ABCDE12345670EXAMPLE",
        "Connectivity": "PUBLIC_ENDPOINT",
        "UriEndpoint": "https://xks.example.com:6443",
        "UriPath": "/example/prefix/kms/xks/v1"
      }
    }
  ]
}
```

이 명령은 VPC 엔드포인트 서비스 연결이 있는 예제 외부 키 스토어를 가져옵니다. 이 예제에서는 외부 키 스토어가 해당 외부 키 스토어 프록시에 연결됩니다.

```
$ aws kms describe-custom-key-stores --custom-key-store-name ExampleXksVpc
{
    "CustomKeyStores": [
    {
      "CustomKeyStoreId": "cks-9876543210fedcba9",
      "CustomKeyStoreName": "ExampleXksVpc",
      "ConnectionState": "CONNECTED",
      "CreationDate": "2022-12-13T18:34:10.675000+00:00",
      "CustomKeyStoreType": "EXTERNAL_KEY_STORE",
      "XksProxyConfiguration": { 
        "AccessKeyId": "ABCDE98765432EXAMPLE",
        "Connectivity": "VPC_ENDPOINT_SERVICE",
        "UriEndpoint": "https://example-proxy-uri-endpoint-vpc",
        "UriPath": "/example/prefix/kms/xks/v1",
        "VpcEndpointServiceName": "com.amazonaws.vpce.us-east-1.vpce-svc-example"
      }
    }
  ]
}
```

[`ConnectionState`](xks-connect-disconnect.md#xks-connection-state)가 `Disconnected`면 외부 키 스토어가 연결된 적이 없거나 의도적으로 해당 외부 키 스토어 프록시에서 연결 해제된 것입니다. 하지만 연결된 외부 키 스토어에서 KMS 키를 사용하려는 시도가 실패하는 것은 외부 키 스토어 프록시 또는 다른 외부 구성 요소에 문제가 있음을 의미할 수 있습니다.

외부 키 스토어의 `ConnectionState`가 `FAILED`면 `DescribeCustomKeyStores` 응답에 오류 원인을 설명하는 `ConnectionErrorCode` 요소가 포함됩니다.

예를 들어 다음 출력에서 `XKS_PROXY_TIMED_OUT` 값은가 외부 키 스토어 프록시에 연결할 AWS KMS 수 있음을 나타내지만 외부 키 스토어 프록시가 할당된 시간 AWS KMS 내에에 응답하지 않아 연결이 실패했습니다. 이 연결 오류 코드가 반복적으로 표시되면 외부 키 스토어 프록시 공급업체에 알립니다. 이를 비롯해 기타 연결 오류 문제에 대한 도움말은 [외부 키 스토어 문제 해결](xks-troubleshooting.md) 단원을 참조하십시오.

```
$ aws kms describe-custom-key-stores --custom-key-store-name ExampleXksVpc
{
    "CustomKeyStores": [
    {
      "CustomKeyStoreId": "cks-9876543210fedcba9",
      "CustomKeyStoreName": "ExampleXksVpc",
      "ConnectionState": "FAILED",
      "ConnectionErrorCode": "XKS_PROXY_TIMED_OUT",
      "CreationDate": "2022-12-13T18:34:10.675000+00:00",
      "CustomKeyStoreType": "EXTERNAL_KEY_STORE",
      "XksProxyConfiguration": { 
        "AccessKeyId": "ABCDE98765432EXAMPLE",
        "Connectivity": "VPC_ENDPOINT_SERVICE",
        "UriEndpoint": "https://example-proxy-uri-endpoint-vpc",
        "UriPath": "/example/prefix/kms/xks/v1",
        "VpcEndpointServiceName": "com.amazonaws.vpce.us-east-1.vpce-svc-example"
      }
    }
  ]
}
```

# 외부 키 저장소 모니터링
<a name="xks-monitoring"></a>

AWS KMS 는 외부 키 스토어와의 각 상호 작용에 대한 지표를 수집하여 CloudWatch 계정에 게시합니다. 이러한 지표는 각 외부 키 스토어에 대한 세부 정보 페이지의 모니터링 섹션에서 그래프를 생성하는 데 사용됩니다. 다음 주제에서는 그래프를 사용하여 외부 키 스토어에 영향을 미치는 운영 및 구성 문제를 식별하고 해결하는 방법을 자세히 설명합니다. CloudWatch 지표를 사용하여 외부 키 스토어가 예상대로 작동하지 않을 때 알려주는 경보를 설정하는 것이 좋습니다. 자세한 내용은 [Amazon CloudWatch를 사용한 모니터링](monitoring-cloudwatch.md)을 참조하세요.

**Topics**
+ [

## 그래프 보기
](#xks-monitoring-navigate)
+ [

## 그래프 해석
](#interpreting-graphs)

## 그래프 보기
<a name="xks-monitoring-navigate"></a>

다양한 수준의 세부 정보에서 그래프를 볼 수 있습니다. 기본적으로 각 그래프는 3시간의 시간 범위와 5분의 집계 [기간](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#CloudWatchPeriods)을 사용합니다. 콘솔 내에서 그래프 보기를 조정할 수 있지만 외부 키 스토어 세부 정보 페이지를 닫거나 브라우저를 새로 고치면 변경 사항이 기본 설정으로 되돌아갑니다. Amazon CloudWatch 용어에 대한 도움말은 [Amazon CloudWatch 개념](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html)을 참조하세요.

### 데이터 포인트 세부 정보 보기
<a name="graph-data-point"></a>

각 그래프의 데이터는 [AWS KMS 지표](https://docs.aws.amazon.com/kms/latest/developerguide/monitoring-cloudwatch.html#kms-metrics)에 의해 수집됩니다. 특정 데이터 포인트에 대한 자세한 정보를 보려면 선 그래프의 데이터 포인트 위에 마우스를 놓습니다. 그러면 그래프가 파생된 지표에 대한 자세한 정보가 포함된 팝업이 표시됩니다. 각 목록 항목은 해당 데이터 포인트에 기록된 [차원](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Dimension) 값을 표시합니다. 해당 데이터 포인트의 차원 값에 사용할 수 있는 지표 데이터가 없는 경우 팝업에 null 값(**–**)이 표시됩니다. 일부 그래프는 단일 데이터 포인트에 대해 여러 차원과 값을 기록합니다. [신뢰성 그래프](#reliability-graph) 등의 다른 그래프는 지표에서 수집한 데이터를 사용하여 고유한 값을 계산합니다. 각 목록 항목은 서로 다른 선 그래프 색과 연결됩니다.

### 시간 범위 수정
<a name="graph-time-range"></a>

[시간 범위](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/modify_graph_date_time.html)를 수정하려면 모니터링 섹션의 오른쪽 상단에서 미리 정의된 시간 범위 중 하나를 선택합니다. 미리 정의된 시간 범위는 1시간\$11주(**1h**(1시간), **3h**(3시간), **12h**(12시간), **1d**(1일), **3d**(3일) 또는 **1w**(1주))입니다. 이렇게 하면 모든 그래프의 시간 범위가 조정됩니다. 하나의 특정 그래프를 다른 시간 범위에서 보거나 사용자 지정 시간 범위를 설정하려면 그래프를 확대하거나 Amazon CloudWatch 콘솔에서 봅니다.

### 그래프 확대
<a name="graph-zoom"></a>

[미니 맵 확대/축소 기능](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/zoom-graph.html)을 사용하여 확대/축소 보기를 변경하지 않고도 선 그래프와 그래프의 누적된 부분의 섹션에 초점을 맞출 수 있습니다. 예를 들어, 미니 맵 확대/축소 기능을 사용하여 선 그래프의 최고점에 초점을 맞출 수 있으므로 동일한 타임라인에서 모니터링 섹션의 다른 그래프와 스파이크를 비교할 수 있습니다.

1. 초점을 맞추려는 그래프 영역을 선택하여 드래그한 다음 마우스 버튼을 놓습니다.

1. 확대/축소를 재설정하려면 안에 빼기(-) 기호가 있는 돋보기처럼 보이는 **확대/축소 재설정** 아이콘을 선택합니다.

### 그래프 확대
<a name="graph-enlarge"></a>

그래프를 확대하려면 개별 그래프의 오른쪽 상단에서 메뉴 아이콘을 선택하고 **Enlarge**(확대)를 선택합니다. 그래프 위로 마우스를 가져갈 때 메뉴 아이콘 옆에 나타나는 확대 아이콘을 선택할 수도 있습니다.

그래프를 확대하면 다른 기간, 사용자 지정 시간 범위 또는 새로 고침 간격을 지정하여 그래프 보기를 추가로 수정할 수 있습니다. 이러한 변경 사항은 확대 보기를 닫을 때 기본 설정으로 되돌아갑니다.

기간 수정  

1. **Period options**(기간 옵션) 메뉴를 선택합니다. 기본적으로 이 메뉴에는 값이 **5 minutes**(5분)로 표시됩니다.

1. 기간을 선택합니다. 미리 정의된 기간은 1초\$130일입니다.

   예를 들어, 문제 해결 시 유용할 수 있는 1분 보기를 선택할 수 있습니다. 또는 세부적이지 않은 1시간 보기를 선택할 수 있습니다. 이 보기는 시간 경과에 따른 추세를 볼 수 있도록 넓은 시간 범위(예: 3일)를 볼 때 유용할 수 있습니다. 자세한 내용은 **Amazon CloudWatch 사용 설명서의 [기간](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#CloudWatchPeriods)을 참조하세요.

시간 범위 또는 시간대 수정  

1. 1시간\$11주(**1h**(1시간), **3h**(3시간), **12h**(12시간), **1d**(1일), **3d**(3일) 또는 **1w**(1주))의 미리 정의된 시간 범위 중 하나를 선택합니다. 또는 **사용자 지정(Custom)**을 선택하여 나만의 시간 범위를 설정할 수 있습니다.

1. **Custom**(사용자 지정)을 선택합니다.

   1. *시간 범위:* 상자의 왼쪽 상단에서 **Absolute**(절대) 탭을 선택합니다. 캘린더 선택기나 텍스트 필드 상자를 사용하여 시간 범위를 지정합니다.

   1. *시간대:* 상자의 오른쪽 상단에서 드롭다운을 선택합니다. 시간대를 **UTC** 또는 **현지 시간대(Local time zone)**로 변경할 수 있습니다.

1. 시간 범위를 지정한 후 **적용(Apply)**을 선택합니다.

그래프의 데이터 새로 고침 빈도 수정  

1. 오른쪽 상단에서 **Refresh options**(새로 고침 옵션) 메뉴를 선택합니다.

1. 새로 고침 간격(**Off**(끄기), **10 Seconds**(10초), **1 Minute**(1분), **2 Minutes**(2분), **5 Minutes**(5분) 또는 **15 Minutes**(15분))을 선택합니다.

### Amazon CloudWatch 콘솔에서 그래프 보기
<a name="graph-in-cloudwatch"></a>

모니터링 섹션의 그래프는 AWS KMS 가 Amazon CloudWatch에 게시하는 사전 정의된 지표에서 파생됩니다. CloudWatch 콘솔에서 그래프를 열고 CloudWatch 대시보드에 저장할 수 있습니다. 외부 키 스토어가 여러 개 있는 경우 CloudWatch에서 해당 그래프를 열고 단일 대시보드에 저장하여 상태와 사용량을 비교할 수 있습니다.

**CloudWatch 대시보드에 추가**  
오른쪽 상단에서 **Add to dashboard**(대시보드에 추가)를 선택하여 모든 그래프를 Amazon CloudWatch 대시보드에 추가합니다. 기존 대시보드를 선택하거나 새로 생성할 수 있습니다. 이 대시보드를 사용하여 그래프와 경보의 사용자 지정 보기를 생성하는 방법에 대한 자세한 내용은 **Amazon CloudWatch 사용 설명서의 [Amazon CloudWatch 대시보드 사용](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html)을 참조하세요.

**CloudWatch에서 지표 보기**  
개별 그래프의 오른쪽 상단에 있는 메뉴 아이콘을 선택하고 **View in metrics**(지표에서 보기)를 선택하여 Amazon CloudWatch 콘솔에서 이 그래프를 봅니다. CloudWatch 콘솔에서 이 단일 그래프를 대시보드에 추가하고 시간 범위, 기간 및 새로 고침 간격을 수정할 수 있습니다. 자세한 내용은 Amazon CloudWatch 사용 설명서**의 [지표 그래프 작성](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/graph_metrics.html)을 참조하세요.

## 그래프 해석
<a name="interpreting-graphs"></a>

AWS KMS 는 AWS KMS 콘솔 내 외부 키 스토어의 상태를 모니터링하기 위한 여러 그래프를 제공합니다. 이러한 그래프는 자동으로 구성되고 [AWS KMS 지표](https://docs.aws.amazon.com/kms/latest/developerguide/monitoring-cloudwatch.html#kms-metrics)에서 파생됩니다.

그래프 데이터는 외부 키 스토어와 외부 키에 대한 호출의 일부로 수집됩니다. 호출하지 않은 시간 범위 동안 데이터 채우기 그래프가 표시될 수 있습니다.이 데이터는가 외부 키 스토어 프록시 및 외부 키 관리자의 상태를 확인하기 위해 사용자를 대신하여 AWS KMS 수행하는 정기 `GetHealthStatus` 호출에서 가져옵니다. 그래프에 **No data available**(사용 가능한 데이터 없음) 메시지가 표시되면 해당 시간 범위 동안 호출이 기록되지 않았거나 외부 키 스토어가 [`DISCONNECTED`](xks-connect-disconnect.md#xks-connection-state) 상태입니다. 더 넓은 시간 범위로 [보기를 조정](#graph-time-range)하여 외부 키 스토어가 연결 해제된 시간을 식별할 수 있습니다.

**Topics**
+ [

### 전체 요청
](#total-requests-graph)
+ [

### 신뢰성
](#reliability-graph)
+ [

### Latency
](#latency-graph)
+ [

### 상위 5개 예외
](#top-5-exceptions-graph)
+ [

### 인증서 만료 날짜
](#cert-expire-graph)

### 전체 요청
<a name="total-requests-graph"></a>

지정된 시간 범위 동안 특정 외부 키 스토어에 대해 수신되는 총 AWS KMS 요청 수입니다. 이 그래프를 사용하여 제한이 발생할 위험이 있는지 확인합니다.

AWS KMS 에서는 외부 키 관리자가 초당 최대 1,800개의 암호화 작업 요청을 처리할 수 있도록 권장합니다. 5분 동안 호출이 540,000건에 가까워지면 제한이 발생할 위험이 있습니다.

[ExternalKeyStoreThrottle](monitoring-cloudwatch.md#metric-throttling) 지표로 AWS KMS 제한되는 외부 키 스토어의 KMS 키에 대한 암호화 작업 요청 수를 모니터링할 수 있습니다.

'매우 높은 요청 빈도로 인해' 요청이 거부되었음을 설명하는 메시지와 함께 `KMSInvalidStateException` 오류가 매우 자주 발생하는 경우 외부 키 관리자 또는 외부 키 스토어 프록시가 현재 요청 빈도를 따라갈 수 없는 것일 수 있습니다. 가능하면 요청 빈도를 낮춥니다. 사용자 지정 키 스토어 요청 할당량 값의 감소를 요청하는 것도 고려할 수 있습니다. 이 할당량 값을 줄이면 제한이 증가할 수 있지만 AWS KMS 가 초과 요청이 외부 키 스토어 프록시 또는 외부 키 관리자로 전송되기 전에 신속하게 거부함을 나타냅니다. 할당량 감소를 요청하기 위해서는 [AWS Support 센터](https://console.aws.amazon.com/support/home)를 방문하여 케이스를 생성하세요.

총 요청 그래프는 AWS KMS 가 외부 키 스토어 프록시에서 수신하는 성공 및 실패 응답 모두에 대한 데이터를 수집하는 [XksProxyErrors](monitoring-cloudwatch.md#metric-xks-proxy-errors) 지표에서 파생됩니다. [특정 데이터 포인트를 보면](#graph-data-point) 팝업에 해당 데이터 포인트에 기록된 총 AWS KMS 요청 수와 함께 `CustomKeyStoreId`차원 값이 표시됩니다. `CustomKeyStoreId`는 항상 같습니다.

### 신뢰성
<a name="reliability-graph"></a>

외부 키 스토어 프록시가 성공한 응답 또는 재시도할 수 없는 오류를 반환한 AWS KMS 요청의 백분율입니다. 이 그래프를 사용하여 외부 키 스토어 프록시의 운영 상태를 평가합니다.

그래프에 100% 미만의 값이 표시되면 프록시가 응답하지 않았거나 재시도할 수 있는 오류로 응답한 것입니다. 이는 네트워크 문제, 외부 키 스토어 프록시 또는 외부 키 관리자의 속도 저하 또는 구현 버그를 나타낼 수 있습니다.

요청에 잘못된 자격 증명이 포함되어 있고 프록시가 `AuthenticationFailedException`으로 응답하는 경우 프록시가 [외부 키 스토어 프록시 API 요청](keystore-external.md#concept-proxy-apis)에서 잘못된 값을 식별하여 실패가 예상되기 때문에 그래프는 여전히 100% 신뢰성을 나타냅니다. 신뢰성 그래프의 백분율이 100%이면 외부 키 스토어 프록시가 예상대로 응답하고 있는 것입니다. 그래프에 100% 미만의 값이 표시되면 프록시가 재시도할 수 있는 오류로 응답했거나 시간이 초과된 것입니다. 예를 들어 프록시가 매우 높은 요청 빈도로 인해 `ThrottlingException`으로 응답하는 경우 프록시가 실패를 유발한 요청의 특정 문제를 식별할 수 없기 때문에 그래프에 낮은 신뢰성(백분율)이 표시됩니다. 이는 재시도할 수 있는 오류는 요청을 재시도하여 해결할 수 있는 일시적인 문제일 가능성이 높기 때문입니다.

다음 오류 응답은 신뢰성(백분율)을 낮춥니다. [상위 5개 예외](#top-5-exceptions-graph) 그래프와 [XksProxyErrors](monitoring-cloudwatch.md#metric-xks-proxy-errors) 지표를 사용하여 프록시가 각 재시도할 수 있는 오류를 반환하는 빈도를 추가로 모니터링할 수 있습니다.
+ `InternalException`
+ `DependencyTimeoutException`
+ `ThrottlingException`
+ `XksProxyUnreachableException`

신뢰성 그래프는 외부 키 스토어 프록시에서 [XksProxyErrors](monitoring-cloudwatch.md#metric-xks-proxy-errors)가 AWS KMS 수신하는 성공 및 실패 응답 모두에 대한 데이터를 수집하는 지표에서 파생됩니다. 응답의 `ErrorType` 값이 `Retryable`인 경우에만 신뢰성(백분율)이 낮아집니다. [특정 데이터 포인트를 보면](#graph-data-point) 팝업에 해당 데이터 포인트에 기록된 AWS KMS 요청에 대한 신뢰성 백분율과 함께 `CustomKeyStoreId`차원 값이 표시됩니다. `CustomKeyStoreId`는 항상 같습니다.

[XksProxyErrors](monitoring-cloudwatch.md#metric-xks-proxy-errors) 지표를 사용하여 1분 동안 재시도할 수 있는 오류가 5개 이상 기록되면 알림을 통해 잠재적인 네트워킹 문제를 통지하는 CloudWatch 경보를 생성하는 것이 좋습니다. 자세한 내용은 [재시도 가능한 오류에 대한 경보 생성](xks-alarms.md#retryable-errors-alarm) 단원을 참조하십시오.

### Latency
<a name="latency-graph"></a>

외부 키 스토어 프록시가 AWS KMS 요청에 응답하는 데 걸리는 밀리초 수입니다. 이 그래프를 사용하여 외부 키 스토어 프록시와 외부 키 관리자의 성능을 평가합니다.

AWS KMS 는 외부 키 스토어 프록시가 250밀리초 이내에 각 요청에 응답할 것으로 예상합니다. 네트워크 시간 초과의 경우 AWS KMS 는 요청을 한 번 재시도합니다. 프록시가 두 번째로 실패하는 경우 기록된 지연 시간은 두 요청 시도에 대한 제한 시간을 합산한 값이며 그래프에는 약 500밀리초가 표시됩니다. 프록시가 250밀리초 제한 시간 내에 응답하지 않는 다른 모든 경우에 기록된 지연 시간은 250밀리초입니다. 프록시의 암호화 및 복호화 작업 시간이 자주 초과되는 경우 외부 프록시 관리자에게 문의하세요. 지연 시간 문제를 해결하는 방법에 대한 도움말은 [지연 시간 및 제한 시간 오류](xks-troubleshooting.md#fix-xks-latency) 섹션을 참조하세요.

느린 응답은 외부 키 관리자가 현재 요청 트래픽을 처리할 수 없음을 나타낼 수도 있습니다. AWS KMS 는 외부 키 관리자가 초당 최대 1,800개의 암호화 작업 요청을 처리할 수 있도록 권장합니다. 외부 키 관리자가 초당 1,800개의 요청을 처리할 수 없는 경우 [사용자 지정 키 스토어에서 KMS 키에 대한 요청 할당량](requests-per-second.md#rps-key-stores) 감소를 요청하는 것이 좋습니다. 외부 키 스토어에서 KMS 키를 사용하는 암호화 작업에 대한 요청은 외부 키 스토어 프록시 또는 외부 키 관리자에 의해 처리되고 나중에 거부되는 대신 [제한 예외](throttling.md)와 함께 빠르게 실패합니다.

지연 시간 그래프는 [XksProxyLatency](monitoring-cloudwatch.md#metric-xks-proxy-latency) 지표에서 파생됩니다. [특정 데이터 포인트를 볼](#graph-data-point) 때 팝업에는 해당 데이터 포인트의 작업에 대해 기록된 평균 지연 시간과 함께 해당 `KmsOperation` 및 `XksOperation` 차원 값이 표시됩니다. 목록 항목은 지연 시간이 가장 긴 것부터 가장 짧은 것 순으로 정렬됩니다.

[XksProxyLatency](monitoring-cloudwatch.md#metric-xks-proxy-latency) 지표를 사용하여 지연 시간이 제한 시간에 도달하면 알려주는 CloudWatch 경보를 생성하는 것이 좋습니다. 자세한 내용은 [응답 제한 시간에 대한 경보 생성](xks-alarms.md#latency-alarm) 단원을 참조하십시오.

### 상위 5개 예외
<a name="top-5-exceptions-graph"></a>

지정된 시간 범위 동안 실패한 암호화 및 관리 작업에 대한 상위 5개 예외입니다. 이 그래프를 사용하여 가장 자주 발생하는 오류를 추적하면 엔지니어링 작업의 우선순위를 정할 수 있습니다.

이 수에는 외부 키 스토어 프록시에서 AWS KMS 수신한 예외와 외부 키 스토어 프록시와 통신을 설정할 수 없을 때 내부적으로 AWS KMS 반환`XksProxyUnreachableException`하는가 포함됩니다.

재시도할 수 있는 오류의 비율이 높으면 네트워킹 오류가 발생한 것일 수 있고, 재시도할 수 없는 오류의 비율이 높으면 외부 키 스토어 구성에 문제가 있는 것일 수 있습니다. 예를 들어의 스파이크는에 구성된 인증 자격 증명 AWS KMS 과 외부 키 스토어 프록시 간의 불일치를 `AuthenticationFailedExceptions` 나타냅니다. 외부 키 스토어 구성을 보려면 [외부 키 저장소 보기](view-xks-keystore.md) 섹션을 참조하세요. 외부 키 스토어 설정을 편집하려면 [외부 키 저장소 속성 편집](update-xks-keystore.md) 섹션을 참조하세요.

가 외부 키 스토어 프록시에서 AWS KMS 수신하는 예외는 작업이 실패할 때가 AWS KMS 반환하는 예외와 다릅니다. AWS KMS 암호화 작업은 외부 키 스토어의 외부 구성 또는 연결 상태와 관련된 모든 실패에 `KMSInvalidStateException` 대해를 반환합니다. 문제를 식별하려면 함께 제공되는 오류 메시지 텍스트를 사용합니다.

다음 표에는 상위 5개 예외 그래프에 나타날 수 있는 예외와가 AWS KMS 반환하는 해당 예외가 나와 있습니다.


| 오류 유형 | 그래프에 표시된 예외 | 에서 AWS KMS 반환한 예외 | 
| --- | --- | --- | 
| 재시도 불가능 | AccessDeniedException   문제 해결에 대한 도움말은 [프록시 권한 부여 문제](xks-troubleshooting.md#fix-xks-authorization) 섹션을 참조하세요. | `CreateKey` 작업에 대한 응답으로 **`CustomKeyStoreInvalidStateException`** 암호화 작업에 대한 응답으로 **`KMSInvalidStateException`** | 
| 재시도 불가능 | AuthenticationFailedException   문제 해결에 대한 도움말은 [인증 자격 증명 오류](xks-troubleshooting.md#fix-xks-credentials) 섹션을 참조하세요. | `CreateCustomKeyStore` 및 `UpdateCustomKeyStore` 작업에 대한 응답으로 **`XksProxyIncorrectAuthenticationCredentialException`**`CreateKey` 작업에 대한 응답으로 **`CustomKeyStoreInvalidStateException`** 암호화 작업에 대한 응답으로 **`KMSInvalidStateException`** | 
| 재시도 가능 | **`DependencyTimeoutException`** 문제 해결에 대한 도움말은 [지연 시간 및 제한 시간 오류](xks-troubleshooting.md#fix-xks-latency) 섹션을 참조하세요. | `CreateCustomKeyStore` 및 `UpdateCustomKeyStore` 작업에 대한 응답으로 **`XksProxyUriUnreachableException`** `CreateKey` 작업에 대한 응답으로 **`CustomKeyStoreInvalidStateException`** 암호화 작업에 대한 응답으로 **`KMSInvalidStateException`** | 
| 재시도 가능 | **`InternalException`** 외부 키 스토어 프록시가 외부 키 관리자와 통신할 수 없기 때문에 요청을 거부했습니다. 외부 키 스토어 프록시 구성이 올바른지, 외부 키 관리자를 사용할 수 있는지 확인합니다. | `CreateCustomKeyStore` 및 `UpdateCustomKeyStore` 작업에 대한 응답으로 **`XksProxyInvalidResponseException`** `CreateKey` 작업에 대한 응답으로 **`CustomKeyStoreInvalidStateException`** 암호화 작업에 대한 응답으로 **`KMSInvalidStateException`** | 
| 재시도 불가능 | **`InvalidCiphertextException`** 문제 해결에 대한 도움말은 [복호화 오류](xks-troubleshooting.md#fix-xks-decrypt) 섹션을 참조하세요. | 암호화 작업에 대한 응답으로 **`KMSInvalidStateException`** | 
| 재시도 불가능 | **`InvalidKeyUsageException`** 문제 해결에 대한 도움말은 [외부 키에 대한 암호화 작업 오류](xks-troubleshooting.md#fix-external-key-crypto) 섹션을 참조하세요. | `CreateKey` 작업에 대한 응답으로 **`XksKeyInvalidConfigurationException`** 암호화 작업에 대한 응답으로 **`KMSInvalidStateException`** | 
| 재시도 불가능 | **`InvalidStateException`** 문제 해결에 대한 도움말은 [외부 키에 대한 암호화 작업 오류](xks-troubleshooting.md#fix-external-key-crypto) 섹션을 참조하세요. | `CreateKey` 작업에 대한 응답으로 **`XksKeyInvalidConfigurationException`** 암호화 작업에 대한 응답으로 **`KMSInvalidStateException`** | 
| 재시도 불가능 | **`InvalidUriPathException`** 문제 해결에 대한 도움말은 [일반 구성 오류](xks-troubleshooting.md#fix-xks-gen-configuration) 섹션을 참조하세요. | `CreateCustomKeyStore` 및 `UpdateCustomKeyStore` 작업에 대한 응답으로 **`XksProxyInvalidConfigurationException`** `CreateKey` 작업에 대한 응답으로 **`CustomKeyStoreInvalidStateException`** 암호화 작업에 대한 응답으로 **`KMSInvalidStateException`** | 
| 재시도 불가능 | **`KeyNotFoundException`** 문제 해결에 대한 도움말은 [외부 키 오류](xks-troubleshooting.md#fix-external-key) 섹션을 참조하세요. | `CreateKey` 작업에 대한 응답으로 **`XksKeyNotFoundException`** 암호화 작업에 대한 응답으로 **`KMSInvalidStateException`** | 
| 재시도 가능 | **`ThrottlingException`** 매우 높은 요청 빈도로 인해 외부 키 스토어 프록시가 요청을 거부했습니다. 이 외부 키 스토어에서 KMS 키를 사용하여 호출 빈도를 줄입니다. | `CreateCustomKeyStore` 및 `UpdateCustomKeyStore` 작업에 대한 응답으로 **`XksProxyUriUnreachableException`** `CreateKey` 작업에 대한 응답으로 **`CustomKeyStoreInvalidStateException`** 암호화 작업에 대한 응답으로 **`KMSInvalidStateException`** | 
| 재시도 불가능 | **`UnsupportedOperationException`** 문제 해결에 대한 도움말은 [외부 키에 대한 암호화 작업 오류](xks-troubleshooting.md#fix-external-key-crypto) 섹션을 참조하세요. | `CreateKey` 작업에 대한 응답으로 **`XksKeyInvalidResponseException`** 암호화 작업에 대한 응답으로 **`KMSInvalidStateException`** | 
| 재시도 불가능 | **`ValidationException`** 문제 해결에 대한 도움말은 [프록시 문제](xks-troubleshooting.md#fix-xks-proxy) 섹션을 참조하세요. | `CreateCustomKeyStore` 및 `UpdateCustomKeyStore` 작업에 대한 응답으로 **`XksProxyInvalidResponseException`** `CreateKey` 작업에 대한 응답으로 **`CustomKeyStoreInvalidStateException`** 암호화 작업에 대한 응답으로 **`KMSInvalidStateException`** | 
| 재시도 가능 | **`XksProxyUnreachableException`** 이 오류가 반복적으로 표시되는 경우 외부 키 스토어 프록시가 활성 상태이고 네트워크에 연결되어 있는지, 해당 URI 경로와 엔드포인트 URI 또는 VPC 서비스 이름이 외부 키 스토어에서 올바른지 확인합니다. | `CreateCustomKeyStore` 및 `UpdateCustomKeyStore` 작업에 대한 응답으로 **`XksProxyUriUnreachableException`** `CreateKey` 작업에 대한 응답으로 **`CustomKeyStoreInvalidStateException`** 암호화 작업에 대한 응답으로 **`KMSInvalidStateException`** | 

상위 5개 예외 그래프는 [XksProxyErrors](monitoring-cloudwatch.md#metric-xks-proxy-errors) 지표에서 파생됩니다. [특정 데이터 포인트를 볼](#graph-data-point) 때 팝업에는 해당 데이터 포인트에서 예외가 기록된 횟수와 함께 `ExceptionName` 차원의 값이 표시됩니다. 5개의 목록 항목은 가장 빈번한 예외에서 가장 덜 빈번한 예외 순으로 정렬됩니다.

[XksProxyErrors](monitoring-cloudwatch.md#metric-xks-proxy-errors) 지표를 사용하여 1분 동안 재시도할 수 없는 오류가 5개 이상 기록되면 알림을 통해 잠재적인 구성 문제를 통지하는 CloudWatch 경보를 생성하는 것이 좋습니다. 자세한 내용은 [재시도 불가능한 오류에 대한 경보 생성](xks-alarms.md#nonretryable-errors-alarm) 단원을 참조하십시오.

### 인증서 만료 날짜
<a name="cert-expire-graph"></a>

외부 키 스토어 프록시 엔드포인트(`XksProxyUriEndpoint`)에 대한 TLS 인증서가 만료될 때까지의 일수입니다. 이 그래프를 사용하여 TLS 인증서의 예정된 만료를 모니터링합니다.

인증서가 만료되면는 외부 키 스토어 프록시와 통신할 AWS KMS 수 없습니다. 외부 키 스토어의 KMS 키로 보호되는 모든 데이터는 인증서를 갱신할 때까지 액세스할 수 없습니다.

인증서 만료 날짜 그래프는 [XksProxyCertificateDaysToExpire](monitoring-cloudwatch.md#metric-xks-proxy-certificate-days-to-expire) 지표에서 파생됩니다. 예정된 만료를 알리는 CloudWatch 경보를 생성하려면 이 지표를 사용하는 것이 좋습니다. 인증서 만료로 인해 암호화된 리소스에 액세스하지 못할 수 있습니다. 인증서가 만료되기 전에 인증서를 갱신할 시간을 조직에 제공하도록 경보를 설정합니다. 자세한 내용은 [인증서 만료에 대한 경보 생성](xks-alarms.md#cert-expire-alarm) 단원을 참조하십시오.

# 외부 키 저장소 연결 및 연결 해제
<a name="xks-connect-disconnect"></a>

새로운 외부 키 스토어는 연결되지 않습니다. 외부 키 스토어 AWS KMS keys 에서를 생성하고 사용하려면 외부 키 스토어 [프록시에 외부 키 스토어](keystore-external.md#concept-xks-proxy)를 연결해야 합니다. 외부 키 스토어를 언제든 연결 및 연결 해제하고 [연결 상태를 확인](view-xks-keystore.md)할 수 있습니다.

외부 키 스토어의 연결이 해제된 동안에는가 외부 키 스토어 프록시와 통신할 수 AWS KMS 없습니다. 따라서 외부 키 스토어와 기존 KMS 키를 보고 관리할 수 있습니다. 그러나 외부 키 스토어에서 KMS 키를 생성하거나 암호화 작업에 KMS 키를 사용할 수는 없습니다. 속성을 편집할 때와 같이 특정 시점에 외부 키 스토어를 연결 해제해야 할 수 있지만 그에 따라 계획해야 합니다. 키 스토어를 연결 해제하면 KMS 키를 사용하는 AWS 서비스의 작동이 중단될 수 있습니다.

외부 키 스토어를 연결할 필요는 없습니다. 외부 키 스토어를 연결 해제 상태로 무기한 남겨두고 사용 시에만 이를 연결할 수 있습니다. 하지만 설정이 올바른지, 연결이 가능한지 확인하기 위해 정기적으로 연결을 테스트하고 싶을 수 있습니다.

사용자 지정 키 스토어를 연결 해제하면 키 스토어의 KMS 키를 즉시 사용할 수 없게 됩니다(최종 일관성에 따라 다름). 그러나 KMS 키로 보호되는 [데이터 키](data-keys.md)로 암호화된 리소스는 데이터 키를 복호화하는 등 KMS 키를 다시 사용할 때까지 영향을 받지 않습니다. 이 문제는 리소스를 보호하기 위해 데이터 키를 사용하는 AWS 서비스에 영향을 미칩니다. 자세한 내용은 [사용할 수 없는 KMS 키가 데이터 키에 미치는 영향](unusable-kms-keys.md)을 참조하세요.

**참고**  
외부 키 스토어는 키 스토어가 연결되지 않았거나 연결을 직접 해제한 경우에만 `DISCONNECTED` 상태가 됩니다. `CONNECTED` 상태는 외부 키 스토어 또는 해당 지원 구성 요소가 효율적으로 작동하고 있음을 나타내지 않습니다. 외부 키 스토어 구성 요소의 성능에 대한 자세한 내용은 각 외부 키 스토어에 대한 세부 정보 페이지의 **Monitoring**(모니터링) 섹션에 있는 그래프를 참조하세요. 자세한 내용은 [외부 키 저장소 모니터링](xks-monitoring.md)을 참조하세요.  
외부 키 관리자는 외부 키 스토어와 AWS KMS 외부 키 스토어 프록시 간 또는 외부 키 스토어 프록시와 외부 키 관리자 간의 통신을 중지하고 다시 시작하는 추가 방법을 제공할 수 있습니다. 자세한 내용은 외부 키 관리자 설명서를 참조하세요.

**Topics**
+ [

## 연결 상태
](#xks-connection-state)
+ [

# 외부 키 저장소 연결
](about-xks-connecting.md)
+ [

# 외부 키 저장소 연결 해제
](about-xks-disconnecting.md)

## 연결 상태
<a name="xks-connection-state"></a>

연결 및 연결 해제는 사용자 지정 키 스토어의 **연결 상태를 변경합니다. 연결 상태 값은 AWS CloudHSM 키 스토어와 외부 키 스토어에서 동일합니다.

사용자 지정 키 스토어의 연결 상태를 보려면 [DescribeCustomKeyStores](https://docs.aws.amazon.com/kms/latest/APIReference/DescribeCustomKeyStores.html) 작업 또는 AWS KMS 콘솔을 사용합니다. **Connection state**(연결 상태)는 각 사용자 지정 키 스토어 테이블, 각 사용자 지정 키 스토어에 대한 세부 정보 페이지의 **General configuration**(일반 구성) 섹션 및 사용자 지정 키 스토어에 있는 KMS 키의 **Cryptographic configuration**(암호화 구성) 탭에 표시됩니다. 자세한 내용은 [AWS CloudHSM 키 스토어 보기](view-keystore.md) 및 [외부 키 저장소 보기](view-xks-keystore.md) 섹션을 참조하세요.

사용자 지정 키 스토어는 다음 연결 상태 중 하나를 가질 수 있습니다.
+ `CONNECTED`: 사용자 지정 키 스토어가 백업 키 스토어에 연결되어 있습니다. 사용자 지정 키 스토어에서 KMS 키를 생성하거나 사용할 수 있습니다.

  *키 스토어의 백업* AWS CloudHSM 키 스토어는 연결된 AWS CloudHSM 클러스터입니다. **외부 키 스토어의 백업 키 스토어는 외부 키 스토어 프록시와 이 프록시가 지원하는 외부 키 관리자입니다.

  CONNECTED 상태는 연결에 성공했으며 사용자 지정 키 스토어의 연결이 의도적으로 해제되지 않았음을 의미합니다. 그러나 연결이 제대로 작동하고 있음을 나타내지는 않습니다. AWS CloudHSM 키 스토어와 연결된 AWS CloudHSM 클러스터의 상태에 대한 자세한 내용은 AWS CloudHSM 사용 설명서의에 [대한 CloudWatch 지표 가져오기 AWS CloudHSM](https://docs.aws.amazon.com/cloudhsm/latest/userguide/hsm-metrics-cw.html)를 참조하세요. 외부 키 스토어의 상태 및 운영에 대한 자세한 내용은 각 외부 키 스토어에 대한 세부 정보 페이지의 **Monitoring**(모니터링) 섹션에 있는 그래프를 참조하세요. 자세한 내용은 [외부 키 저장소 모니터링](xks-monitoring.md)을 참조하세요.
+ `CONNECTING`: 사용자 지정 키 스토어 연결 작업이 진행 중입니다. 이것은 일시적인 상태입니다.
+ `DISCONNECTED`: 사용자 지정 키 스토어가 백업에 연결되지 않았거나 AWS KMS 콘솔 또는 [DisconnectCustomKeyStore](https://docs.aws.amazon.com/kms/latest/APIReference/DisconnectCustomKeyStores.html) 작업을 사용하여 의도적으로 연결이 해제되었습니다.
+ `DISCONNECTING`: 사용자 지정 키 스토어 연결 해제 작업이 진행 중입니다. 이것은 일시적인 상태입니다.
+ `FAILED`: 사용자 지정 키 스토어를 연결하려는 시도가 실패했습니다. [DescribeCustomKeyStores](https://docs.aws.amazon.com/kms/latest/APIReference/DescribeCustomKeyStores.html) 응답의 `ConnectionErrorCode`는 문제를 나타냅니다.

사용자 지정 키 스토어를 연결하려면 연결 상태가 `DISCONNECTED`여야 합니다. 연결 상태가 `FAILED`인 경우 `ConnectionErrorCode`를 사용하여 문제를 식별하고 해결합니다. 사용자 지정 키 스토어를 연결 해제한 후 다시 연결을 시도하세요. 연결 실패에 대한 도움말은 [외부 키 스토어 연결 오류](xks-troubleshooting.md#fix-xks-connection) 단원을 참조하십시오. 연결 오류 코드에 대응하는 방법에 대한 도움말은 [외부 키 스토어의 연결 오류 코드](xks-troubleshooting.md#xks-connection-error-codes) 섹션을 참조하세요.

연결 오류 코드를 보려면 다음을 수행하세요.
+ [DescribeCustomKeyStores](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeCustomKeyStores.html) 응답에서 `ConnectionErrorCode` 요소의 값을 확인합니다. 이 요소는 `ConnectionState`가 `FAILED`인 경우에만 `DescribeCustomKeyStores` 응답에 나타납니다.
+  AWS KMS 콘솔에서 연결 오류 코드를 보려면 외부 키 스토어의 세부 정보 페이지에서 **실패** 값 위에 마우스를 올려 놓습니다.  
![\[사용자 지정 키 스토어 세부 정보 페이지의 연결 오류 코드\]](http://docs.aws.amazon.com/ko_kr/kms/latest/developerguide/images/connection-error-code.png)

# 외부 키 저장소 연결
<a name="about-xks-connecting"></a>

외부 키 스토어가 외부 키 스토어 프록시에 연결되면 [외부 키 스토어에 KMS 키를 생성](create-cmk-keystore.md)하고 [암호화 작업](manage-cmk-keystore.md#use-cmk-keystore)에서 기존 KMS 키를 사용할 수 있습니다.

외부 키 스토어를 외부 키 스토어 프록시에 연결하는 프로세스는 외부 키 스토어의 연결에 따라 다릅니다.
+ [퍼블릭 엔드포인트 연결](keystore-external.md#concept-xks-connectivity)이 있는 외부 키 스토어를 연결하면 AWS KMS 가 [GetHealthStatus 요청](keystore-external.md#concept-proxy-apis)을 외부 키 스토어 프록시로 전송하여 [프록시 URI 엔드포인트](create-xks-keystore.md#require-endpoint), [프록시 URI 경로](create-xks-keystore.md#require-path) 및 [프록시 인증 자격 증명](keystore-external.md#concept-xks-credential)을 검증합니다. 프록시의 성공적인 응답은 [프록시 URI 엔드포인트](create-xks-keystore.md#require-endpoint)와 [프록시 URI 경로](create-xks-keystore.md#require-path)가 정확하고 액세스 가능하며 프록시가 외부 키 스토어에 대한 [프록시 인증 자격 증명](keystore-external.md#concept-xks-credential)으로 서명된 요청을 인증했음을 확인합니다.
+ [VPC 엔드포인트 서비스 연결이](choose-xks-connectivity.md#xks-vpc-connectivity) 있는 외부 키 스토어를 외부 키 스토어 프록시에 연결하면가 다음을 AWS KMS 수행합니다.
  + [프록시 URI 엔드포인트](create-xks-keystore.md#require-endpoint)에 지정된 프라이빗 DNS 이름의 도메인이 [검증](vpc-connectivity.md#xks-private-dns)되었는지 확인합니다.
  +  AWS KMS VPC에서 VPC 엔드포인트 서비스로 인터페이스 엔드포인트를 생성합니다.
  + 프록시 URI 엔드포인트에 지정된 프라이빗 DNS 이름에 대한 프라이빗 호스팅 영역을 생성합니다.
  + 외부 키 스토어 프록시로 [GetHealthStatus 요청](keystore-external.md#concept-proxy-apis)을 전송합니다. 프록시의 성공적인 응답은 [프록시 URI 엔드포인트](create-xks-keystore.md#require-endpoint)와 [프록시 URI 경로](create-xks-keystore.md#require-path)가 정확하고 액세스 가능하며 프록시가 외부 키 스토어에 대한 [프록시 인증 자격 증명](keystore-external.md#concept-xks-credential)으로 서명된 요청을 인증했음을 확인합니다.

연결 작업은 사용자 지정 키 스토어를 연결하는 프로세스를 시작하지만 외부 키 스토어를 외부 프록시에 연결하는 데 5분가량 걸립니다. 연결 작업의 성공 응답은 외부 키 스토어가 연결되었음을 나타내지 않습니다. 연결이 성공했는지 확인하려면 AWS KMS 콘솔 또는 [DescribeCustomKeyStores](https://docs.aws.amazon.com/kms/latest/APIReference/DescribeCustomKeyStores.html) 작업을 사용하여 키 스토어 외부의 [연결 상태를](xks-connect-disconnect.md#xks-connection-state) 확인합니다.

연결 상태가 이면 `FAILED`연결 오류 코드가 AWS KMS 콘솔에 표시되고 `DescribeCustomKeyStore` 응답에 추가됩니다. 연결 오류 코드를 해석하는 방법에 대한 도움말은 [외부 키 스토어의 연결 오류 코드](xks-troubleshooting.md#xks-connection-error-codes) 섹션을 참조하세요.

## 외부 키 저장소에 연결 및 다시 연결
<a name="connect-xks"></a>

 AWS KMS 콘솔에서 또는 [ConnectCustomKeyStore](https://docs.aws.amazon.com/kms/latest/APIReference/API_ConnectCustomKeyStore.html) 작업을 사용하여 외부 키 스토어를 연결하거나 다시 연결할 수 있습니다.

### AWS KMS 콘솔 사용
<a name="connect-xks-console"></a>

 AWS KMS 콘솔을 사용하여 외부 키 스토어 프록시에 외부 키 스토어를 연결할 수 있습니다.

1. 에 로그인 AWS Management Console 하고 [https://console.aws.amazon.com/kms](https://console.aws.amazon.com/kms) AWS Key Management Service (AWS KMS) 콘솔을 엽니다.

1. 를 변경하려면 페이지 오른쪽 상단의 리전 선택기를 AWS 리전사용합니다.

1. 탐색 창에서 **Custom key stores**(사용자 지정 키 스토어), **External key stores**(외부 키 스토어)를 선택합니다.

1. 연결하려는 외부 키 스토어의 행을 선택합니다.

   외부 키 스토어의 [연결 상태](xks-connect-disconnect.md#xks-connection-state)가 **FAILED**(실패)면 연결에 앞서 [외부 키 스토어를 연결 해제](disconnect-keystore.md#disconnect-keystore-console)해야 합니다.

1. **Key store actions**(키 스토어 작업) 메뉴에서 **Connect**(연결)를 선택합니다.

연결 프로세스를 완료하는 데 일반적으로 5분가량 걸립니다. 작업이 완료되면 [연결 상태](xks-connect-disconnect.md#xks-connection-state)가 **CONNECTED**(연결됨)로 변경됩니다.

연결 상태가 **Failed**(실패)인 경우 연결 상태 위로 마우스를 가져가면 오류의 원인을 설명하는 **연결 오류 코드가 표시됩니다. 연결 오류 코드에 대응하는 방법에 대한 도움말은 [외부 키 스토어의 연결 오류 코드](xks-troubleshooting.md#xks-connection-error-codes) 섹션을 참조하세요. 연결 상태가 **Failed**(실패)인 외부 키 스토어를 연결하려면 먼저 [사용자 지정 키 스토어를 연결 해제](disconnect-keystore.md#disconnect-keystore-console)해야 합니다.

### AWS KMS API 사용
<a name="connect-xks-api"></a>

연결 해제된 외부 키 스토어를 연결하려면 [ConnectCustomKeyStore](https://docs.aws.amazon.com/kms/latest/APIReference/API_ConnectCustomKeyStore.html) 작업을 사용합니다.

연결하기 전에 외부 키 스토어의 [연결 상태](xks-connect-disconnect.md#xks-connection-state)연결 상태가 `DISCONNECTED`여야 합니다. 현재 연결 상태가 `FAILED`면 [외부 키 스토어를 연결 해제](about-xks-disconnecting.md#disconnect-xks-api)한 다음 다시 연결합니다.

이 연결 프로세스를 완료하는 데 5분가량 소요됩니다. 빨리 실패하지 않는 한, `ConnectCustomKeyStore`는 속성 없이 HTTP 200 응답과 JSON 객체를 반환합니다. 하지만 이러한 초기 응답은 연결이 성공했음을 의미하지는 않습니다. 외부 키 스토어가 연결되어 있는지 확인하려면 [DescribeCustomKeystore](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeCustomKeyStores.html) 응답에서 연결 상태를 확인합니다.

이 섹션의 예제는 [AWS Command Line Interface (AWS CLI)](https://aws.amazon.com/cli/)를 사용하지만, 지원되는 모든 프로그래밍 언어를 사용할 수 있습니다.

외부 키 스토어를 식별하려면 사용자 지정 키 스토어 ID를 사용합니다. 콘솔의 **Custom key stores(사용자 지정 키 스토어)** 페이지에서, 또는 [DescribeCustomKeyStores](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeCustomKeyStores.html) 작업을 사용하여 ID를 찾을 수 있습니다. 이 예제를 실행하기 앞서 예제 ID를 유효한 ID로 바꿉니다.

```
$ aws kms connect-custom-key-store --custom-key-store-id cks-1234567890abcdef0
```

`ConnectCustomKeyStore` 작업은 응답에 `ConnectionState`를 반환하지 않습니다. 외부 키 스토어가 연결되어 있는지 확인하려면 [DescribeCustomKeyStores](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeCustomKeyStores.html) 작업을 사용합니다. 기본적으로 이 작업은 계정 및 리전에서 모든 사용자 지정 키 스토어를 반환합니다. 그러나 `CustomKeyStoreId` 또는 `CustomKeyStoreName` 파라미터(둘 중 하나만)를 사용해서 특정한 사용자 지정 키 스토어로 응답을 제한할 수 있습니다. `ConnectionState` 값이 `CONNECTED`면 외부 키 스토어가 외부 키 스토어 프록시에 연결되어 있는 것입니다.

```
$ aws kms describe-custom-key-stores --custom-key-store-name ExampleXksVpc
{
    "CustomKeyStores": [
    {
      "CustomKeyStoreId": "cks-9876543210fedcba9",
      "CustomKeyStoreName": "ExampleXksVpc",
      "ConnectionState": "CONNECTED",
      "CreationDate": "2022-12-13T18:34:10.675000+00:00",
      "CustomKeyStoreType": "EXTERNAL_KEY_STORE",
      "XksProxyConfiguration": { 
        "AccessKeyId": "ABCDE98765432EXAMPLE",
        "Connectivity": "VPC_ENDPOINT_SERVICE",
        "UriEndpoint": "https://example-proxy-uri-endpoint-vpc",
        "UriPath": "/example/prefix/kms/xks/v1",
        "VpcEndpointServiceName": "com.amazonaws.vpce.us-east-1.vpce-svc-example"
      }
    }
  ]
}
```

`DescribeCustomKeyStores` 응답의 `ConnectionState` 값이 `FAILED`면 `ConnectionErrorCode` 요소는 실패의 원인을 나타냅니다.

다음 예제에서의 `XKS_VPC_ENDPOINT_SERVICE_NOT_FOUND` 값은가 외부 키 스토어 프록시와 통신하는 데 사용하는 VPC 엔드포인트 서비스를 찾을 AWS KMS 수 없음을 `ConnectionErrorCode` 나타냅니다. `XksProxyVpcEndpointServiceName`가 올바른지, AWS KMS 서비스 보안 주체가 Amazon VPC 엔드포인트 서비스에서 허용되는 보안 주체인지, VPC 엔드포인트 서비스가 연결 요청을 수락할 필요가 없는지 확인합니다. 연결 오류 코드에 대응하는 방법에 대한 도움말은 [외부 키 스토어의 연결 오류 코드](xks-troubleshooting.md#xks-connection-error-codes) 섹션을 참조하세요.

```
$ aws kms describe-custom-key-stores --custom-key-store-name ExampleXksVpc
{
    "CustomKeyStores": [
    {
      "CustomKeyStoreId": "cks-9876543210fedcba9",
      "CustomKeyStoreName": "ExampleXksVpc",
      "ConnectionState": "FAILED",
      "ConnectionErrorCode": "XKS_VPC_ENDPOINT_SERVICE_NOT_FOUND",
      "CreationDate": "2022-12-13T18:34:10.675000+00:00",
      "CustomKeyStoreType": "EXTERNAL_KEY_STORE",
      "XksProxyConfiguration": { 
        "AccessKeyId": "ABCDE98765432EXAMPLE",
        "Connectivity": "VPC_ENDPOINT_SERVICE",
        "UriEndpoint": "https://example-proxy-uri-endpoint-vpc",
        "UriPath": "/example/prefix/kms/xks/v1",
        "VpcEndpointServiceName": "com.amazonaws.vpce.us-east-1.vpce-svc-example"
      }
    }
  ]
}
```

# 외부 키 저장소 연결 해제
<a name="about-xks-disconnecting"></a>

[VPC 엔드포인트 서비스 연결](choose-xks-connectivity.md#xks-vpc-connectivity)이 있는 외부 키 스토어를 외부 키 스토어 프록시에서 연결 해제하면 AWS KMS 는 VPC 엔드포인트 서비스에 대한 인터페이스 엔드포인트를 삭제하고 연결을 지원하기 위해 생성한 네트워크 인프라를 제거합니다. 퍼블릭 엔드포인트 연결이 있는 외부 키 스토어에는 동등한 프로세스가 필요하지 않습니다. 이 작업은 VPC 엔드포인트 서비스 또는 지원 구성 요소에 영향을 주지 않으며 외부 키 스토어 프록시 또는 외부 구성 요소에도 영향을 주지 않습니다.

외부 키 스토어의 연결이 해제된 동안에는 AWS KMS 가 외부 키 스토어 프록시에 요청을 보내지 않습니다. 외부 키 스토어의 연결 상태는 `DISCONNECTED`입니다. 연결 해제된 외부 키 스토어의 KMS 키는 [`UNAVAILABLE` 키 상태](key-state.md)([삭제 보류 중](deleting-keys.md)이 아닌 경우)이므로 암호화 작업에 사용할 수 없습니다. 그러나 외부 키 스토어와 기존 KMS 키를 계속 보고 관리할 수 있습니다.

연결 해제된 상태는 일시적이고 되돌릴 수 있도록 설계되었습니다. 언제든지 외부 키 스토어를 다시 연결할 수 있습니다. 일반적으로 재구성이 필요하지 않습니다. 그러나 연결 해제된 동안 연결된 외부 키 스토어 프록시의 속성이 변경된 경우(예: [프록시 인증 자격 증명](keystore-external.md#concept-xks-credential)의 교체) 다시 연결하기 전에 [외부 키 스토어 설정을 편집](update-xks-keystore.md)해야 합니다.

**참고**  
사용자 지정 키 스토어의 연결이 해제된 상태에서는 사용자 지정 키 스토어에서 KMS 키를 생성하거나, 암호화 작업을 위해 기존 KMS 키를 사용하려는 모든 시도가 실패합니다. 이 작업은 사용자가 기밀 데이터를 저장하거나 액세스하지 못하도록 차단합니다.

외부 키 스토어의 연결 해제가 미치는 영향을 정확하게 예측하려면 외부 키 스토어에서 KMS 키를 식별하고 [과거 사용량을 판단](deleting-keys-determining-usage.md)합니다.

다음과 같은 이유로 외부 키 스토어를 연결 해제할 수 있습니다.
+ **속성을 편집하기 위해.** 외부 키 스토어가 연결되어 있는 동안 사용자 지정 키 스토어 이름, 프록시 URI 경로 및 프록시 인증 자격 증명을 편집할 수 있습니다. 그러나 프록시 연결 유형, 프록시 URI 엔드포인트 또는 VPC 엔드포인트 서비스 이름을 편집하려면 먼저 외부 키 스토어를 연결 해제해야 합니다. 자세한 내용은 [외부 키 저장소 속성 편집](update-xks-keystore.md)을 참조하세요.
+  AWS KMS 와 외부 키 스토어 프록시 간의 **모든 통신을 중지**합니다. 엔드포인트 또는 VPC 엔드포인트 서비스를 비활성화하여 AWS KMS 와 프록시 간의 통신을 중지할 수도 있습니다. 또한 외부 키 스토어 프록시 또는 키 관리 소프트웨어는가 프록시와 AWS KMS 통신하지 못하도록 하거나 프록시가 외부 키 관리자에 액세스하지 못하도록 하는 추가 메커니즘을 제공할 수 있습니다.
+ 외부 키 스토어에서 **모든 KMS 키를 비활성화하기 위해**. AWS KMS 콘솔 또는 [DisableKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DisableKey.html) 작업을 사용하여 외부 키 스토어에서 [KMS 키를 비활성화하고 다시 활성화](enabling-keys.md)할 수 있습니다. 이러한 작업은 빠르게 완료되지만(최종 일관성에 따라 다름) 한 번에 하나의 KMS 키에 대해 작동합니다. 외부 키 스토어를 연결 해제하면 외부 키 스토어에서 모든 KMS 키의 키 상태가 `Unavailable`로 변경되면서 암호화 작업에서 사용이 불가능한 상태가 됩니다.
+ **실패한 연결 시도를 복구하려면**. 외부 키 스토어를 연결하려는 시도가 실패하면(사용자 지정 키 스토어의 연결 상태가 `FAILED`) 다시 연결을 시도하기에 앞서 외부 키 스토어를 연결 해제해야 합니다.

## 외부 키 저장소 연결 해제
<a name="disconnect-xks"></a>

 AWS KMS 콘솔에서 또는 [DisconnectCustomKeyStore](https://docs.aws.amazon.com/kms/latest/APIReference/API_DisconnectCustomKeyStore.html) 작업을 사용하여 외부 키 스토어의 연결을 해제할 수 있습니다.

### AWS KMS 콘솔 사용
<a name="disconnect-xks-console"></a>

 AWS KMS 콘솔을 사용하여 외부 키 스토어 프록시에 외부 키 스토어를 연결할 수 있습니다. 이 프로세스를 완료하는 데 5분가량 소요됩니다.

1. 에 로그인 AWS Management Console 하고 [https://console.aws.amazon.com/kms](https://console.aws.amazon.com/kms) AWS Key Management Service (AWS KMS) 콘솔을 엽니다.

1. 를 변경하려면 페이지 오른쪽 상단의 리전 선택기를 AWS 리전사용합니다.

1. 탐색 창에서 **Custom key stores**(사용자 지정 키 스토어), **External key stores**(외부 키 스토어)를 선택합니다.

1. 연결 해제하려는 외부 키 스토어의 행을 선택합니다.

1. **Key store actions**(키 스토어 작업) 메뉴에서 **Disconnect**(연결 해제)를 선택합니다.

작업이 완료되면 연결 상태가 **DISCONNECTING(연결 해제 중)**에서 **DISCONNECTED(연결 해제됨)**로 변경됩니다. 작업이 실패하면 오류 메시지가 나타나서 문제를 설명하고 이를 수정할 수 있는 방법에 대한 도움말을 제공합니다. 도움이 더 필요한 경우 [외부 키 스토어 연결 오류](xks-troubleshooting.md#fix-xks-connection) 섹션을 참조하십시오.

### AWS KMS API 사용
<a name="disconnect-xks-api"></a>

연결된 외부 키 스토어를 연결 해제하려면 [DisconnectCustomKeyStore](https://docs.aws.amazon.com/kms/latest/APIReference/API_DisconnectCustomKeyStore.html) 작업을 사용합니다. 작업이 성공하면 속성이 없는 JSON 객체와 HTTP 200 응답을 AWS KMS 반환합니다. 이 프로세스를 완료하는 데 5분가량 소요됩니다. 외부 키 스토어의 연결 상태를 확인하려면 [DescribeCustomKeyStores](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeCustomKeyStores.html) 작업을 사용합니다.

이 섹션의 예제는 [AWS Command Line Interface (AWS CLI)](https://aws.amazon.com/cli/)를 사용하지만, 지원되는 모든 프로그래밍 언어를 사용할 수 있습니다.

이 예제에서는 VPC 엔드포인트 서비스 연결이 있는 외부 키 스토어를 연결 해제합니다. 이 예제를 실행하기 앞서 예제에 나온 사용자 지정 키 스토어 ID를 유효한 ID로 대체합니다.

```
$ aws kms disconnect-custom-key-store --custom-key-store-id cks-1234567890abcdef0
```

외부 키 스토어가 연결 해제되어 있는지 확인하려면 [DescribeCustomKeyStores](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeCustomKeyStores.html) 작업을 사용합니다. 기본적으로 이 작업은 계정 및 리전에서 모든 사용자 지정 키 스토어를 반환합니다. 그러나 `CustomKeyStoreId` 또는 `CustomKeyStoreName` 파라미터(둘 중 하나만)를 사용해서 특정한 사용자 지정 키 스토어로 응답을 제한할 수 있습니다. `ConnectionState` 값이 `DISCONNECTED`면 외부 키 스토어가 이 예제 외부 키 스토어 프록시에 더 이상 연결되어 있지 않은 것입니다.

```
$ aws kms describe-custom-key-stores --custom-key-store-name ExampleXksVpc
{
    "CustomKeyStores": [
    {
      "CustomKeyStoreId": "cks-9876543210fedcba9",
      "CustomKeyStoreName": "ExampleXksVpc",
      "ConnectionState": "DISCONNECTED",
      "CreationDate": "2022-12-13T18:34:10.675000+00:00",
      "CustomKeyStoreType": "EXTERNAL_KEY_STORE",
      "XksProxyConfiguration": { 
        "AccessKeyId": "ABCDE98765432EXAMPLE",
        "Connectivity": "VPC_ENDPOINT_SERVICE",
        "UriEndpoint": "https://example-proxy-uri-endpoint-vpc",
        "UriPath": "/example/prefix/kms/xks/v1",
        "VpcEndpointServiceName": "com.amazonaws.vpce.us-east-1.vpce-svc-example"
      }
    }
  ]
}
```

# 외부 키 저장소 삭제
<a name="delete-xks"></a>

외부 키 스토어를 삭제하면는 외부 키 스토어 프록시에 대한 정보를 AWS KMS포함하여 외부 키 스토어에 대한 모든 메타데이터를 AWS KMS 삭제합니다. 이 작업은 [외부 키 스토어 프록시](keystore-external.md#concept-xks-proxy), [외부 키 관리자](keystore-external.md#concept-ekm), [외부 키](keystore-external.md#concept-external-key) 또는 Amazon VPC 또는 VPC 엔드포인트 서비스와 같이 외부 키 스토어를 지원하기 위해 생성한 AWS 리소스에는 영향을 주지 않습니다.

외부 키 스토어를 삭제하기 전에 키 스토어에서 [모든 KMS 키를 삭제](deleting-keys.md)하고 외부 키 스토어 프록시에서 [키 스토어를 연결 해제](xks-connect-disconnect.md)해야 합니다. 그렇지 않으면 키 스토어를 삭제하려는 시도가 실패합니다.

외부 키 스토어 삭제는 되돌릴 수 없지만 새 외부 키 스토어를 생성하여 동일한 외부 키 스토어 프록시 및 외부 키 관리자와 연결할 수 있습니다. 그러나 동일한 외부 키 구성 요소에 액세스할 수 있더라도 외부 키 스토어에서 대칭 암호화 KMS 키를 다시 생성할 수 없습니다.는 각 KMS 키에 고유한 대칭 사이퍼텍스트에 메타데이터를 AWS KMS 포함합니다. 이 보안 기능은 데이터를 암호화한 KMS 키만 해당 데이터를 복호화할 수 있도록 합니다.

외부 키 스토어를 삭제하는 대신 연결 해제하는 것을 고려해 보세요. 외부 키 스토어의 연결이 끊긴 동안 외부 키 스토어와 해당를 관리할 수 AWS KMS keys 있지만 외부 키 스토어에서 KMS 키를 생성하거나 사용할 수는 없습니다. 언제든지 외부 키 스토어를 다시 연결하고 KMS 키를 사용하여 데이터를 암호화 및 복호화를 재개할 수 있습니다. 연결 해제된 외부 키 스토어 프록시 또는 사용할 수 없는 KMS 키에 대한 비용은 없습니다.

 AWS KMS 콘솔에서 또는 [DeleteCustomKeyStore](https://docs.aws.amazon.com/kms/latest/APIReference/API_DeleteCustomKeyStore.html) 작업을 사용하여 외부 키 스토어를 삭제할 수 있습니다.

## AWS KMS 콘솔 사용
<a name="delete-xks-console"></a>

 AWS KMS 콘솔을 사용하여 외부 키 스토어를 삭제할 수 있습니다.

1. 에 로그인 AWS Management Console 하고 [https://console.aws.amazon.com/kms](https://console.aws.amazon.com/kms) AWS Key Management Service (AWS KMS) 콘솔을 엽니다.

1. 를 변경하려면 페이지 오른쪽 상단에 있는 리전 선택기를 AWS 리전사용합니다.

1. 탐색 창에서 **Custom key stores**(사용자 지정 키 스토어), **External key stores**(외부 키 스토어)를 선택합니다.

1. 삭제하려는 외부 키 스토어를 나타내는 열을 찾습니다. 외부 키 스토어의 **Connection state**(연결 상태)가 **DISCONNECTED**(연결 해제됨)가 아닌 경우 [외부 키 스토어를 연결 해제](about-xks-disconnecting.md#disconnect-xks-console)한 다음 삭제해야 합니다.

1. **Key store actions**(키 스토어 작업) 메뉴에서 **Delete**(삭제)를 선택합니다.

작업이 완료되면 성공 메시지가 나타나고, 외부 키 스토어는 더 이상 외부 키 스토어 목록에 나타나지 않습니다. 작업이 실패하면 오류 메시지가 나타나서 문제를 설명하고 이를 수정할 수 있는 방법에 대한 도움말을 제공합니다. 도움이 더 필요한 경우 [외부 키 스토어 문제 해결](xks-troubleshooting.md) 섹션을 참조하십시오.

## AWS KMS API 사용
<a name="delete-xks-api"></a>

외부 키 스토어를 삭제하려면 [DeleteCustomKeyStore](https://docs.aws.amazon.com/kms/latest/APIReference/API_DeleteCustomKeyStore.html) 작업을 사용합니다. 작업이 성공하면 HTTP 200 응답과 속성이 없는 JSON 객체를 AWS KMS 반환합니다.

시작하려면 외부 키 스토어를 연결 해제합니다. 이 명령을 실행하기 앞서 예시에 나온 사용자 지정 키 저장소 ID를 유효한 ID로 대체합니다.

```
$ aws kms disconnect-custom-key-store --custom-key-store-id cks-1234567890abcdef0
```

외부 키 스토어가 연결 해제된 후에는 [DeleteCustomKeyStore](https://docs.aws.amazon.com/kms/latest/APIReference/API_DeleteCustomKeyStore.html) 작업을 사용하여 이를 삭제할 수 있습니다.

```
$ aws kms delete-custom-key-store --custom-key-store-id cks-1234567890abcdef0
```

외부 키 스토어가 삭제되었는지 확인하려면 [DescribeCustomKeyStores](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeCustomKeyStores.html) 작업을 사용합니다.

```
$ aws kms describe-custom-key-stores
            
{
    "CustomKeyStores": []
}
```

더 이상 존재하지 않는 사용자 지정 키 스토어 이름 또는 ID를 지정하면가 `CustomKeyStoreNotFoundException` 예외를 AWS KMS 반환합니다.

```
$ aws kms describe-custom-key-stores --custom-key-store-id cks-1234567890abcdef0

An error occurred (CustomKeyStoreNotFoundException) when calling the DescribeCustomKeyStore operation:
```

# 외부 키 스토어 문제 해결
<a name="xks-troubleshooting"></a>

외부 키 스토어와 관련된 대부분의 문제에 대한 해결 방법은 각 예외와 함께 AWS KMS 표시되는 오류 메시지 또는 [외부 키 스토어](xks-connect-disconnect.md)를 외부 키 스토어 프록시에 연결하려는 시도가 실패할 때 AWS KMS 가 반환하는 연결 [오류 코드](#fix-xks-connection)로 표시됩니다. 그러나 몇몇 문제는 조금 더 복잡합니다.

외부 키 스토어 문제를 진단할 때는 먼저 원인을 찾습니다. 이렇게 하면 해결 방법의 범위가 좁아지고 문제 해결이 보다 효율적으로 이루어집니다.
+ AWS KMS - [외부 키 스토어 구성](create-xks-keystore.md#xks-requirements)의 잘못된 값과 AWS KMS같은 문제가 내에 있을 수 있습니다.
+ 외부 - 외부 키 스토어 프록시 AWS KMS, 외부 키 관리자, 외부 키 또는 VPC 엔드포인트 서비스의 구성 또는 작업 문제를 포함하여 외부에서 문제가 발생할 수 있습니다.
+ 네트워킹 - 연결 또는 네트워킹 문제일 수 있습니다(예: 프록시 엔드포인트, 포트, IP 스택 또는 프라이빗 DNS 이름 또는 도메인 문제).

**참고**  
외부 키 스토어의 관리 작업이 실패하면 여러 가지 예외가 생성됩니다. 그러나 암호화 작업은 외부 키 스토어의 외부 구성 또는 연결 상태와 관련된 모든 실패에 `KMSInvalidStateException` 대해 AWS KMS 를 반환합니다. 문제를 식별하려면 함께 제공되는 오류 메시지 텍스트를 사용합니다.  
[ConnectCustomKeyStore](xks-connect-disconnect.md) 작업은 연결 프로세스가 완료되기 전에 빠르게 성공합니다. 연결 프로세스의 성공 여부를 확인하려면 외부 키 스토어의 [연결 상태](xks-connect-disconnect.md#xks-connection-state)를 확인합니다. 연결 프로세스가 실패하면 AWS KMS 는 원인을 설명하고 해결 방법을 제안하는 [연결 오류 코드](#xks-connection-error-codes)를 반환합니다.

**Topics**
+ [

## 외부 키 스토어에 대한 문제 해결 도구
](#xks-troubleshooting-tools)
+ [

## 구성 오류
](#fix-xks-configuration)
+ [

## 외부 키 스토어 연결 오류
](#fix-xks-connection)
+ [

## 지연 시간 및 제한 시간 오류
](#fix-xks-latency)
+ [

## 인증 자격 증명 오류
](#fix-xks-credentials)
+ [

## 키 상태 오류
](#fix-unavailable-xks-keys)
+ [

## 복호화 오류
](#fix-xks-decrypt)
+ [

## 외부 키 오류
](#fix-external-key)
+ [

## 프록시 문제
](#fix-xks-proxy)
+ [

## 프록시 권한 부여 문제
](#fix-xks-authorization)

## 외부 키 스토어에 대한 문제 해결 도구
<a name="xks-troubleshooting-tools"></a>

AWS KMS 는 외부 키 스토어 및 해당 키의 문제를 식별하고 해결하는 데 도움이 되는 여러 도구를 제공합니다. 이러한 도구를 외부 키 스토어 프록시 및 외부 키 관리자와 함께 제공되는 도구와 결합하여 사용하세요.

**참고**  
외부 키 스토어 프록시와 외부 키 관리자는 외부 키 스토어와 해당 KMS 키를 생성하고 유지 관리하는 더 쉬운 방법을 제공할 수 있습니다. 자세한 내용은 외부 도구 설명서를 참조하세요.

**AWS KMS 예외 및 오류 메시지**  
AWS KMS 는 발생하는 모든 문제에 대한 자세한 오류 메시지를 제공합니다. AWS KMS 예외에 대한 추가 정보는 [https://docs.aws.amazon.com/kms/latest/APIReference/](https://docs.aws.amazon.com/kms/latest/APIReference/) 및 AWS SDKs. AWS KMS 콘솔을 사용하더라도 이러한 참조가 유용할 수 있습니다. 예를 들어, `CreateCustomKeyStores` 작업에 대한 [Errors](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateCustomKeyStore.html#API_CreateCustomKeyStore_Errors)(오류) 목록을 참조하세요.  
외부 키 저장소 프록시의 성능을 최적화하기 위해 AWS KMS 는 지정된 집계 기간인 5분 내에 프록시의 신뢰성을 기반으로 예외를 반환합니다. 500 내부 서버 오류, 503 서비스 사용 불가 또는 연결 제한 시간이 발생하는 경우 신뢰성이 높은 프록시에서 `KMSInternalException`을 반환하고 자동 재시도를 트리거하여 요청이 최종적으로 성공할 수 있도록 합니다. 하지만 신뢰성이 낮은 프록시는 `KMSInvalidStateException`을 반환합니다. 자세한 내용은 [외부 키 저장소 모니터링](https://docs.aws.amazon.com/kms/latest/developerguide/xks-monitoring.html)을 참조하세요.  
외부 키 스토어의 KMS 키를 사용하여 다른 AWS 서비스의 리소스를 보호하는 경우와 같이 다른 AWS 서비스에 문제가 표시되는 경우, AWS 이 서비스는 문제를 식별하는 데 도움이 되는 추가 정보를 제공할 수 있습니다. AWS 서비스가 메시지를 제공하지 않는 경우 KMS 키 사용을 기록하는 [CloudTrail 로그](logging-using-cloudtrail.md)에서 오류 메시지를 볼 수 있습니다.

**[CloudTrail 로그](logging-using-cloudtrail.md)**  
 AWS KMS 콘솔의 작업을 포함한 모든 AWS KMS API 작업은 AWS CloudTrail 로그에 기록됩니다.는 성공 및 실패한 작업에 대한 로그 항목을 AWS KMS 기록합니다. 실패한 작업의 경우 로그 항목에 AWS KMS 예외 이름(`errorCode`)과 오류 메시지(`errorMessage`)가 포함됩니다. 이 정보를 사용하여 오류를 식별하고 해결할 수 있습니다. 예제는 [외부 키 스토어에서 KMS 키로 복호화 실패](ct-decrypt.md#ct-decrypt-xks-fail) 섹션을 참조하세요.  
로그 항목에는 요청 ID도 포함됩니다. 요청이 외부 키 스토어 프록시에 도달한 경우 로그 항목의 요청 ID를 사용하여 프록시 로그에서 해당 요청을 찾을 수 있습니다(프록시에서 제공하는 경우).

**[CloudWatch 지표](monitoring-cloudwatch.md#kms-metrics)**  
AWS KMS 는 지연 시간, 제한, 프록시 오류, 외부 키 관리자 상태, TLS 인증서가 만료될 때까지의 일수, 프록시 인증 자격 증명의 보고된 수명을 포함하여 외부 키 스토어의 운영 및 성능에 대한 자세한 Amazon CloudWatch 지표를 기록합니다. 이러한 지표를 사용하여 임박한 문제가 발생하기 전에 알리는 외부 키 스토어 및 CloudWatch 경보 작동을 위한 데이터 모델을 개발할 수 있습니다.  
AWS KMS 에서는 외부 키 스토어 지표를 모니터링하기 위해 CloudWatch 경보를 생성할 것을 권장합니다. 이러한 경보는 문제가 발생하기 전에 문제의 조기 징후를 알려줍니다.

**[모니터링 그래프](xks-monitoring.md)**  
AWS KMS 는 AWS KMS 콘솔의 각 외부 키 스토어에 대한 세부 정보 페이지에 외부 키 스토어 CloudWatch 지표의 그래프를 표시합니다. 그래프의 데이터를 사용하여 오류의 원인을 찾고, 임박한 문제를 감지하고, 기준선을 설정하고, CloudWatch 경보 임계값을 세부 조정할 수 있습니다. 모니터링 그래프 해석 및 해당 데이터 사용에 대한 자세한 내용은 [외부 키 저장소 모니터링](xks-monitoring.md) 섹션을 참조하세요.

**외부 키 스토어 및 KMS 키 표시**  
AWS KMS 는 외부 키 스토어 및 KMS 키에 대한 자세한 정보를 AWS KMS 콘솔의 외부 키 스토어와 [DescribeCustomKeyStores](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeCustomKeyStores.html) 및 [DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html) 작업에 대한 응답으로 표시합니다. 외부 키 스토어의 [연결 상태](xks-connect-disconnect.md#xks-connection-state) 및 KMS 키와 연결된 외부 키의 ID를 비롯하여 문제 해결에 사용할 수 있는 정보와 함께 외부 키 스토어 및 KMS 키에 대한 특수 필드 등이 표시됩니다. 자세한 내용은 [외부 키 저장소 보기](view-xks-keystore.md)을 참조하세요.

**[XKS 프록시 테스트 클라이언트](https://github.com/aws-samples/aws-kms-xksproxy-test-client)**  
AWS KMS 는 외부 키 스토어 프록시가 [AWS KMS 외부 키 스토어 프록시 API 사양을](https://github.com/aws/aws-kms-xksproxy-api-spec/) 준수하는지 확인하는 오픈 소스 테스트 클라이언트를 제공합니다. 이 테스트 클라이언트를 사용하여 외부 키 스토어 프록시의 문제를 식별하고 해결할 수 있습니다.

## 구성 오류
<a name="fix-xks-configuration"></a>

외부 키 스토어를 생성할 때 [프록시 인증 자격 증명](create-xks-keystore.md#require-credential), [프록시 URI 엔드포인트](create-xks-keystore.md#require-endpoint), [프록시 URI 경로](create-xks-keystore.md#require-path) 및 [VPC 엔드포인트 서비스 이름](create-xks-keystore.md#require-vpc-service-name)과 같은 외부 키 스토어의 *구성*을 포함하는 속성 값을 지정합니다. 가 속성 값의 오류를 AWS KMS 감지하면 작업이 실패하고 결함이 있는 값을 나타내는 오류를 반환합니다.

잘못된 값을 수정하여 많은 구성 문제를 해결할 수 있습니다. 외부 키 스토어를 연결 해제하지 않고도 잘못된 프록시 URI 경로 또는 프록시 인증 자격 증명을 수정할 수 있습니다. 고유성 요구 사항을 포함하여 이러한 값의 정의는 [사전 조건 수집](create-xks-keystore.md#xks-requirements) 섹션을 참조하세요. 이러한 값 업데이트에 대한 지침은 [외부 키 저장소 속성 편집](update-xks-keystore.md) 섹션을 참조하세요.

프록시 URI 경로 및 프록시 인증 자격 증명 값의 오류를 방지하려면 외부 키 스토어를 생성하거나 업데이트할 때 [프록시 구성 파일](create-xks-keystore.md#proxy-configuration-file)을 AWS KMS 콘솔에 업로드합니다. 외부 키 스토어 프록시 또는 외부 키 관리자가 제공하는 프록시 URI 경로 및 프록시 인증 자격 증명 값이 있는 JSON 기반 파일입니다. AWS KMS API 작업에는 프록시 구성 파일을 사용할 수 없지만 파일의 값을 사용하여 프록시의 값과 일치하는 API 요청에 대한 파라미터 값을 제공할 수 있습니다.

### 일반 구성 오류
<a name="fix-xks-gen-configuration"></a>

**예외**: `CustomKeyStoreInvalidStateException`(`CreateKey`), `KMSInvalidStateException`(암호화 작업), `XksProxyInvalidConfigurationException`(관리 작업, `CreateKey` 제외)

[**연결 오류 코드**](#xks-connection-error-codes): `XKS_PROXY_INVALID_CONFIGURATION`, `XKS_PROXY_INVALID_TLS_CONFIGURATION` 

[퍼블릭 엔드포인트 연결이](choose-xks-connectivity.md#xks-connectivity-public-endpoint) 있는 외부 키 스토어의 경우는 외부 키 스토어를 생성하고 업데이트할 때 속성 값을 AWS KMS 테스트합니다. [VPC 엔드포인트 서비스 연결](choose-xks-connectivity.md#xks-vpc-connectivity)이 있는 외부 키 스토어의 경우 AWS KMS 는 외부 키 스토어를 연결하고 업데이트할 때 속성 값을 테스트합니다.

**참고**  
비동기식인 `ConnectCustomKeyStore` 작업은 외부 키 스토어를 외부 키 스토어 프록시에 연결하려는 시도가 실패하더라도 성공할 수 있습니다. 이 경우 예외는 없지만 외부 키 스토어의 연결 상태는 Failed(실패)이며 연결 오류 코드는 오류 메시지를 설명합니다. 자세한 내용은 [외부 키 스토어 연결 오류](#fix-xks-connection) 단원을 참조하십시오.

가 속성 값의 오류를 AWS KMS 감지하면 작업이 실패하고 다음 오류 메시지 중 하나와 `XksProxyInvalidConfigurationException` 함께가 반환됩니다.


|  | 
| --- |
| 외부 키 스토어 프록시가 잘못된 URI 경로 때문에 요청을 거부했습니다. 외부 키 스토어의 URI 경로를 확인하고 필요한 경우 업데이트합니다. | 
+ [프록시 URI 경로](create-xks-keystore.md#require-path)는 프록시 API에 대한 AWS KMS 요청의 기본 경로입니다. APIs 이 경로가 올바르지 않으면 프록시에 대한 모든 요청이 실패합니다. 외부 키 스토어의 [현재 프록시 URI 경로를 보려면](view-xks-keystore.md) AWS KMS 콘솔 또는 `DescribeCustomKeyStores` 작업을 사용합니다. 올바른 프록시 URI 경로를 찾으려면 외부 키 스토어 프록시 설명서를 참조하세요. 프록시 URI 경로 값을 수정하는 방법에 대한 도움말은 [외부 키 저장소 속성 편집](update-xks-keystore.md) 섹션을 참조하세요.
+ 외부 키 스토어 프록시의 프록시 URI 경로는 외부 키 스토어 프록시 또는 외부 키 관리자 업데이트에 따라 변경될 수 있습니다. 이러한 변경 사항에 대한 자세한 내용은 외부 키 스토어 프록시 또는 외부 키 관리자의 설명서를 참조하세요.


|  | 
| --- |
| `XKS_PROXY_INVALID_TLS_CONFIGURATION`AWS KMS 가 외부 키 스토어 프록시에 대한 TLS 연결을 설정할 수 없습니다. 인증서를 포함하여 TLS 구성을 확인합니다. | 
+ 모든 외부 키 스토어 프록시에는 TLS 인증서가 필요합니다. 외부 키 스토어에 대해 지원되는 공인 인증 기관(CA)에서 TLS 인증서를 발급받아야 합니다. 지원되는 CA 목록은 AWS KMS 외부 키 스토어 프록시 API 사양의 [Trusted Certificate Authorities](https://github.com/aws/aws-kms-xksproxy-api-spec/blob/main/TrustedCertificateAuthorities)(신뢰할 수 있는 인증 기관)를 참조하세요.
+ 퍼블릭 엔드포인트 연결의 경우 TLS 인증서의 주체 일반 이름(CN)은 외부 키 스토어 프록시에 대한 [프록시 URI 엔드포인트](create-xks-keystore.md#require-endpoint)의 도메인 이름과 일치해야 합니다. 예를 들어 퍼블릭 엔드포인트가 https://myproxy.xks.example.com인 경우 TLS, TLS 인증서의 CN은 `myproxy.xks.example.com` 또는 `*.xks.example.com`이어야 합니다.
+ VPC 엔드포인트 서비스 연결의 경우 TLS 인증서의 주체 일반 이름(CN)이 [VPC 엔드포인트 서비스](create-xks-keystore.md#require-vpc-service-name)의 프라이빗 DNS 이름과 일치해야 합니다. 예를 들어 프라이빗 DNS 이름이 myproxy-private.xks.example.com인 경우 TLS 인증서의 CN은 `myproxy-private.xks.example.com` 또는 `*.xks.example.com`이어야 합니다.
+ TLS 인증서는 만료될 수 없습니다. TLS 인증서의 만료 날짜를 확인하려면 [OpenSSL](https://www.openssl.org/)과 같은 SSL 도구를 사용합니다. 외부 키 스토어와 연결된 TLS 인증서의 만료 날짜를 모니터링하려면 [XksProxyCertificateDaysToExpire](monitoring-cloudwatch.md#metric-xks-proxy-certificate-days-to-expire) CloudWatch 지표를 사용합니다. TLS 인증 만료 날짜까지의 일수는 AWS KMS 콘솔의 [**모니터링** 섹션에](xks-monitoring.md)도 표시됩니다.
+ [퍼블릭 엔드포인트 연결](choose-xks-connectivity.md#xks-connectivity-public-endpoint)을 사용하는 경우 SSL 테스트 도구를 사용하여 SSL 구성을 테스트합니다. 잘못된 인증서 연결로 인해 TLS 연결 오류가 발생할 수 있습니다.

### VPC 엔드포인트 서비스 연결 구성 오류
<a name="fix-xks-vpc-configuration"></a>

**예외**: `XksProxyVpcEndpointServiceNotFoundException`, `XksProxyVpcEndpointServiceInvalidConfigurationException` 

일반적인 연결 문제 외에도 VPC 엔드포인트 서비스 연결을 사용하여 외부 키 스토어를 생성, 연결 또는 업데이트하는 동안 다음과 같은 문제가 발생할 수 있습니다.는 외부 키 스토어를 [생성](create-xks-keystore.md), [연결](xks-connect-disconnect.md) 및 [업데이트](update-xks-keystore.md)하는 동안 VPC 엔드포인트 서비스 연결을 사용하여 외부 키 스토어의 속성 값을 AWS KMS 테스트합니다. 구성 오류로 인해 관리 작업이 실패하면 다음 예외가 생성됩니다.


|  | 
| --- |
| XksProxyVpcEndpointServiceNotFoundException | 

원인은 다음 중 하나일 수 있습니다.
+ VPC 엔드포인트 서비스 이름이 잘못되었습니다. 외부 키 스토어의 VPC 엔드포인트 서비스 이름이 올바르고 외부 키 스토어의 프록시 URI 엔드포인트 값과 일치하는지 확인합니다. VPC 엔드포인트 서비스 이름을 찾으려면 [Amazon VPC 콘솔](https://console.aws.amazon.com/vpc) 또는 [DescribeVpcEndpointServices](https://docs.aws.amazon.com/AmazonVPC/latest/APIReference/DescribeVpcEndpointServices.html) 작업을 사용합니다. 기존 외부 키 스토어의 VPC 엔드포인트 서비스 이름과 프록시 URI 엔드포인트를 찾으려면 AWS KMS 콘솔 또는 [DescribeCustomKeyStores](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeCustomKeyStores.html) 작업을 사용합니다. 자세한 내용은 [외부 키 저장소 보기](view-xks-keystore.md)을 참조하세요.
+ VPC 엔드포인트 서비스는 외부 키 스토어 AWS 리전 와 다른에 있을 수 있습니다. VPC 엔드포인트 서비스와 외부 키 스토어가 동일한 리전에 있는지 확인합니다. (`us-east-1`과 같은 리전 이름의 외부 이름은 com.amazonaws.vpce.useast-1.vpce-svc-example과 같은 VPC 엔드포인트 서비스 이름의 일부입니다.) 외부 키 스토어의 VPC 엔드포인트 서비스에 대한 요구 사항 목록은 [VPC 엔드포인트 서비스](create-xks-keystore.md#require-vpc-service-name) 섹션을 참조하세요. VPC 엔드포인트 서비스 또는 외부 키 스토어를 다른 리전으로 이동할 수 없습니다. 그러나 VPC 엔드포인트 서비스와 동일한 리전에서 새 외부 키 스토어를 생성할 수 있습니다. 자세한 내용은 [VPC 엔드포인트 서비스 연결 구성](vpc-connectivity.md) 및 [외부 키 저장소 생성](create-xks-keystore.md) 섹션을 참조하세요.
+ AWS KMS 는 VPC 엔드포인트 서비스에 허용되는 보안 주체가 아닙니다. VPC 엔드포인트 서비스에 대한 **Allow principals**(보안 주체 허용) 목록에는 `cks.kms.<region>.amazonaws.com` 값(예: `cks.kms.eu-west-3.amazonaws.com`)이 포함되어야 합니다. 이 값을 추가하는 방법에 대한 지침은AWS PrivateLink 가이드**의 [Manage permissions](https://docs.aws.amazon.com/vpc/latest/privatelink/configure-endpoint-service.html#add-remove-permissions)(권한 관리)를 참조하세요.


|  | 
| --- |
| XksProxyVpcEndpointServiceInvalidConfigurationException | 

이 오류는 VPC 엔드포인트 서비스가 다음 요구 사항 중 하나를 충족하지 못할 때 발생합니다.
+ VPC에는 각각 다른 가용 영역에 있는 두 개 이상의 프라이빗 서브넷이 필요합니다. VPC에 서브넷을 추가하는 방법에 대한 도움말은 Amazon VPC 사용 설명서**의 [VPC에 서브넷 생성](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-subnets.html#create-subnets)을 참조하세요.
+ [VPC 엔드포인트 서비스 유형](https://docs.aws.amazon.com/vpc/latest/privatelink/create-endpoint-service.html)은 Gateway Load Balancer가 아닌 Network Load Balancer를 사용해야 합니다.
+ VPC 엔드포인트 서비스에 대해 수락이 필요하지 않아야 합니다(**Acceptance required**(수락 필요)는 false여야 함). 각 연결 요청을 수동으로 수락해야 하는 경우 VPC 엔드포인트 서비스를 사용하여 외부 키 스토어 프록시에 연결할 수 AWS KMS 없습니다. 자세한 내용은AWS PrivateLink 가이드**의 [Accept or reject connection requests](https://docs.aws.amazon.com/vpc/latest/privatelink/configure-endpoint-service.html#accept-reject-connection-requests)(연결 요청 수락 또는 거부)를 참조하세요.
+ VPC 엔드포인트 서비스에는 퍼블릭 도메인의 하위 도메인인 프라이빗 DNS 이름이 있어야 합니다. 예를 들어 프라이빗 DNS 이름이 `https://myproxy-private.xks.example.com`인 경우 `xks.example.com` 또는 `example.com` 도메인에 퍼블릭 DNS 서버가 있어야 합니다. VPC 엔드포인트 서비스의 프라이빗 DNS 이름을 보거나 변경하려면AWS PrivateLink 가이드**의 [Manage DNS names for VPC endpoint services](https://docs.aws.amazon.com/vpc/latest/privatelink/manage-dns-names.html)(VPC 엔드포인트 서비스의 DNS 이름 관리)를 참조하세요.
+ 프라이빗 DNS 이름 도메인의 **Domain verification status**(도메인 확인 상태)는 `verified`여야 합니다. 프라이빗 DNS 이름 도메인의 확인 상태를 보고 업데이트하려면 [5단계: 프라이빗 DNS 이름 도메인 확인](vpc-connectivity.md#xks-private-dns) 섹션을 참조하세요. 필수 텍스트 레코드를 추가한 후 업데이트된 확인 상태가 표시되는 데 몇 분 정도 걸릴 수 있습니다.
**참고**  
프라이빗 DNS 도메인은 퍼블릭 도메인의 하위 도메인인 경우에만 확인할 수 있습니다. 그렇지 않으면 필요한 TXT 레코드를 추가한 후에도 프라이빗 DNS 도메인의 확인 상태가 변경되지 않습니다.
+  AWS KMS 와 외부 키 스토어 프록시 사이의 방화벽이 IPv4를 통해 포트 443에서 proxy. AWS KMS communicates의 포트 443과 주고받는 트래픽을 허용하는지 확인합니다. 이 값은 구성할 수 없습니다.
+ VPC 엔드포인트 서비스의 프라이빗 DNS 이름은 외부 키 스토어의 [프록시 URI 엔드포인트](create-xks-keystore.md#require-endpoint) 값과 일치해야 합니다. VPC 엔드포인트 서비스 연결이 있는 외부 키 스토어의 경우 프록시 URI 엔드포인트는 `https://` 뒤에 VPC 엔드포인트 서비스의 프라이빗 DNS 이름이 와야 합니다. 프록시 URI 엔드포인트 값을 보려면 [외부 키 저장소 보기](view-xks-keystore.md) 섹션을 참조하세요. 프록시 URI 엔드포인트 값을 변경하려면 [외부 키 저장소 속성 편집](update-xks-keystore.md) 섹션을 참조하세요.

## 외부 키 스토어 연결 오류
<a name="fix-xks-connection"></a>

외부 키 스토어 프록시에 [외부 키 스토어를 연결하는 프로세스](about-xks-connecting.md)는 완료하는 데 5분가량 걸립니다. 빨리 실패하지 않는 한, `ConnectCustomKeyStore` 작업은 속성 없이 HTTP 200 응답 및 JSON 객체를 반환합니다. 하지만 이러한 초기 응답은 연결이 성공했음을 의미하지는 않습니다. 외부 키 스토어가 연결되어 있는지 파악하려면 해당 [연결 상태](xks-connect-disconnect.md#xks-connection-state)를 확인합니다. 연결이 실패하면 외부 키 스토어의 연결 상태가 로 변경`FAILED`되고 실패 원인을 설명하는 [연결 오류 코드가](#xks-connection-error-codes) AWS KMS 반환됩니다.

**참고**  
사용자 지정 키 스토어의 연결 상태가 `FAILED`면 재연결을 시도하기에 앞서 사용자 지정 키 스토어를 연결 해제해야 합니다. 연결 상태가 `FAILED`이면 사용자 지정 키 스토어를 연결할 수 없습니다.

외부 키 스토어의 연결 상태를 보려면 다음을 수행하세요.
+ [DescribeCustomKeyStores](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeCustomKeyStores.html) 응답에서 `ConnectionState` 요소의 값을 확인합니다.
+  AWS KMS 콘솔에서 **연결 상태가** 외부 키 스토어 테이블에 나타납니다. 또한 각 외부 키 스토어의 세부 정보 페이지에서 **General configuration**(일반 구성) 섹션에 **Connection state**(연결 상태)가 표시됩니다.

연결 상태가 `FAILED`인 경우 연결 오류 코드는 오류를 설명하는 데 도움이 됩니다.

연결 오류 코드를 보려면 다음을 수행하세요.
+ [DescribeCustomKeyStores](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeCustomKeyStores.html) 응답에서 `ConnectionErrorCode` 요소의 값을 확인합니다. 이 요소는 `ConnectionState`가 `FAILED`인 경우에만 `DescribeCustomKeyStores` 응답에 나타납니다.
+  AWS KMS 콘솔에서 연결 오류 코드를 보려면 외부 키 스토어의 세부 정보 페이지에서 **실패** 값 위에 마우스를 올려 놓습니다.  
![\[사용자 지정 키 스토어 세부 정보 페이지의 연결 오류 코드\]](http://docs.aws.amazon.com/ko_kr/kms/latest/developerguide/images/connection-error-code.png)

### 외부 키 스토어의 연결 오류 코드
<a name="xks-connection-error-codes"></a>

다음 연결 오류 코드는 외부 키 스토어에 적용됩니다.

`INTERNAL_ERROR`  
AWS KMS 내부 오류로 인해에서 요청을 완료하지 못했습니다. 요청을 다시 시도하세요. `ConnectCustomKeyStore` 요청의 경우, 사용자 지정 키 스토어를 연결 해제한 후 다시 연결을 시도하세요.

`INVALID_CREDENTIALS`  
`XksProxyAuthenticationCredential` 값 중 하나 또는 둘 다 지정된 외부 키 스토어 프록시에서 유효하지 않습니다.

`NETWORK_ERRORS`  
네트워크 오류로 인해가 사용자 지정 키 스토어를 백업 키 스토어에 연결할 수 AWS KMS 없습니다.

`XKS_PROXY_ACCESS_DENIED`  
AWS KMS 요청은 외부 키 스토어 프록시에 대한 액세스가 거부됩니다. 외부 키 스토어 프록시에 권한 부여 규칙이 있는 경우 AWS KMS 가 사용자를 대신하여 프록시와 통신하도록 허용하는지 확인합니다.

`XKS_PROXY_INVALID_CONFIGURATION`  
구성 오류로 인해 외부 키 스토어가 해당 프록시에 연결할 수 없습니다. `XksProxyUriPath`의 값을 확인합니다.

`XKS_PROXY_INVALID_RESPONSE`  
AWS KMS 는 외부 키 스토어 프록시의 응답을 해석할 수 없습니다. 이 연결 오류 코드가 반복적으로 표시되면 외부 키 스토어 프록시 공급업체에 알립니다.

`XKS_PROXY_INVALID_TLS_CONFIGURATION`  
AWS KMS TLS 구성이 유효하지 않아가 외부 키 스토어 프록시에 연결할 수 없습니다. 외부 키 스토어 프록시가 TLS 1.2 또는 1.3을 지원하는지 확인합니다. 또한 TLS 인증서가 만료되지 않았는지, `XksProxyUriEndpoint` 값의 호스트 이름과 일치하는지, [Trusted Certificate Authorities](https://github.com/aws/aws-kms-xksproxy-api-spec/blob/main/TrustedCertificateAuthorities)(신뢰할 수 있는 인증 기관) 목록에 포함된 신뢰할 수 있는 인증 기관에서 서명했는지 확인합니다.

`XKS_PROXY_NOT_REACHABLE`  
AWS KMS 가 외부 키 스토어 프록시와 통신할 수 없습니다. `XksProxyUriEndpoint`와 `XksProxyUriPath`가 올바른지 확인합니다. 외부 키 스토어 프록시용 도구를 사용하여 프록시가 활성 상태이고 해당 네트워크에서 사용 가능한지 확인합니다. 또한 외부 키 관리자 인스턴스가 제대로 작동하고 있는지 확인합니다. 프록시가 모든 외부 키 관리자 인스턴스를 사용할 수 없다고 보고하는 경우 이 연결 오류 코드와 함께 연결 시도가 실패합니다.

`XKS_PROXY_TIMED_OUT`  
AWS KMS 는 외부 키 스토어 프록시에 연결할 수 있지만 프록시는 할당된 시간 AWS KMS 내에에 응답하지 않습니다. 이 연결 오류 코드가 반복적으로 표시되면 외부 키 스토어 프록시 공급업체에 알립니다.

`XKS_VPC_ENDPOINT_SERVICE_INVALID_CONFIGURATION`  
Amazon VPC 엔드포인트 서비스 구성은 AWS KMS 외부 키 스토어의 요구 사항을 준수하지 않습니다.  
+ VPC 엔드포인트 서비스는 호출자의 AWS 계정에 있는 인터페이스 엔드포인트에 대한 엔드포인트 서비스여야 합니다.
+ 각각 다른 가용 영역에 있는 두 개 이상의 서브넷에 연결된 NLB(Network Load Balancer)가 있어야 합니다.
+ `Allow principals` 목록에는와 `cks.kms.<region>.amazonaws.com`같은 리전의 AWS KMS 서비스 보안 주체가 포함되어야 합니다`cks.kms.us-east-1.amazonaws.com`.
+ 연결 요청 [수락](https://docs.aws.amazon.com/vpc/latest/privatelink/create-endpoint-service.html)을 요구하지 *않아야* 합니다.
+ 프라이빗 DNS 이름이 있어야 합니다. `VPC_ENDPOINT_SERVICE` 연결이 있는 외부 키 스토어의 프라이빗 DNS 이름은 해당 AWS 리전에서 고유해야 합니다.
+ 프라이빗 DNS 이름 도메인의 [확인 상태](https://docs.aws.amazon.com/vpc/latest/privatelink/verify-domains.html)는 `verified`여야 합니다.
+ [TLS 인증서](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-tls-listener.html)는 엔드포인트에 도달할 수 있는 프라이빗 DNS 호스트 이름을 지정합니다.

`XKS_VPC_ENDPOINT_SERVICE_NOT_FOUND`  
AWS KMS 가 외부 키 스토어 프록시와 통신하는 데 사용하는 VPC 엔드포인트 서비스를 찾을 수 없습니다. `XksProxyVpcEndpointServiceName`이 올바르고 AWS KMS 서비스 보안 주체에 Amazon VPC 엔드포인트 서비스에 대한 서비스 소비자 권한이 있는지 확인합니다.

## 지연 시간 및 제한 시간 오류
<a name="fix-xks-latency"></a>

**예외**: `CustomKeyStoreInvalidStateException`(`CreateKey`), `KMSInvalidStateException`(암호화 작업), `XksProxyUriUnreachableException`(관리 작업)

[**연결 오류 코드**](#xks-connection-error-codes): `XKS_PROXY_NOT_REACHABLE`, `XKS_PROXY_TIMED_OUT` 

가 250밀리초 제한 시간 간격 내에 프록시에 연결할 AWS KMS 수 없는 경우 예외를 반환하고 `CreateCustomKeyStore`를 `UpdateCustomKeyStore` 반환합니다`XksProxyUriUnreachableException`. 암호화 작업은 문제를 설명하는 오류 메시지와 함께 표준 `KMSInvalidStateException`을 반환합니다. `ConnectCustomKeyStore` 실패하면 문제를 설명하는 [연결 오류 코드를](#fix-xks-connection) AWS KMS 반환합니다.

제한 시간 오류는 요청을 다시 시도하여 해결할 수 있는 일시적인 문제일 수 있습니다. 문제가 지속되면 외부 키 스토어 프록시가 활성 상태이고 네트워크에 연결되어 있으며 해당 프록시 URI 엔드포인트, 프록시 URI 경로 및 VPC 엔드포인트 서비스 이름(있는 경우)이 외부 키 스토어에서 올바른지 확인합니다. 또한 외부 키 관리자가 외부 키 스토어의 AWS 리전 에 가까운지 확인합니다. 이러한 값을 업데이트해야 하는 경우 [외부 키 저장소 속성 편집](update-xks-keystore.md) 섹션을 참조하세요.

지연 시간 패턴을 추적하려면 AWS KMS 콘솔의 [**Monitoring**(모니터링) 섹션](xks-monitoring.md)에서 [`XksProxyLatency`](monitoring-cloudwatch.md#metric-xks-proxy-latency) CloudWatch 지표와 **Average latency**(평균 지연 시간) 그래프(해당 지표 기반)를 사용합니다. 외부 키 스토어 프록시는 지연 시간과 제한 시간을 추적하는 로그와 지표를 생성할 수도 있습니다.


|  | 
| --- |
| `XksProxyUriUnreachableException`AWS KMS 는 외부 키 스토어 프록시와 통신할 수 없습니다. 일시적인 네트워크 문제일 수 있습니다. 이 오류가 반복적으로 표시되는 경우 외부 키 스토어 프록시가 활성 상태이고 네트워크에 연결되어 있는지, 해당 엔드포인트 URI가 외부 키 스토어에서 올바른지 확인합니다. | 
+ 외부 키 스토어 프록시가 250밀리초 제한 시간 간격 내에 AWS KMS 프록시 API 요청에 응답하지 않았습니다. 이는 일시적인 네트워크 문제나 프록시의 작동 또는 성능 문제를 나타낼 수 있습니다. 다시 시도해도 문제가 해결되지 않으면 외부 키 스토어 프록시 관리자에게 알리세요.

지연 시간 및 제한 시간 오류는 종종 연결 실패로 나타납니다. [ConnectCustomKeyStore](https://docs.aws.amazon.com/kms/latest/APIReference/API_ConnectCustomKeyStore.html) 작업이 실패하면 외부 키 스토어의 *연결 상태가* 로 변경`FAILED`되고 오류를 설명하는 *연결 오류 코드가* AWS KMS 반환됩니다. 연결 오류 코드 목록과 오류 해결을 위한 제안 사항은 [외부 키 스토어의 연결 오류 코드](#xks-connection-error-codes) 섹션을 참조하세요. **모든 사용자 지정 키 스토어**와 **외부 키 스토어**의 연결 코드 목록은 외부 키 스토어에 적용됩니다. 다음 연결 오류는 지연 시간 및 제한 시간과 관련이 있습니다.


|  | 
| --- |
| `XKS_PROXY_NOT_REACHABLE`-또는-`CustomKeyStoreInvalidStateException`, `KMSInvalidStateException`, `XksProxyUriUnreachableException`AWS KMS 는 외부 키 스토어 프록시와 통신할 수 없습니다. 외부 키 스토어 프록시가 활성 상태이고 네트워크에 연결되어 있는지, 해당 URI 경로와 엔드포인트 URI 또는 VPC 서비스 이름이 외부 키 스토어에서 올바른지 확인합니다. | 

이 오류는 다음과 같은 이유로 발생할 수 있습니다.
+ 외부 키 스토어 프록시가 활성 상태가 아니거나 네트워크에 연결되어 있지 않습니다.
+ 외부 키 스토어 구성의 [프록시 URI 엔드포인트](create-xks-keystore.md#require-endpoint), [프록시 URI 경로](create-xks-keystore.md#require-path) 또는 [VPC 엔드포인트 서비스 이름](create-xks-keystore.md#require-vpc-service-name)(해당하는 경우) 값에 오류가 있습니다. 외부 키 스토어 구성을 보려면 [DescribeCustomKeyStores](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeCustomKeyStores.html) 작업을 사용하거나 AWS KMS 콘솔에서 외부 키 스토어의 [세부 정보 페이지를 확인합니다](view-xks-keystore.md).
+  AWS KMS 와 외부 키 스토어 프록시 간의 네트워크 경로에 포트 오류와 같은 네트워크 구성 오류가 있을 수 있습니다. IPv4를 통해 포트 443의 외부 키 스토어 프록시와 AWS KMS 통신합니다. 이 값은 구성할 수 없습니다.
+ 외부 키 스토어 프록시가 [GetHealthStatus](keystore-external.md#concept-proxy-apis) 응답에서 모든 외부 키 관리자 인스턴스가 `UNAVAILABLE`이라고 보고하면 `XKS_PROXY_NOT_REACHABLE`의 `ConnectionErrorCode`와 함께 [ConnectCustomKeyStore](https://docs.aws.amazon.com/kms/latest/APIReference/API_ConnectCustomKeyStore.html) 작업이 실패합니다. 도움말은 외부 키 관리자 설명서를 참조하세요.
+ 이 오류는 외부 키 관리자와 외부 키 스토어가 AWS 리전 있는 간의 물리적 거리가 길기 때문에 발생할 수 있습니다. AWS 리전 와 외부 키 관리자 간의 ping 지연 시간(네트워크 왕복 시간(RTT))은 35밀리초 이하여야 합니다. 외부 키 관리자에 AWS 리전 더 가까운에서 외부 키 스토어를 생성하거나 외부 키 관리자를에 더 가까운 데이터 센터로 이동해야 할 수 있습니다 AWS 리전.


|  | 
| --- |
| `XKS_PROXY_TIMED_OUT`-또는-`CustomKeyStoreInvalidStateException`, `KMSInvalidStateException`, `XksProxyUriUnreachableException`외부 키 스토어 프록시가 제시간에 응답하지 않았기 때문에AWS KMS 가 요청을 거부했습니다. 요청을 다시 시도하세요. 이 오류가 반복적으로 표시되면 외부 키 스토어 프록시 관리자에게 보고하세요. | 

이 오류는 다음과 같은 이유로 발생할 수 있습니다.
+ 이 오류는 외부 키 관리자와 외부 키 스토어 프록시 간의 물리적 거리가 멀기 때문에 발생할 수 있습니다. 가능한 경우 외부 키 스토어 프록시를 외부 키 관리자에 더 가깝게 이동합니다.
+ 프록시가 요청의 볼륨과 빈도를 처리하도록 설계되지 않은 경우 제한 시간 오류가 발생할 수 있습니다 AWS KMS. CloudWatch 지표가 지속적인 문제를 나타내는 경우 외부 키 스토어 프록시 관리자에게 알리세요.
+ 외부 키 관리자와 외부 키 스토어에 대한 Amazon VPC 간의 연결이 제대로 작동하지 않는 경우 제한 시간 오류가 발생할 수 있습니다. 를 사용하는 경우 VPC와 외부 키 관리자가 효과적으로 통신할 수 있는지 AWS Direct Connect확인합니다. 문제를 해결하는 데 도움이 필요하면 Direct Connect 사용 설명서의 [문제 해결을 참조하세요 AWS Direct Connect](https://docs.aws.amazon.com/directconnect/latest/UserGuide/Troubleshooting.html).


|  | 
| --- |
| `XKS_PROXY_TIMED_OUT`-또는-`CustomKeyStoreInvalidStateException`, `KMSInvalidStateException`, `XksProxyUriUnreachableException` 외부 키 스토어 프록시가 할당된 시간 내에 요청에 응답하지 않았습니다. 요청을 다시 시도하세요. 이 오류가 반복적으로 표시되면 외부 키 스토어 프록시 관리자에게 보고하세요. | 
+ 이 오류는 외부 키 관리자와 외부 키 스토어 프록시 간의 물리적 거리가 멀기 때문에 발생할 수 있습니다. 가능한 경우 외부 키 스토어 프록시를 외부 키 관리자에 더 가깝게 이동합니다.

## 인증 자격 증명 오류
<a name="fix-xks-credentials"></a>

**예외**: `CustomKeyStoreInvalidStateException`(`CreateKey`), `KMSInvalidStateException`(암호화 작업), `XksProxyIncorrectAuthenticationCredentialException`(`CreateKey` 이외의 관리 작업)

외부 키 스토어 프록시 AWS KMS 에서에 대한 인증 자격 증명을 설정하고 유지 관리합니다. 그런 다음 외부 키 스토어 AWS KMS 를 생성할 때 자격 증명 값을 알려줍니다. 인증 자격 증명을 변경하려면 외부 키 스토어 프록시에서 변경합니다. 그런 다음 외부 키 스토어에 대한 [자격 증명을 업데이트](update-xks-keystore.md#xks-edit-name)합니다. 프록시가 자격 증명을 교체하는 경우 외부 키 스토어에 대한 [자격 증명을 업데이트](update-xks-keystore.md#xks-edit-name)해야 합니다.

외부 키 스토어 프록시가 외부 키 스토어에 대한 [프록시 인증 자격 증명](keystore-external.md#concept-xks-credential)으로 서명된 요청을 인증하지 않는 경우 효과는 요청에 따라 다릅니다.
+ `CreateCustomKeyStore`와 `UpdateCustomKeyStore`는 `XksProxyIncorrectAuthenticationCredentialException`과 함께 실패합니다.
+ `ConnectCustomKeyStore`는 성공하지만 연결은 실패합니다. 연결 상태는 `FAILED`이고 연결 오류 코드는 `INVALID_CREDENTIALS`입니다. 자세한 내용은 [외부 키 스토어 연결 오류](#fix-xks-connection)을 참조하세요.
+ 암호화 작업은 외부 키 저장소의 모든 외부 구성 오류 및 연결 상태 오류에 대하여 `KMSInvalidStateException`를 반환합니다. 함께 제공되는 오류 메시지에 문제가 설명되어 있습니다.


|  | 
| --- |
| 외부 키 스토어 프록시가 AWS KMS를 인증할 수 없기 때문에 요청을 거부했습니다. 외부 키 스토어의 자격 증명을 확인하고 필요한 경우 업데이트합니다. | 

이 오류는 다음과 같은 이유로 발생할 수 있습니다.
+ 외부 키 스토어의 액세스 키 ID 또는 보안 액세스 키가 외부 키 스토어 프록시에 설정된 값과 일치하지 않습니다.

  이 오류를 해결하려면 외부 키 스토어의 [프록시 인증 자격 증명을 업데이트](update-xks-keystore.md#xks-edit-name)합니다. 외부 키 스토어를 연결 해제하지 않고 이 변경을 수행할 수 있습니다.
+  AWS KMS 와 외부 키 스토어 프록시 간의 역방향 프록시는 SigV4 서명을 무효화하는 방식으로 HTTP 헤더를 조작할 수 있습니다. 이 오류를 수정하려면 프록시 관리자에게 알리세요.

## 키 상태 오류
<a name="fix-unavailable-xks-keys"></a>

**예외**: `KMSInvalidStateException`

`KMSInvalidStateException`은 사용자 지정 키 스토어의 KMS 키에 대해 두 가지 다른 용도로 사용됩니다.
+ `CancelKeyDeletion`과 같은 관리 작업이 실패하고 이 예외를 반환하면 KMS 키의 [키 상태](key-state.md)가 작업과 호환되지 않는 것입니다.
+ 사용자 지정 키 스토어의 KMS 키에 대한 [암호화 작업](kms-cryptography.md#cryptographic-operations)이 `KMSInvalidStateException`과 함께 실패하면 KMS 키의 키 상태에 문제가 있는 것일 수 있습니다. 그러나 암호화 작업은 외부 키 스토어의 모든 외부 구성 오류 및 연결 상태 오류에 `KMSInvalidStateException` 대해 AWS KMS 를 반환합니다. 문제를 식별하려면 예외와 함께 제공되는 오류 메시지를 사용합니다.

 AWS KMS API 작업에 필요한 키 상태를 찾으려면 섹션을 참조하세요[키의 AWS KMS 키 상태](key-state.md). KMS 키의 키 상태를 확인하려면 **(고객 관리형 키** 페이지에서 KMS 키의 **상태** 필드를 확인합니다. 또는 [DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html) 작업을 사용해 응답의 `KeyState` 요소를 확인합니다. 자세한 내용은 [키 식별 및 보기](viewing-keys.md)을 참조하세요.

**참고**  
외부 키 스토어에 있는 KMS 키의 키 상태는 연결된 [외부 키](keystore-external.md#concept-external-key)의 상태에 대해 아무 것도 나타내지 않습니다. 외부 키 상태에 대한 자세한 내용을 보려면 외부 키 관리자와 외부 키 스토어 프록시 도구를 사용하세요.  
`CustomKeyStoreInvalidStateException`은 KMS 키의 [키 상태](key-state.md)가 아니라 외부 키 스토어의 [연결 상태](xks-connect-disconnect.md#xks-connection-state)를 나타냅니다.

KMS 키의 키 상태가 `Unavailable` 또는 `PendingDeletion`이므로 사용자 지정 스토어의 KMS 키에 대한 암호화 작업이 실패할 수 있습니다. (비활성화된 키에서는 `DisabledException`이 반환됩니다.)
+ KMS 키는 AWS KMS 콘솔에서 KMS `Disabled` 키를 의도적으로 비활성화하거나 [DisableKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DisableKey.html) 작업을 사용하는 경우에만 키 상태가 됩니다. KMS 키가 비활성화된 동안에는 키를 보고 관리할 수 있지만 암호화 작업에 사용할 수는 없습니다. 이 문제를 해결하려면 키를 활성화합니다. 자세한 내용은 [KMS 키 활성화 및 비활성화](enabling-keys.md)을 참조하세요.
+ KMS 키는 외부 키 스토어가 외부 키 스토어 프록시에서 연결 해제되는 경우 `Unavailable` 키 상태가 됩니다. 사용 불가 상태인 KMS 키를 수정하려면 [외부 키 스토어를 다시 연결합니다](xks-connect-disconnect.md). 외부 키 스토어가 다시 연결되고 나면 외부 키 스토어의 KMS 키 상태가 이전 상태(`Enabled` 또는 `Disabled`)로 자동 복구됩니다.

  KMS 키는 삭제 예약이 되어 있고 대기 기간에 있는 경우 `PendingDeletion` 키 상태가 됩니다. 삭제 보류 중인 KMS 키의 키 상태 오류는 키가 암호화에 사용되고 있거나 복호화에 필요하기 때문에 삭제해서는 안 됨을 나타냅니다. KMS 키를 다시 활성화하려면 예약된 삭제를 취소한 다음 [키를 활성화](enabling-keys.md)합니다. 자세한 내용은 [키 삭제 예약](deleting-keys-scheduling-key-deletion.md)을 참조하세요.

## 복호화 오류
<a name="fix-xks-decrypt"></a>

**예외**: `KMSInvalidStateException`

외부 키 스토어의 KMS 키를 사용한 [복호](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html)화 작업이 실패하면 `KMSInvalidStateException`는 외부 키 스토어의 모든 외부 구성 오류 및 연결 상태 오류에 암호화 작업이 사용하는 표준을 AWS KMS 반환합니다. 오류 메시지가 문제를 나타냅니다.

[이중 암호화](keystore-external.md#concept-double-encryption)를 사용하여 암호화된 사이퍼텍스트를 복호화하기 위해 외부 키 관리자는 먼저 외부 키를 사용하여 사이퍼텍스트의 외부 계층을 복호화합니다. 그런 다음 AWS KMS KMS AWS KMS 키의 키 구성 요소를 사용하여 사이퍼텍스트의 내부 계층을 복호화합니다. 유효하지 않거나 손상된 사이퍼텍스트는 외부 키 관리자 또는 AWS KMS에 의해 거부될 수 있습니다.

복호화가 실패하면 `KMSInvalidStateException`과 함께 다음 오류 메시지가 나타납니다. 요청의 사이퍼텍스트 또는 선택적 암호화 컨텍스트에 문제가 있는 것입니다.


|  | 
| --- |
| 외부 키 스토어 프록시가 지정된 사이퍼텍스트나 추가 인증 데이터가 손상 또는 누락되었거나 유효하지 않기 때문에 요청을 거부했습니다. | 
+ 외부 키 스토어 프록시 또는 외부 키 관리자가 사이퍼텍스트 또는 암호화 컨텍스트가 유효하지 않다고 보고하면 일반적으로 전송된 `Decrypt` 요청의 사이퍼텍스트 또는 암호화 컨텍스트에 문제가 있음을 나타냅니다 AWS KMS. `Decrypt` 작업의 경우는 `Decrypt` 요청에서 수신하는 것과 동일한 사이퍼텍스트 및 암호화 컨텍스트를 프록시에 AWS KMS 전송합니다.

  이 오류는 플립드 비트와 같은 전송 중 네트워킹 문제로 인해 발생할 수 있습니다. `Decrypt` 요청을 다시 시도하세요. 문제가 지속되면 사이퍼텍스트가 변경되거나 손상되지 않았는지 확인합니다. 또한에 대한 `Decrypt` 요청의 암호화 컨텍스트가 데이터를 암호화한 요청의 암호화 컨텍스트와 AWS KMS 일치하는지 확인합니다.


|  | 
| --- |
| 암호 복호화를 위해 외부 키 스토어 프록시가 제출한 사이퍼텍스트 또는 암호화 컨텍스트가 손상되었거나 누락되었거나 유효하지 않습니다. | 
+ 가 프록시에서 수신한 사이퍼텍스트를 AWS KMS 거부하면 외부 키 관리자 또는 프록시가 유효하지 않거나 손상된 사이퍼텍스트를 반환했음을 나타냅니다 AWS KMS.

  이 오류는 플립드 비트와 같은 전송 중 네트워킹 문제로 인해 발생할 수 있습니다. `Decrypt` 요청을 다시 시도하세요. 문제가 지속되면 외부 키 관리자가 제대로 작동하는지, 외부 키 스토어 프록시가 외부 키 관리자로부터 받은 사이퍼텍스트를 변경하지 않았는지 확인한 후 반환합니다 AWS KMS.

## 외부 키 오류
<a name="fix-external-key"></a>

[외부 키](keystore-external.md#concept-external-key)는 KMS 키의 외부 키 구성 요소 역할을 하는 외부 키 관리자의 암호화 키입니다. AWS KMS 는 외부 키에 직접 액세스할 수 없습니다. 외부 키 스토어 프록시를 통해 외부 키 관리자에게 외부 키를 사용하여 데이터를 암호화하거나 사이퍼텍스트를 복호화하도록 요청해야 합니다.

외부 키 스토어에서 KMS 키를 생성할 때 외부 키 관리자에서 외부 키의 ID를 지정합니다. KMS 키를 생성한 후에는 외부 키 ID를 변경할 수 없습니다. KMS 키 관련 문제를 방지하기 위해 `CreateKey` 작업은 외부 키의 ID와 구성을 확인하도록 외부 키 스토어 프록시에 요청합니다. 외부 키가 KMS 키와 함께 사용하기 위한 [요구 사항을 충족](create-xks-keys.md#xks-key-requirements)하지 않는 경우 문제를 식별하는 예외 및 오류 메시지와 함께 `CreateKey` 작업이 실패합니다.

그러나 KMS 키가 생성된 후 문제가 발생할 수 있습니다. 외부 키 문제로 인해 암호화 작업이 실패하면 작업이 실패하고 문제를 나타내는 오류 메시지와 함께 `KMSInvalidStateException`이 반환됩니다.

### 외부 키에 대한 CreateKey 오류
<a name="fix-external-key-create"></a>

**예외**: `XksKeyAlreadyInUseException`, `XksKeyNotFoundException`, `XksKeyInvalidConfigurationException` 

[CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html) 작업은 **External key ID**(외부 키 ID)(콘솔) 또는 `XksKeyId`(API) 파라미터에 제공한 외부 키의 ID와 속성을 확인하려고 시도합니다. 이 방법은 KMS 키와 함께 외부 키를 사용하려고 시도하기 전에 조기에 오류를 감지하도록 설계되었습니다.

**외부 키 사용 중** 

외부 키 스토어의 각 KMS 키는 다른 외부 키를 사용해야 합니다. `CreateKey`는 KMS 키의 외부 키 ID(XksKeyId)가 외부 키 스토어에서 고유하지 않음을 인식하면 `XksKeyAlreadyInUseException`과 함께 실패합니다.

동일한 외부 키에 대해 여러 ID를 사용하는 경우 `CreateKey`는 중복을 인식하지 않습니다. 그러나 외부 키가 동일한 KMS 키는 AWS KMS 키 구성 요소와 메타데이터가 다르기 때문에 상호 운용할 수 없습니다.

**외부 키를 찾을 수 없음** 

외부 키 스토어 프록시가 KMS 키에 대한 외부 키 ID(XksKeyId)를 사용하여 외부 키를 찾을 수 없다고 보고하면 `CreateKey` 작업이 실패하고 다음 오류 메시지와 함께 `XksKeyNotFoundException`을 반환합니다.


|  | 
| --- |
| 외부 키 스토어 프록시가 외부 키를 찾을 수 없기 때문에 요청을 거부했습니다. | 

이 오류는 다음과 같은 이유로 발생할 수 있습니다.
+ KMS 키의 외부 키(`XksKeyId`) ID(XksKeyId)가 유효하지 않을 수 있습니다. 외부 키 프록시가 외부 키를 식별하는 데 사용하는 ID를 찾으려면 외부 키 스토어 프록시 또는 외부 키 관리자 설명서를 참조하세요.
+ 외부 키가 외부 키 관리자에서 삭제되었을 수 있습니다. 조사하려면 외부 키 관리자 도구를 사용합니다. 외부 키가 영구적으로 삭제된 경우 KMS 키와 함께 다른 외부 키를 사용합니다. 외부 키의 목록 또는 요구 사항은 [외부 키 스토어의 KMS 키 요구 사항](create-xks-keys.md#xks-key-requirements) 섹션을 참조하세요.

**외부 키 요구 사항이 충족되지 않음**

외부 키 스토어 프록시에서 외부 키가 KMS 키와 함께 사용하기 위한 [요구 사항을 충족](create-xks-keys.md#xks-key-requirements)하지 않는다고 보고하면 `CreateKey` 작업이 실패하고 다음 오류 메시지 중 하나와 함께 `XksKeyInvalidConfigurationException`을 반환합니다.


|  | 
| --- |
| 외부 키의 키 사양은 AES\$1256이어야 합니다. 지정된 외부 키의 키 사양은 <key-spec>.입니다. | 
+ 외부 키는 키 사양이 AES\$1256인 256비트 대칭 암호화 키여야 합니다. 지정된 외부 키가 다른 유형인 경우 이 요구 사항을 충족하는 외부 키의 ID를 지정합니다.


|  | 
| --- |
| 외부 키의 상태가 ENABLED여야 합니다. 지정된 외부 키의 상태는 <status>여야 합니다. | 
+ 외부 키 관리자에서 외부 키를 활성화해야 합니다. 지정된 외부 키가 활성화되지 않은 경우 외부 키 관리자 도구를 사용하여 활성화하거나 활성화된 외부 키를 지정합니다.


|  | 
| --- |
| 외부 키의 키 사용에는 ENCRYPT와 DECRYPT가 포함되어야 합니다. 지정된 외부 키의 키 사용은 <key-usage>입니다. | 
+ 외부 키 관리자에서 암호화와 복호화를 위해 외부 키를 구성해야 합니다. 지정된 외부 키에 이러한 작업이 포함되지 않은 경우 외부 키 관리자 도구를 사용하여 작업을 변경하거나 다른 외부 키를 지정합니다.

### 외부 키에 대한 암호화 작업 오류
<a name="fix-external-key-crypto"></a>

**예외**: `KMSInvalidStateException`

외부 키 스토어 프록시가 KMS 키와 연결된 외부 키를 찾을 수 없거나 외부 키가 KMS 키와 함께 사용하기 위한 [요구 사항을 충족](create-xks-keys.md#xks-key-requirements)하지 못하면 암호화 작업이 실패합니다.

암호화 작업 중 감지되는 외부 키 문제는 KMS 키를 생성하기 전에 감지된 외부 키 문제보다 해결하기 더 어렵습니다. KMS 키를 생성한 후에는 외부 키 ID를 변경할 수 없습니다. KMS 키가 아직 데이터를 암호화하지 않은 경우 KMS 키를 삭제하고 다른 외부 키 ID로 새 키를 생성할 수 있습니다. 그러나 KMS 키로 생성된 사이퍼텍스트는 키의 키 메타데이터와 키 구성 요소가 다르기 때문에 외부 키가 동일한 키라도 다른 KMS AWS KMS 키로 복호화할 수 없습니다. 대신 가능한 한 외부 키 관리자 도구를 사용하여 외부 키 관련 문제를 해결하세요.

외부 키 스토어 프록시가 외부 키에 문제가 있다고 보고하면 암호화 작업은 문제를 식별하는 오류 메시지와 함께 `KMSInvalidStateException`을 반환합니다.

**외부 키를 찾을 수 없음**

외부 키 스토어 프록시가 KMS 키에 대한 외부 키 ID(XksKeyId)를 사용하여 외부 키를 찾을 수 없다고 보고하면 암호화 작업이 다음 오류 메시지와 함께 `KMSInvalidStateException`을 반환합니다.


|  | 
| --- |
| 외부 키 스토어 프록시가 외부 키를 찾을 수 없기 때문에 요청을 거부했습니다. | 

이 오류는 다음과 같은 이유로 발생할 수 있습니다.
+ KMS 키의 외부 키 ID(`XksKeyId`)가 더 이상 유효하지 않습니다.

  KMS 키와 연결된 외부 키 ID를 찾으려면 [KMS 키의 세부 정보를 봅니다](identify-key-types.md#view-xks-key). 외부 키 프록시가 외부 키를 식별하는 데 사용하는 ID를 찾으려면 외부 키 스토어 프록시 또는 외부 키 관리자 설명서를 참조하세요.

  AWS KMS 는 외부 키 스토어에서 KMS 키를 생성할 때 외부 키 ID를 확인합니다. 그러나 특히 외부 키 ID 값이 별칭이거나 변경 가능한 이름인 경우 ID가 무효화될 수 있습니다. 기존 KMS 키와 연결된 외부 키 ID는 변경할 수 없습니다. KMS 키로 암호화된 사이퍼텍스트를 복호화하려면 외부 키를 기존 외부 키 ID와 다시 연결해야 합니다.

  아직 KMS 키를 사용하여 데이터를 암호화하지 않은 경우 유효한 외부 키 ID로 새 KMS 키를 생성할 수 있습니다. 그러나 KMS 키로 사이퍼텍스트를 생성한 경우 동일한 외부 키를 사용하더라도 다른 KMS 키를 사용하여 사이퍼텍스트를 복호화할 수 없습니다.
+ 외부 키가 외부 키 관리자에서 삭제되었을 수 있습니다. 조사하려면 외부 키 관리자 도구를 사용합니다. 가능하면 외부 키 관리자의 사본 또는 백업에서 [키 구성 요소를 복구](fix-keystore.md#fix-keystore-recover-backing-key)해 봅니다. 외부 키가 영구적으로 삭제되면 연결된 KMS 키로 암호화된 사이퍼텍스트를 복구할 수 없습니다.

**외부 키 구성 오류**

외부 키 스토어 프록시에서 외부 키가 KMS 키와 함께 사용하기 위한 [요구 사항을 충족](create-xks-keys.md#xks-key-requirements)하지 않는다고 보고하면 암호화 작업이 다음 오류 메시지 중 하나와 함께 `KMSInvalidStateException`을 반환합니다.


|  | 
| --- |
| 외부 키가 요청된 작업을 지원하지 않기 때문에 외부 키 스토어 프록시가 요청을 거부했습니다. | 
+ 외부 키가 암호화와 복호화를 모두 지원해야 합니다. 키 사용에 암호화와 복호화가 포함되지 않은 경우 외부 키 관리자 도구를 사용하여 키 사용을 변경합니다.


|  | 
| --- |
| 외부 키 관리자에서 외부 키가 활성화되지 않았기 때문에 외부 키 스토어 프록시가 요청을 거부했습니다. | 
+ 외부 키를 활성화하고 외부 키 관리자에서 사용할 수 있어야 합니다. 외부 키의 상태가 `Enabled`가 아닌 경우 외부 키 관리자 도구를 사용하여 외부 키를 활성화합니다.

## 프록시 문제
<a name="fix-xks-proxy"></a>

**예외:** 

 `CustomKeyStoreInvalidStateException` (`CreateKey`), `KMSInvalidStateException`(암호화 작업), `UnsupportedOperationException`, `XksProxyUriUnreachableException`, `XksProxyInvalidResponseException`(`CreateKey` 이외의 관리 작업)

외부 키 스토어 프록시는 AWS KMS 와 외부 키 관리자 간의 모든 통신을 중재합니다. 일반 AWS KMS 요청을 외부 키 관리자가 이해할 수 있는 형식으로 변환합니다. 외부 키 스토어 프록시가 [AWS KMS 외부 키 스토어 프록시 API 사양을](https://github.com/aws/aws-kms-xksproxy-api-spec/) 준수하지 않거나가 제대로 작동하지 않거나와 통신할 수 없는 경우 외부 키 스토어에서 KMS 키를 생성하거나 사용할 수 AWS KMS없습니다.

많은 오류가 외부 키 스토어 아키텍처에서의 중요한 역할 때문에 외부 키 스토어 프록시를 언급하지만 이러한 문제는 외부 키 관리자 또는 외부 키에서 발생할 수 있습니다.

이 섹션의 문제는 외부 키 스토어 프록시의 설계 또는 작업 문제와 관련이 있습니다. 이러한 문제를 해결하려면 프록시 소프트웨어를 변경해야 할 수 있습니다. 프록시 관리자에게 문의하세요. 프록시 문제 진단에 도움이 되도록 AWS KMS 는 외부 키 스토어 프록시가 [AWS KMS 외부 키 스토어 프록시 API 사양](https://github.com/aws/aws-kms-xksproxy-api-spec/)을 준수하는지 확인하는 오픈 소스 테스트 클라이언트인 [XKS 프록시 테스트 클라이언트](https://github.com/aws-samples/aws-kms-xksproxy-test-client)를 제공합니다.


|  | 
| --- |
| `CustomKeyStoreInvalidStateException`, `KMSInvalidStateException` 또는 `XksProxyUriUnreachableException`외부 키 스토어 프록시가 비정상 상태입니다. 이 메시지가 반복적으로 표시되면 외부 키 스토어 프록시 관리자에게 알리세요. | 
+ 이 오류는 외부 키 스토어 프록시의 운영 문제 또는 소프트웨어 오류를 나타낼 수 있습니다. 각 오류를 생성한 AWS KMS API 작업에 대한 CloudTrail 로그 항목을 찾을 수 있습니다. 이 오류는 작업을 다시 시도하여 해결할 수 있습니다. 그러나 이 오류가 지속되면 외부 키 스토어 프록시 관리자에게 알리세요.
+ 외부 키 스토어 프록시가 [GetHealthStatus](keystore-external.md#concept-proxy-apis) 응답에서 모든 외부 키 관리자 인스턴스가 `UNAVAILABLE`이라고 보고하면 이 예외와 함께 외부 키 스토어를 생성하거나 업데이트하려는 시도가 실패합니다. 이 오류가 지속되면 외부 키 관리자 설명서를 참조하세요.


|  | 
| --- |
| `CustomKeyStoreInvalidStateException`, `KMSInvalidStateException` 또는 `XksProxyInvalidResponseException`AWS KMS 는 외부 키 스토어 프록시의 응답을 해석할 수 없습니다. 이 오류가 반복적으로 표시되면 외부 키 스토어 프록시 관리자에게 문의하세요. | 
+ AWS KMS 프록시가 구문 분석 또는 해석할 AWS KMS 수 없는 정의되지 않은 응답을 반환하면 작업이이 예외를 생성합니다. 이 오류는 일시적인 외부 문제나 산발적인 네트워크 오류로 인해 가끔 발생할 수 있습니다. 그러나 지속되면 외부 키 스토어 프록시가 [AWS KMS 외부 키 스토어 프록시 API 사양](https://github.com/aws/aws-kms-xksproxy-api-spec/)을 준수하지 않는 것일 수 있습니다. 외부 키 스토어 관리자 또는 공급업체에 알리세요.


|  | 
| --- |
|  `CustomKeyStoreInvalidStateException`, `KMSInvalidStateException` 또는 `UnsupportedOperationException` 외부 키 스토어 프록시가 요청된 작업을 암호화 작업을 지원하지 않기 때문에 요청을 거부했습니다. | 
+ 외부 키 스토어 프록시는 [AWS KMS 외부 키 스토어 프록시 API 사양](https://github.com/aws/aws-kms-xksproxy-api-spec/)에 정의된 모든 [프록시 API](keystore-external.md#concept-proxy-apis)를 지원해야 합니다. 이 오류는 프록시가 요청과 관련된 작업을 지원하지 않음을 나타냅니다. 외부 키 스토어 관리자 또는 공급업체에 알리세요.

## 프록시 권한 부여 문제
<a name="fix-xks-authorization"></a>

**예외**: `CustomKeyStoreInvalidStateException`, `KMSInvalidStateException` 

일부 외부 키 스토어 프록시는 외부 키 사용에 대한 권한 부여 요구 사항을 구현합니다. 외부 키 스토어 프록시는 특정 사용자가 특정 조건에서 특정 작업을 요청할 수 있도록 하는 권한 부여 체계를 설계하고 구현하는 데 허용되지만 필수는 아닙니다. 예를 들어 프록시를 사용하면 사용자가 특정 외부 키로 암호화할 수 있지만 복호화할 수는 없습니다. 자세한 내용은 [외부 키 스토어 프록시 권한 부여(선택 사항)](authorize-xks-key-store.md#xks-proxy-authorization) 단원을 참조하십시오.

프록시 권한 부여는가 프록시에 대한 요청에 AWS KMS 포함하는 메타데이터를 기반으로 합니다. `awsSourceVpc` 및 `awsSourceVpce` 필드는 요청이 VPC 엔드포인트에서 발생하고 호출자가 KMS 키와 동일한 계정에 있는 경우에만 메타데이터에 포함됩니다.

```
"requestMetadata": {
    "awsPrincipalArn": string,
    "awsSourceVpc": string, // optional
    "awsSourceVpce": string, // optional
    "kmsKeyArn": string,
    "kmsOperation": string,
    "kmsRequestId": string,
    "kmsViaService": string // optional
}
```

프록시가 권한 부여 실패로 인해 요청을 거부하면 관련 AWS KMS 작업이 실패합니다.는를 `CreateKey` 반환합니다`CustomKeyStoreInvalidStateException`. AWS KMS 암호화 작업은를 반환합니다`KMSInvalidStateException`. 둘 다 다음 오류 메시지를 사용합니다.


|  | 
| --- |
| 외부 키 스토어 프록시가 작업에 대한 액세스를 거부했습니다. 사용자와 외부 키 모두에 이 작업에 대한 권한이 있는지 확인하고 요청을 다시 시도하세요. | 
+ 오류를 해결하려면 외부 키 관리자 또는 외부 키 스토어 프록시 도구를 사용하여 인증에 실패한 이유를 확인합니다. 그런 다음 무단 요청을 유발한 절차를 업데이트하거나 외부 키 스토어 프록시 도구를 사용하여 권한 부여 정책을 업데이트합니다. AWS KMS에서는 이 오류를 해결할 수 없습니다.