

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

# KMS 키 생성
<a name="create-keys"></a>

 AWS KMS keys 에서 AWS Management Console또는 [CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html) 작업 또는 [AWS::KMS::Key AWS CloudFormation 리소스를](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kms-key.html) 사용하여를 생성할 수 있습니다. 이 과정에서 KMS 키에 대한 키 정책을 설정할 수 있으며, 이 정책은 언제든지 변경할 수 있습니다. 또한 생성하는 KMS 키 유형을 정의하는 다음 값도 선택합니다. KMS 키가 생성된 후에는 이러한 속성을 변경할 수 없습니다.

**KMS 키 유형**  
*키 유형은* 생성되는 암호화 키 유형을 결정하는 속성입니다.는 데이터를 보호하기 위해 세 가지 키 유형을 AWS KMS 제공합니다.  
+ 고급 암호화 표준(AES) 대칭 키

  AES의 GCM(Galois Counter Mode) 모드에서 4KB 미만의 데이터에 대해 인증된 암호화/복호화를 제공하는 데 사용되는 256비트 키입니다. 이는 가장 일반적인 유형의 키이며 애플리케이션에서 사용되는 다른 데이터 암호화 키를 보호하고 사용자를 대신하여 데이터를 암호화하는 AWS 서비스 데 사용됩니다.
+ RSA, 타원 곡선 또는 SM2(중국 리전만 해당) 비대칭 키

  이러한 키는 다양한 크기로 사용 가능하며 많은 알고리즘을 지원합니다. 이러한 키는 알고리즘 선택에 따라 암호화 및 복호화, 서명 및 확인 또는 공유 보안 비밀 작업에 사용할 수 있습니다.
+ 해시 기반 메시지 인증 코드(HMAC) 작업을 수행하기 위한 대칭 키

  이러한 키는 서명 및 확인 작업에 사용되는 256비트 키입니다.

  KMS 키는 서비스에서 일반 텍스트로 내보낼 수 없습니다. KMS 키는 서비스에서 사용하는 하드웨어 보안 모듈(HSM)에 의해 생성되고 해당 보안 모듈 내에서만 사용될 수 있습니다. 이는 키가 손상되지 않도록 AWS KMS 하기 위한의 기본 보안 속성입니다.

**키 사용**  
**키 사용은 키가 지원하는 암호화 작업을 결정하는 속성입니다. KMS 키는 `ENCRYPT_DECRYPT`, `SIGN_VERIFY` `GENERATE_VERIFY_MAC` 또는 `KEY_AGREEMENT`의 키 사용을 가질 수 있습니다. 각 KMS 키에는 하나의 키 사용만 있을 수 있습니다. 이는 [미국 국립표준기술원(NIST) 특별 간행물 800-57 키 관리 권고 사항의 섹션 5.2, 키 사용](https://csrc.nist.gov/pubs/sp/800/57/pt1/r5/final)에 따른 키 사용 모범 사례를 따르는 것입니다. 두 가지 이상의 작업 유형에 KMS를 사용하면 두 작업의 결과물이 공격에 더 취약해집니다.

**키 사양**  
*키 사양*은 키의 암호화 구성을 나타내는 속성입니다. 키 사양의 의미는 키 유형에 따라 다릅니다.  
KMS 키의 경우 *키 사양*은 KMS 키가 대칭인지 또는 비대칭인지 여부를 결정합니다. 또한 키 구성 요소의 유형과 지원하는 알고리즘을 결정합니다.  
기본 키 사양인 [SYMMETRIC\$1DEFAULT](symm-asymm-choose-key-spec.md#symmetric-cmks)는 256비트 대칭 암호화 키를 나타냅니다. 지원되는 모든 키 사양에 대한 자세한 설명은 [키 사양 참조](symm-asymm-choose-key-spec.md) 단원을 참조하세요.

**키 구성 요소 오리진**  
*키 구성 요소 오리진*은 KMS 키에서 키 구성 요소의 소스를 식별하는 KMS 키 속성입니다. 키 구성 요소 오리진은 KMS 키를 생성할 때 선택하며 이후에는 변경할 수 없습니다. 키 구성 요소의 소스는 KMS 키의 보안, 내구성, 가용성, 지연 시간 및 처리량 특성에 영향을 미칩니다.  
각 KMS 키는 메타데이터에 해당 키 구성 요소에 대한 참조를 포함합니다. 대칭 암호화 KMS 키의 키 구성 요소 오리진은 다를 수 있습니다. AWS KMS 에서 생성하는 키 구성 요소, [사용자 지정 키 저장소](key-store-overview.md#custom-key-store-overview)에서 생성된 키 구성 요소를 사용하거나 [고유한 키 구성 요소를 가져올](importing-keys.md) 수 있습니다.  
기본적으로 각 KMS 키에는 고유한 키 구성 요소가 있습니다. 그러나 동일한 키 구성 요소를 사용하여 [다중 리전 키](multi-region-keys-overview.md) 집합을 생성할 수 있습니다  
KMS 키는 `AWS_KMS`, `EXTERNAL` ([가져온 키 구성 요소), (키 스토어의 KMS 키) 또는 (외부 키 스토어의 KMS 키) 중 하나의 키 구성 요소](importing-keys.md) 오리진 값을 가질 수 있습니다. `AWS_CLOUDHSM` [AWS CloudHSM](keystore-cloudhsm.md) `EXTERNAL_KEY_STORE` [외부 키 스토어](keystore-external.md) 

**Topics**
+ [KMS 키를 생성하기 위한 사용 권한](#create-key-permissions)
+ [생성할 KMS 키 유형 선택](#symm-asymm-choose)
+ [대칭 암호화 KMS 키 생성](create-symmetric-cmk.md)
+ [비대칭 KMS 키 생성](asymm-create-key.md)
+ [HMAC KMS 키 생성](hmac-create-key.md)
+ [다중 리전 프라이머리 키 생성](create-primary-keys.md)
+ [다중 리전 복제본 키 생성](multi-region-keys-replicate.md)
+ [가져온 키 구성 요소가 있는 KMS 키 생성](importing-keys-conceptual.md)
+ [키 스토어에서 KMS AWS CloudHSM 키 생성](create-cmk-keystore.md)
+ [외부 키 저장소에서 KMS 키 생성](create-xks-keys.md)

## KMS 키를 생성하기 위한 사용 권한
<a name="create-key-permissions"></a>

콘솔에서 또는 API를 사용하여 KMS 키를 생성하려면 IAM 정책에서 다음 권한이 있어야 합니다. 가능하면 [조건 키](policy-conditions.md)를 사용하여 사용 권한을 제한합니다. 예를 들어 IAM 정책에서 [kms:KeySpec](conditions-kms.md#conditions-kms-key-spec) 조건 키를 사용하여 보안 주체가 대칭 암호화 키만을 생성하도록 할 수 있습니다.

키를 생성하는 보안 주체에 대한 IAM 정책의 예는 [사용자가 KMS 키를 생성할 수 있도록 허용](customer-managed-policies.md#iam-policy-example-create-key) 섹션을 참조하세요.

**참고**  
보안 주체에게 태그 및 별칭을 관리할 수 있는 권한을 부여하는 데 주의해야 합니다. 태그 또는 별칭을 변경하면 고객 관리 키에 대한 권한을 허용하거나 거부할 수 있습니다. 자세한 내용은 [에 대한 ABAC AWS KMS](abac.md) 섹션을 참조하세요.
+ [kms:CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html)는 필수입니다.
+ [kms:CreateAlias](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateAlias.html)는 콘솔에서 모든 새 KMS 키에 별칭이 필요한 KMS 키를 만드는 데 필요합니다.
+ [kms:TagResource](https://docs.aws.amazon.com/kms/latest/APIReference/API_TagResource.html)는 KMS 키를 만드는 동안 태그를 추가하는 데 필요합니다.
+ [iam:CreateServiceLinkedRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateServiceLinkedRole.html)는 다중 리전 기본 키를 만드는 데 필요합니다. 자세한 내용은 [다중 리전 키에 대한 액세스 제어](multi-region-keys-auth.md) 섹션을 참조하세요.

[kms:PutKeyPolicy](https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html) 권한은 KMS 키를 만드는 데 필요하지 않습니다. `kms:CreateKey` 권한에는 초기 키 정책을 설정할 수 있는 권한이 포함됩니다. 그러나 KMS 키에 대한 액세스를 제어할 수 있도록 KMS 키를 만드는 동안 이 권한을 키 정책에 추가해야 합니다. 또 다른 방법은 [BypassLockoutSafetyCheck](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html#KMS-CreateKey-request-BypassPolicyLockoutSafetyCheck) 파라미터를 사용하는 것이지만, 이는 사용하지 않는 것이 좋습니다.

KMS 키는 키가 생성된 AWS 계정에 속합니다. KMS 키를 생성하는 IAM 사용자는 키 소유자로 간주되지 않으며, 사용자가 생성한 KMS 키를 사용하거나 관리할 수 있는 권한이 자동으로 부여되지 않습니다. 다른 보안 주체와 마찬가지로 키 생성자는 키 정책, IAM 정책 또는 권한 부여를 통해 허가를 받아야 합니다. 그러나, `kms:CreateKey` 권한이 있는 보안 주체는 초기 키 정책을 설정하고 키를 사용하거나 관리할 권한을 자신에게 부여할 수 있습니다.

## 생성할 KMS 키 유형 선택
<a name="symm-asymm-choose"></a>

생성할 KMS 키 유형은 주로 KMS 키 *사용* 계획, 보안 요구 사항 및 권한 부여 요구 사항에 따라 결정됩니다. KMS 키의 키 유형 및 키 사용에 따라 키가 수행할 수 있는 암호화 작업이 결정됩니다. 각 KMS 키에는 하나의 키 사용만 있습니다. 두 가지 이상의 작업 유형에 KMS를 사용하면 모든 작업의 결과물이 공격에 더 취약해집니다.

보안 주체가 특정 키 사용에 대해서만 KMS 키를 생성하도록 하려면 [kms:KeyUsage](conditions-kms.md#conditions-kms-key-usage) 조건 키를 사용합니다. `kms:KeyUsage` 조건 키를 사용하여 보안 주체가 해당 키 사용을 기반으로 KMS 키에 대한 API 작업을 호출하도록 허용할 수도 있습니다. 예를 들어 키 사용이 SIGN\$1VERIFY인 경우에만 KMS 키를 비활성화할 수 있는 권한을 허용할 수 있습니다.

사용 사례에 따라 필요한 KMS 키 유형을 결정하려면 다음 지침을 따르세요.

**암호화 및 해독**  
데이터 암호화 및 해독이 필요한 대부분의 사용 사례에는 [대칭 KMS 키](symm-asymm-choose-key-spec.md#symmetric-cmks)를 사용합니다. AWS KMS 에서 사용하는 대칭 암호화 알고리즘은 빠르고 효율적이며 데이터의 기밀성과 신뢰성을 보장합니다. 또한 [암호화 컨텍스트](encrypt_context.md)로 정의된 추가 인증 데이터(AAD)를 사용하는 인증된 암호화를 지원합니다. 이 유형의 KMS 키를 사용하려면 암호화된 데이터의 발신자와 수신자가 모두 호출할 유효한 AWS 자격 증명을 가지고 있어야 합니다 AWS KMS.  
사용 사례에서를 호출할 수 없는 사용자가 외부 AWS 에서 암호화해야 하는 경우 AWS KMS[비대칭 KMS 키를](symmetric-asymmetric.md) 선택하는 것이 좋습니다. 이러한 사용자가 데이터를 암호화할 수 있도록 비대칭 KMS 키의 퍼블릭 키를 배포할 수 있습니다. 또한 해당 데이터의 암호를 해독해야 하는 애플리케이션은 AWS KMS내부에서 비대칭 KMS 키의 프라이빗 키를 사용할 수 있습니다.

**메시지 서명 및 서명 확인**  
메시지에 서명하고 서명을 확인하려면 [비대칭 KMS 키](symmetric-asymmetric.md)를 사용해야 합니다. RSA 키 페어, 타원 곡선(ECC) 키 페어, ML-DSA 키 페어 또는 SM2 키 페어(중국 리전만 해당)를 나타내는 [키 사양](symm-asymm-choose-key-spec.md)을 가진 KMS 키를 사용할 수 있습니다. 선택하는 키 사양은 사용하려는 서명 알고리즘에 따라 결정됩니다. ECC 키 페어에서 지원되는 ECDSA 서명 알고리즘이 RSA 서명 알고리즘보다 권장됩니다. RSA 또는 ECC 키에서 양자 내성 키로 마이그레이션할 때는 ML-DSA 키 페어를 사용하세요. 그러나 AWS외부에서 서명을 확인하는 사용자를 지원하기 위해서는 특정 키 사양 및 서명 알고리즘을 사용해야 할 수 있습니다.

**비대칭 키 페어로 암호화**  
비대칭 키 페어가 있는 데이터를 암호화하려면 [비대칭 KMS 키](symmetric-asymmetric.md)를 [RSA키 사양](symm-asymm-choose-key-spec.md#key-spec-rsa-encryption) 또는 [SM2 키 사양](symm-asymm-choose-key-spec.md#key-spec-sm)(중국 리전만 해당)과 함께 사용해야 합니다. AWS KMS 에서 KMS 키 페어의 퍼블릭 키를 사용하여 데이터를 암호화하려면 [암호화(Encrypt)](https://docs.aws.amazon.com/kms/latest/APIReference/API_Encrypt.html) 작업을 사용합니다. 또한 [퍼블릭 키를 다운로드](download-public-key.md)하여 외부에서 데이터를 암호화해야 하는 당사자와 공유할 수 있습니다 AWS KMS.  
비대칭 KMS의 퍼블릭 키를 다운로드하면 AWS KMS외부에서 키를 사용할 수 있습니다. 그러나 더 이상 KMS 키를 보호하는 보안 제어가 적용되지 않습니다 AWS KMS. 예를 들어 AWS KMS 키 정책 또는 권한 부여를 사용하여 퍼블릭 키 사용을 제어할 수 없습니다. 또한가 AWS KMS 지원하는 암호화 알고리즘을 사용하여 키가 암호화 및 복호화에만 사용되는지 여부를 제어할 수 없습니다. 자세한 내용은 [퍼블릭 키 다운로드 시 특별 고려 사항](offline-public-key.md#download-public-key-considerations)을 참조하세요.  
외부의 퍼블릭 키로 암호화된 데이터를 복호화하려면 [복호화](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) 작업을 AWS KMS호출합니다. 데이터가 `SIGN_VERIFY`의 키 사용으로 KMS 키의 퍼블릭 키에서 암호화된 경우 `Decrypt` 작업이 실패합니다. 선택한 키 사양을 지원하지 AWS KMS 않는 알고리즘을 사용하여 암호화한 경우에도 실패합니다. 키 사양 및 지원되는 알고리즘에 대한 자세한 내용은 [키 사양 참조](symm-asymm-choose-key-spec.md) 단원을 참조하세요.  
이러한 오류를 방지하려면 외부에서 퍼블릭 키를 사용하는 모든 사용자가 키 구성을 저장 AWS KMS 해야 합니다. AWS KMS 콘솔과 [GetPublicKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetPublicKey.html) 응답은 퍼블릭 키를 공유할 때 포함해야 하는 정보를 제공합니다.

**공유 보안 비밀 도출**  
공유 보안 암호를 도출하려면 [NIST 표준 타원 곡선](symm-asymm-choose-key-spec.md#key-spec-ecc) 또는 [SM2](symm-asymm-choose-key-spec.md#key-spec-sm)(중국 리전만 해당) 키 구성 요소가 있는 KMS 키를 사용합니다.는 [타원 곡선 퍼블릭-프라이빗 키 페어에서 공유 보안 암호를 도출하여 두 피어 간에 키 계약을 설정하기 위해 타원 곡선 암호화 Cofactor Diffie-Hellman Primitive](https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-56Ar3.pdf#page=60)(ECDH)를 AWS KMS 사용합니다. [ DeriveSharedSecret](https://docs.aws.amazon.com/kms/latest/APIReference/API_DeriveSharedSecret.html) 작업이 반환하는 원시 공유 보안 암호를 사용하여 두 당사자 간에 전송되는 데이터를 암호화 및 해독할 수 있는 대칭 키를 추출하거나 원시 공유 보안 암호를 사용하여 대칭 키를 추출할 때 [키 추출에 대한 NIST 권장 사항을](https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-56Cr2.pdf) 따르는 HMACs. AWS KMS recommds를 생성하고 확인할 수 있습니다.

**HMAC 코드 생성 및 확인**  
해시 기반 메시지 인증 코드를 생성하고 확인하려면 HMAC 키를 사용합니다. 에서 HMAC 키를 생성할 때는 키 구성 요소를 AWS KMS AWS KMS 생성 및 보호하고 키에 올바른 MAC 알고리즘을 사용하도록 합니다. HMAC 코드는 의사 난수로 사용할 수도 있으며 대칭 서명 및 토큰화를 위한 특정 시나리오에서도 사용할 수 있습니다.  
HMAC KMS 키는 대칭 키입니다. AWS KMS 콘솔에서 HMAC KMS 키를 생성할 때, `Symmetric` 키 유형을 선택합니다.

** AWS 서비스와 함께 사용**  <a name="cmks-aws-service"></a>
[AWS 와 통합된 서비스와 AWS KMS](service-integration.md) 함께 사용할 KMS 키를 생성하려면 데이터를 암호화하는 service. AWS services에 대한 설명서를 참조하세요. [대칭 암호화 KMS 키](symm-asymm-choose-key-spec.md#symmetric-cmks)가 필요합니다.

이러한 고려 사항 외에도 키 사양이 다른 KMS 키에 대한 암호화 작업에는 가격과 요청 할당량이 다릅니다. AWS KMS 요금에 대한 자세한 내용은 [AWS Key Management Service 요금](https://aws.amazon.com/kms/pricing/)을 참조하세요. 요청 할당량에 대한 자세한 내용은 [요청 할당량](requests-per-second.md) 섹션을 참조하세요.

# 대칭 암호화 KMS 키 생성
<a name="create-symmetric-cmk"></a>

이 주제에서는 키 구성 요소가 있는 단일 리전에 대한 [대칭 암호화 KMS 키인 기본 KMS](symm-asymm-choose-key-spec.md#symmetric-cmks) 키를 생성하는 방법을 설명합니다 AWS KMS. 이 KMS 키를 사용하여 AWS 서비스의 리소스를 보호할 수 있습니다.

 AWS KMS 콘솔에서 [CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html) API를 사용하거나 [AWS::KMS::Key CloudFormation 템플릿을 사용하여 대칭 암호화 KMS 키를 생성할 수 있습니다](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kms-key.html).

기본 키 사양인 [SYMMETRIC\$1DEFAULT](symm-asymm-choose-key-spec.md#symmetric-cmks)는 대칭 암호화 KMS 키의 키 사양입니다. AWS KMS 콘솔에서 **대칭** 키 유형과 **암호화 및 복호화** 키 사용을 선택하면 `SYMMETRIC_DEFAULT` 키 사양이 선택됩니다. [CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html) 작업에서 `KeySpec` 값을 지정하지 않으면 SYMMETRIC\$1DEFAULT가 선택됩니다. 다른 키 사양을 사용할 이유가 없다면 SYMMETRIC\$1DEFAULT가 좋은 선택입니다.

KMS 키에 적용되는 할당량에 대한 자세한 내용은 [할당량](limits.md) 섹션을 참조하십시오.

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

를 사용하여 AWS KMS keys (KMS 키) AWS Management Console 를 생성할 수 있습니다.

**중요**  
별칭, 설명 또는 태그에 기밀 또는 민감한 정보를 포함하지 마십시오. 이러한 필드는 CloudTrail 로그 및 기타 출력에 일반 텍스트로 표시될 수 있습니다.

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. 탐색 창에서 **고객 관리형 키**를 선택합니다.

1. **키 생성**을 선택합니다.

1. 대칭 암호화 KMS 키를 생성하려면 **키 유형(Key type)**에 **대칭(Symmetric)**을 선택합니다.

1. **키 사용(Key usage)**에서 **암호화 및 해독(Encrypt and decrypt)** 옵션이 선택됩니다.

1. **다음**을 선택합니다.

1. KMS 키의 별칭을 입력합니다. 별칭은 **aws/**로 시작할 수 없습니다. **aws/** 접두사는 Amazon Web Services에서 예약하여 계정 AWS 관리형 키 에서 나타냅니다.
**참고**  
별칭을 추가, 삭제 또는 업데이트하면 KMS 키에 대한 권한을 허용하거나 거부할 수 있습니다. 자세한 내용은 [에 대한 ABAC AWS KMS](abac.md) 및 [별칭을 사용하여 KMS 키에 대한 액세스 제어](alias-authorization.md) 섹션을 참조하십시오.

    별칭은 KMS 키를 식별하는 데 사용할 수 있는 표시 이름입니다. 보호하고자 하는 데이터의 유형 또는 KMS 키와 함께 사용할 애플리케이션을 나타내는 별칭을 선택하는 것이 좋습니다.

    

    AWS Management Console에서 KMS 키를 생성할 때 별칭이 필요합니다. 이들은 [CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html) 작업을 사용할 때 선택 사항입니다.

1. (선택 사항) KMS 키에 대한 설명을 입력합니다.

   [키 상태](key-state.md)가 `Pending Deletion` 또는 `Pending Replica Deletion`이 아닌 한 지금 설명을 추가하거나 언제든지 설명을 업데이트할 수 있습니다. 기존 고객 관리형 키에 대한 설명을 추가, 변경 또는 삭제하려면의 KMS 키에 대한 세부 정보 페이지에서 설명을 편집 AWS Management Console 하거나 [UpdateKeyDescription](https://docs.aws.amazon.com/kms/latest/APIReference/API_UpdateKeyDescription.html) 작업을 사용합니다.

1. (선택 사항) 태그 키와 태그 값(선택)을 입력합니다. KMS 키에 두 개 이상의 태그를 추가하려면 **태그 추가(Add tag)**를 선택합니다.
**참고**  
KMS 키에 태그를 지정하거나 해제하면 KMS 키에 대한 권한을 허용하거나 거부할 수 있습니다. 자세한 내용은 [에 대한 ABAC AWS KMS](abac.md) 및 [태그를 사용하여 KMS 키에 대한 액세스 제어](tag-authorization.md) 섹션을 참조하세요.

    AWS 리소스에 태그를 추가하면가 태그별로 집계된 사용량 및 비용이 포함된 비용 할당 보고서를 AWS 생성합니다. KMS 키에 대한 액세스를 제어하는 데에도 태그를 사용할 수 있습니다. KMS 키 태그 지정에 대한 자세한 내용은 [의 태그 AWS KMS](tagging-keys.md) 및 [에 대한 ABAC AWS KMS](abac.md) 섹션을 참조하십시오.

1. **다음**을 선택합니다.

1. KMS 키를 관리할 수 있는 IAM 사용자 및 역할을 선택합니다.
**참고**  
이 키 정책은이 KMS 키를 AWS 계정 완전히 제어합니다. 계정 관리자가 IAM 정책을 사용하여 KMS 키를 관리할 수 있는 권한을 다른 보안 주체에게 부여하도록 허용합니다. 자세한 내용은 [기본 키 정책](key-policy-default.md)을 참조하세요.  
IAM 모범 사례는 장기 보안 인증 정보가 있는 IAM 사용자의 사용을 장려하지 않습니다. 가능할 경우, 임시 보안 인증 정보를 제공하는 IAM 역할을 사용하세요. 자세한 내용은 *IAM 사용 설명서*의 [IAM의 보안 모범 사례](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)를 참조하세요.  
 AWS KMS 콘솔은 문 식별자 아래의 키 정책에 키 관리자를 추가합니다`"Allow access for Key Administrators"`. 이 문 식별자를 수정하면 문에 대해 콘솔이 업데이트 내용을 표시하는 방식에 영향을 미칠 수 있습니다.

1. (선택 사항) 선택한 IAM 사용자와 역할이 페이지 하단의 **키 삭제** 섹션에서 이 KMS 키를 삭제하지 못하도록 하려면 **키 관리자가 이 키를 삭제하도록 허용(Allow key administrators to delete this key)** 확인란의 선택을 취소합니다.

1. **다음**을 선택합니다.

1. [암호화 작업](kms-cryptography.md#cryptographic-operations)에서 키를 사용할 수 있는 IAM 사용자 및 역할을 선택합니다.
**참고**  
IAM 모범 사례는 장기 보안 인증 정보가 있는 IAM 사용자의 사용을 장려하지 않습니다. 가능할 경우, 임시 보안 인증 정보를 제공하는 IAM 역할을 사용하세요. 자세한 내용은 *IAM 사용 설명서*의 [IAM의 보안 모범 사례](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)를 참조하세요.  
 AWS KMS 콘솔은 명령문 식별자 `"Allow use of the key"` 및 아래의 키 정책에 키 사용자를 추가합니다`"Allow attachment of persistent resources"`. 이러한 문 식별자들을 수정하면 문에 대해 콘솔이 업데이트 내용을 표시하는 방식에 영향을 미칠 수 있습니다.

1. (선택 사항) 다른 사용자가 암호화 작업에이 KMS 키를 AWS 계정 사용하도록 허용할 수 있습니다. 이렇게 하려면 페이지 하단의 **기타 AWS 계정** 섹션에서 **다른 추가 AWS 계정**를 선택하고 외부 계정의 AWS 계정 식별 번호를 입력합니다. 외부 계정을 여러 개 추가하려면 이 단계를 반복합니다.
**참고**  
외부 계정의 보안 주체가 KMS 키를 사용하도록 허용하려면 외부 계정 관리자가 이러한 권한을 제공하는 IAM 정책을 생성해야 합니다. 자세한 정보는 [다른 계정의 사용자가 KMS를 사용하도록 허용](key-policy-modifying-external-accounts.md) 섹션을 참조하세요.

1. **다음**을 선택합니다.

1. 키에 대한 키 정책 문을 검토합니다. 키 정책을 변경하려면 **편집**을 선택하세요.

1. **다음**을 선택합니다.

1. 선택한 키 설정을 검토합니다. 여전히 돌아가서 모든 설정을 변경할 수 있습니다.

1. **마침(Finish)**을 선택하여 KMS 키를 생성합니다.

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

[CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html) 작업을 사용하여 AWS KMS keys 모든 유형을 생성할 수 있습니다. 이 예제에서는 [AWS Command Line Interface (AWS CLI)](https://aws.amazon.com/cli/)를 사용합니다. 다양한 프로그래밍 언어의 예는 [AWS SDK 또는 CLI와 `CreateKey` 함께 사용](example_kms_CreateKey_section.md) 섹션을 참조하십시오.

**중요**  
`Description` 또는 `Tags` 필드에 기밀 또는 민감한 정보를 포함하지 마십시오. 이러한 필드는 CloudTrail 로그 및 기타 출력에 일반 텍스트로 표시될 수 있습니다.

다음 작업은 AWS KMS에 의해 생성된 키 구성 요소를 기반으로 단일 리전에 대칭 암호화 키를 생성합니다. 이 작업에는 필수 파라미터가 없습니다. 그러나 `Policy` 파라미터를 사용하여 키 정책을 지정할 수도 있습니다. 언제든 키 정책([PutKeyPolicy](https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html))을 변경하고 [설명](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html) 및 [태그](https://docs.aws.amazon.com/kms/latest/APIReference/API_TagResource.html) 등의 선택적 요소를 추가할 수 있습니다. [비대칭 키](asymm-create-key.md#create-asymmetric-keys-api), [다중 리전 키](create-primary-keys.md), [가져온 키 구성 요소](importing-keys-create-cmk.md#importing-keys-create-cmk-api)가 있는 키, [사용자 지정 키 스토어](create-cmk-keystore.md#create-cmk-keystore-api)의 키를 생성할 수도 있습니다. 클라이언트 측 암호화를 위한 데이터 키를 생성하려면 [GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html) 작업을 사용합니다.

`CreateKey` 작업을 사용하면 별칭을 지정할 수 없지만 [CreateAlias](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateAlias.html) 작업을 사용하여 새 KMS 키의 별칭을 만들 수 있습니다.

다음은 파라미터 없이 `CreateKey` 작업을 호출하는 예제입니다. 이 명령은 모든 기본값을 사용합니다. 그러면 AWS KMS가 생성한 키 구성 요소가 있는 대칭 암호화 KMS 키가 생성됩니다.

```
$ aws kms create-key
{
    "KeyMetadata": {
        "Origin": "AWS_KMS",
        "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab",
        "Description": "",
        "KeyManager": "CUSTOMER",
        "Enabled": true,
        "KeySpec": "SYMMETRIC_DEFAULT",
        "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT",
        "KeyUsage": "ENCRYPT_DECRYPT",
        "KeyState": "Enabled",
        "CreationDate": 1502910355.475,
        "Arn": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
        "AWSAccountId": "111122223333",
        "MultiRegion": false
        "EncryptionAlgorithms": [
            "SYMMETRIC_DEFAULT"
        ],
    }
}
```

새 KMS 키에 대한 키 정책을 지정하지 않으면 `CreateKey`가 적용하는 [기본 키 정책](key-policy-default.md)은 콘솔을 사용하여 새 KMS 키를 생성할 때 적용하는 기본 키 정책과 다릅니다.

예를 들어 이 [GetKeyPolicy](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetKeyPolicy.html) 작업 호출은 `CreateKey`가 적용하는 키 정책을 반환합니다. KMS 키에 대한 AWS 계정 액세스 권한을에 부여하고 KMS 키에 대한 AWS Identity and Access Management (IAM) 정책을 생성할 수 있습니다. IAM 정책 및 KMS 키의 키 정책에 대한 자세한 내용은 [KMS 키 액세스 및 권한](control-access.md) 섹션을 참조하십시오.

```
$ aws kms get-key-policy --key-id 1234abcd-12ab-34cd-56ef-1234567890ab --policy-name default --output text
```

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Id" : "key-default-1",
  "Statement" : [ {
    "Sid" : "EnableIAMUserPermissions",
    "Effect" : "Allow",
    "Principal" : {
      "AWS" : "arn:aws:iam::111122223333:root"
    },
    "Action" : "kms:*",
    "Resource" : "*"
  } ]
}
```

------

# 비대칭 KMS 키 생성
<a name="asymm-create-key"></a>

 AWS KMS 콘솔에서 [CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html) API를 사용하거나 [AWS::KMS::Key CloudFormation 템플릿](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kms-key.html)을 사용하여 [비대칭 KMS 키](symmetric-asymmetric.md)를 생성할 수 있습니다. 비대칭 KMS 키는 암호화, 서명 또는 공유 비밀을 도출하는 데 사용할 수 있는 퍼블릭 및 프라이빗 키 페어를 나타냅니다. 프라이빗 키는 내에 유지됩니다 AWS KMS. 외부에서 사용할 퍼블릭 키를 다운로드하려면 섹션을 AWS KMS참조하세요[퍼블릭 키 다운로드](download-public-key.md).

비대칭 KMS를 생성할 때 키 사양을 선택해야 합니다. 선택하는 키 사양은 규정, 보안 또는 비즈니스 요구 사항에 따라 결정됩니다. 또한 암호화하거나 서명해야 하는 메시지의 크기에 영향을 받을 수 있습니다. 일반적으로 암호화 키가 길수록 무차별 대입 공격에 더 강합니다. 지원되는 모든 키 사양에 대한 자세한 설명은 [키 사양 참조](symm-asymm-choose-key-spec.md) 단원을 참조하세요.

AWS 와 통합되는 서비스는 비대칭 KMS 키를 지원하지 AWS KMS 않습니다. AWS 서비스에서 저장하거나 관리하는 데이터를 암호화하는 KMS 키를 생성하려면 [대칭 암호화 KMS 키를 생성합니다](create-symmetric-cmk.md).

KMS 키를 생성하는 데 필요한 권한에 대한 자세한 내용은 [KMS 키를 생성하기 위한 사용 권한](create-keys.md#create-key-permissions) 섹션을 참조하세요.

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

를 사용하여 비대칭 AWS KMS keys (KMS 키) AWS Management Console 을 생성할 수 있습니다. 각 비대칭 KMS 키는 퍼블릭 및 프라이빗 키 페어를 나타냅니다.

**중요**  
별칭, 설명 또는 태그에 기밀 또는 민감한 정보를 포함하지 마십시오. 이러한 필드는 CloudTrail 로그 및 기타 출력에 일반 텍스트로 표시될 수 있습니다.

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. 탐색 창에서 **고객 관리형 키**를 선택합니다.

1. **키 생성**을 선택합니다.

1. 비대칭 KMS 키를 생성하려면 **키 유형(Key type)**에서 **비대칭(Asymmetric)**을 선택합니다.

1. 퍼블릭 키 암호화를 위한 비대칭 KMS 키를 생성하면 **키 사용(Key usage)**에서 **암호화 및 해독(Encrypt and decrypt)**를 선택합니다.

   메시지 서명 및 서명 확인을 위한 비대칭 KMS 키를 생성하려면 **키 사용**에서 **서명 및 확인**을 선택합니다.

   공유 보안 비밀을 도출하기 위한 비대칭 KMS 키를 생성하려면 **키 사용**에서 **키 계약**을 선택합니다.

   키 사용 값 선택에 대한 도움말은 [생성할 KMS 키 유형 선택](create-keys.md#symm-asymm-choose) 섹션을 참조하세요.

1. 비대칭 KMS 키에 대한 사양(**키 사양(Key spec)**)을 선택합니다.

1. **다음**을 선택합니다.

1. KMS 키에 대한 [별칭](kms-alias.md)을 입력합니다. 별칭은 **aws/**로 시작할 수 없습니다. **aws/** 접두사는 Amazon Web Services에서 계정에서 AWS 관리형 키 를 나타내기 위해 예약한 것입니다.

   *별칭*은 콘솔 및 일부 AWS KMS APIs. 보호하고자 하는 데이터의 유형 또는 KMS 키와 함께 사용할 애플리케이션을 나타내는 별칭을 선택하는 것이 좋습니다.

    AWS Management Console에서 KMS 키를 생성할 때 별칭이 필요합니다. [CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html) 작업을 사용할 때는 별칭을 지정할 수 없지만 콘솔이나 [CreateAlias](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateAlias.html) 작업을 사용하여 기존 KMS 키의 별칭을 생성합니다. 자세한 내용은 [의 별칭 AWS KMS](kms-alias.md) 섹션을 참조하세요.

1. (선택 사항) KMS 키에 대한 설명을 입력합니다.

   보호하려는 데이터의 유형 또는 KMS 키와 함께 사용하려는 애플리케이션을 설명하는 내용을 입력합니다.

   [키 상태](key-state.md)가 `Pending Deletion` 또는 `Pending Replica Deletion`이 아닌 한 지금 설명을 추가하거나 언제든지 설명을 업데이트할 수 있습니다. 기존 고객 관리형 키에 대한 설명을 추가, 변경 또는 삭제하려면의 KMS 키에 대한 세부 정보 페이지에서 설명을 편집 AWS Management Console 하거나 [UpdateKeyDescription](https://docs.aws.amazon.com/kms/latest/APIReference/API_UpdateKeyDescription.html) 작업을 사용합니다.

1. (선택 사항) 태그 키와 태그 값(선택)을 입력합니다. KMS 키에 두 개 이상의 태그를 추가하려면 **태그 추가(Add tag)**를 선택합니다.

    AWS 리소스에 태그를 추가하면가 태그별로 집계된 사용량 및 비용이 포함된 비용 할당 보고서를 AWS 생성합니다. KMS 키에 대한 액세스를 제어하는 데에도 태그를 사용할 수 있습니다. KMS 키 태그 지정에 대한 자세한 내용은 [의 태그 AWS KMS](tagging-keys.md) 및 [에 대한 ABAC AWS KMS](abac.md) 섹션을 참조하십시오.

1. **다음**을 선택합니다.

1. KMS 키를 관리할 수 있는 IAM 사용자 및 역할을 선택합니다.
**참고**  
이 키 정책은이 KMS 키를 AWS 계정 완전히 제어합니다. 계정 관리자가 IAM 정책을 사용하여 KMS 키를 관리할 수 있는 권한을 다른 보안 주체에게 부여하도록 허용합니다. 자세한 내용은 [기본 키 정책](key-policy-default.md)을 참조하세요.  
IAM 모범 사례는 장기 보안 인증 정보가 있는 IAM 사용자의 사용을 장려하지 않습니다. 가능할 경우, 임시 보안 인증 정보를 제공하는 IAM 역할을 사용하세요. 자세한 내용은 *IAM 사용 설명서*의 [IAM의 보안 모범 사례](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)를 참조하세요.  
 AWS KMS 콘솔은 문 식별자 아래의 키 정책에 키 관리자를 추가합니다`"Allow access for Key Administrators"`. 이 문 식별자를 수정하면 문에 대해 콘솔이 업데이트 내용을 표시하는 방식에 영향을 미칠 수 있습니다.

1. (선택 사항) 선택한 IAM 사용자와 역할이 페이지 하단의 **키 삭제** 섹션에서 이 KMS 키를 삭제하지 못하도록 하려면 **키 관리자가 이 키를 삭제하도록 허용(Allow key administrators to delete this key)** 확인란의 선택을 취소합니다.

1. **다음**을 선택합니다.

1. [암호화 작업](kms-cryptography.md#cryptographic-operations)에서 KMS 키를 사용할 수 있는 IAM 사용자 및 역할을 선택합니다.
**참고**  
IAM 모범 사례는 장기 보안 인증 정보가 있는 IAM 사용자의 사용을 장려하지 않습니다. 가능할 경우, 임시 보안 인증 정보를 제공하는 IAM 역할을 사용하세요. 자세한 내용은 *IAM 사용 설명서*의 [IAM의 보안 모범 사례](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)를 참조하세요.  
 AWS KMS 콘솔은 명령문 식별자 `"Allow use of the key"` 및 아래의 키 정책에 키 사용자를 추가합니다`"Allow attachment of persistent resources"`. 이러한 문 식별자들을 수정하면 문에 대해 콘솔이 업데이트 내용을 표시하는 방식에 영향을 미칠 수 있습니다.

1. (선택 사항) 다른 사용자가 암호화 작업에이 KMS 키를 AWS 계정 사용하도록 허용할 수 있습니다. 이렇게 하려면 페이지 하단의 **기타 AWS 계정** 섹션에서 **다른 AWS 계정추가**를 선택하고 외부 계정의 AWS 계정 식별 번호를 입력합니다. 외부 계정을 여러 개 추가하려면 이 단계를 반복합니다.
**참고**  
외부 계정의 보안 주체가 KMS 키를 사용하도록 허용하려면 외부 계정 관리자가 이러한 권한을 제공하는 IAM 정책을 생성해야 합니다. 자세한 정보는 [다른 계정의 사용자가 KMS를 사용하도록 허용](key-policy-modifying-external-accounts.md) 섹션을 참조하세요.

1. **다음**을 선택합니다.

1. 키에 대한 키 정책 문을 검토합니다. 키 정책을 변경하려면 **편집**을 선택하세요.

1. **다음**을 선택합니다.

1. 선택한 키 설정을 검토합니다. 여전히 돌아가서 모든 설정을 변경할 수 있습니다.

1. **마침(Finish)**을 선택하여 KMS 키를 생성합니다.

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

[CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html) 작업을 사용하여 비대칭을 생성할 수 있습니다 AWS KMS key. 이 예제들은 [AWS Command Line Interface (AWS CLI)](https://aws.amazon.com/cli/)를 사용하지만, 사용자는 어떤 지원되는 프로그래밍 언어라도 사용할 수 있습니다.

비대칭 KMS 키를 생성할 때 `KeySpec` 파라미터를 지정해야 합니다. 이 파라미터는 생성할 키의 유형을 결정합니다. 또한 ENCRYPT\$1DECRYPT, SIGN\$1VERIFY 또는 KEY\$1AGREEMENT의 `KeyUsage` 값을 지정해야 합니다. KMS 키가 생성된 후에는 이러한 속성을 변경할 수 없습니다.

`CreateKey` 작업을 사용하면 별칭을 지정할 수 없지만 [CreateAlias](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateAlias.html) 작업을 사용하여 새 KMS 키의 별칭을 만들 수 있습니다.

**중요**  
`Description` 또는 `Tags` 필드에 기밀 또는 민감한 정보를 포함하지 마십시오. 이러한 필드는 CloudTrail 로그 및 기타 출력에 일반 텍스트로 표시될 수 있습니다.

**퍼블릭 암호화를 위한 비대칭 KMS 키 페어 생성**  
다음 예제에서는 `CreateKey` 작업을 사용하여 퍼블릭 키 암호화를 위해 설계된 4096비트 RSA 키의 비대칭 KMS 키를 생성합니다.

```
$ aws kms create-key --key-spec RSA_4096 --key-usage ENCRYPT_DECRYPT
{
    "KeyMetadata": {
        "KeyState": "Enabled",
        "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab",
        "KeyManager": "CUSTOMER",
        "Description": "",
        "Arn": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
        "CreationDate": 1569973196.214,
        "MultiRegion": false,
        "KeySpec": "RSA_4096",
        "CustomerMasterKeySpec": "RSA_4096",
        "KeyUsage": "ENCRYPT_DECRYPT",
        "EncryptionAlgorithms": [
            "RSAES_OAEP_SHA_1",
            "RSAES_OAEP_SHA_256"
        ],
        "AWSAccountId": "111122223333",
        "Origin": "AWS_KMS",
        "Enabled": true
    }
}
```

**서명 및 확인을 위한 비대칭 KMS 키 페어 생성**  
다음 예제 명령은 서명 및 확인에 사용되는 ECC 키 페어를 나타내는 비대칭 KMS 키를 생성합니다. 암호화 및 암호 해독을 위한 타원 곡선 키 페어는 생성할 수 없습니다.

```
$ aws kms create-key --key-spec ECC_NIST_P521 --key-usage SIGN_VERIFY
{
    "KeyMetadata": {
        "KeyState": "Enabled",
        "KeyId": "0987dcba-09fe-87dc-65ba-ab0987654321",
        "CreationDate": 1570824817.837,
        "Origin": "AWS_KMS",
        "SigningAlgorithms": [
            "ECDSA_SHA_512"
        ],
        "Arn": "arn:aws:kms:us-west-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321",
        "AWSAccountId": "111122223333",
        "KeySpec": "ECC_NIST_P521",
        "CustomerMasterKeySpec": "ECC_NIST_P521",
        "KeyManager": "CUSTOMER",
        "Description": "",
        "Enabled": true,
        "MultiRegion": false,
        "KeyUsage": "SIGN_VERIFY"
    }
}
```

**공유 보안 비밀을 도출하기 위한 비대칭 KMS 키 페어 생성**  
다음 예제 명령은 공유 비밀을 도출하는 데 사용되는 ECDSA 키 페어를 나타내는 비대칭 KMS 키를 생성합니다. 암호화 및 암호 해독을 위한 타원 곡선 키 페어는 생성할 수 없습니다.

```
$ aws kms create-key --key-spec ECC_NIST_P256 --key-usage KEY_AGREEMENT
{
    "KeyMetadata": {
        "AWSAccountId": "111122223333",
        "KeyId": "0987dcba-09fe-87dc-65ba-ab0987654321",
        "Arn": "arn:aws:kms:us-west-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321",
        "CreationDate": "2023-12-27T19:10:15.063000+00:00",
        "Enabled": true,
        "Description": "",
        "KeyUsage": "KEY_AGREEMENT",
        "KeyState": "Enabled",
        "Origin": "AWS_KMS",
        "KeyManager": "CUSTOMER",
        "CustomerMasterKeySpec": "ECC_NIST_P256",
        "KeySpec": "ECC_NIST_P256",
        "KeyAgreementAlgorithms": [
            "ECDH"
        ],
        "MultiRegion": false
    }
}
```

# HMAC KMS 키 생성
<a name="hmac-create-key"></a>

 AWS KMS 콘솔에서 API를 사용하거나 AWS::KMS::Key 템플릿을 [https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html) 사용하여 HMAC KMS 키를 생성할 수 있습니다. [AWS::KMS::Key CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kms-key.html)

HMAC KMS 키를 생성할 때 키 사양을 선택해야 합니다. [HMAC KMS 키에 대한 여러 키 사양을](symm-asymm-choose-key-spec.md#hmac-key-specs) AWS KMS 지원합니다. 선택하는 키 사양은 규정, 보안 또는 비즈니스 요구 사항에 따라 결정될 수 있습니다. 일반적으로 키가 길수록 무차별 대입 공격에 더 강합니다.

KMS 키를 생성하는 데 필요한 권한에 대한 자세한 내용은 [KMS 키를 생성하기 위한 사용 권한](create-keys.md#create-key-permissions) 섹션을 참조하세요.

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

 AWS Management Console 를 사용하여 HMAC KMS 키를 생성할 수 있습니다. HMAC KMS 키는 키 사용이 **MAC 생성 및 확인(Generate and verify MAC)**인 대칭 키입니다. 다중 리전 HMAC 키를 생성할 수도 있습니다.

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. 탐색 창에서 **고객 관리형 키**를 선택합니다.

1. **키 생성**을 선택합니다.

1. **키 유형**에 **대칭**을 선택합니다.

   HMAC KMS 키는 대칭입니다. 동일한 키를 사용하여 HMAC 태그를 생성하고 확인합니다.

1. **키 사용(Key usage)**에서 **MAC 생성 및 확인(Generate and verify MAC)**을 선택합니다.

   MAC 생성 및 확인(Generate and verify MAC)은 HMAC KMS 키에 대한 유일한 유효한 키 사용입니다.
**참고**  
선택한 리전에서 HMAC KMS 키가 지원되는 경우에만 대칭 키에 대한 **키 사용(Key usage)**이 표시됩니다.

1. HMAC KMS 키에 대한 사양(**키 사양(Key spec)**)을 선택합니다.

   선택하는 키 사양은 규정, 보안 또는 비즈니스 요구 사항에 따라 결정될 수 있습니다. 일반적으로 더 긴 키는 더 안전합니다.

1. [다중 리전](multi-region-keys-overview.md) *기본* HMAC 키를 생성하려면, **고급 옵션(Advanced options)**에서 **다중 리전 키(Multi-Region key)**를 선택합니다. 키 유형, 키 사용 등과 같이 이 KMS 키에 대해 정의한 [공유 속성](multi-region-keys-overview.md#mrk-sync-properties)은 해당 복제본 키와 공유됩니다.

   이 절차를 사용하여 복제본 키를 생성할 수 없습니다. 다중 리전 *복제본* HMAC 키를 생성하려면 [복제본 키 생성 지침](multi-region-keys-replicate.md)을 따릅니다.

1. **다음**을 선택합니다.

1. KMS 키에 대한 [별칭](kms-alias.md)을 입력합니다. 별칭은 **aws/**로 시작할 수 없습니다. **aws/** 접두사는 Amazon Web Services에서 계정에서 AWS 관리형 키 를 나타내기 위해 예약한 것입니다.

   `HMAC/test-key`와 같이 KMS 키를 HMAC 키로 식별하는 별칭을 사용하는 것이 좋습니다. 이렇게 하면 AWS KMS 콘솔에서 HMAC 키를 더 쉽게 식별할 수 있습니다. 여기서 키 사양이나 키 사용량이 아닌 태그 및 별칭별로 키를 정렬하고 필터링할 수 있습니다.

    AWS Management Console에서 KMS 키를 생성할 때 별칭이 필요합니다. [CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html) 작업을 사용할 때는 별칭을 지정할 수 없지만 콘솔이나 [CreateAlias](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateAlias.html) 작업을 사용하여 기존 KMS 키의 별칭을 생성합니다. 자세한 내용은 [의 별칭 AWS KMS](kms-alias.md) 섹션을 참조하세요.

1. (선택 사항) KMS 키에 대한 설명을 입력합니다.

   보호하려는 데이터의 유형 또는 KMS 키와 함께 사용하려는 애플리케이션을 설명하는 내용을 입력합니다.

   [키 상태](key-state.md)가 `Pending Deletion` 또는 `Pending Replica Deletion`이 아닌 한 지금 설명을 추가하거나 언제든지 설명을 업데이트할 수 있습니다. 기존 고객 관리형 키에 대한 설명을 추가, 변경 또는 삭제하려면의에서 KMS 키에 대한 세부 정보 페이지의 설명을 편집 AWS Management Console AWS Management Console 하거나 [UpdateKeyDescription](https://docs.aws.amazon.com/kms/latest/APIReference/API_UpdateKeyDescription.html) 작업을 사용합니다.

1. (선택 사항) 태그 키와 선택적 태그 값을 입력합니다. KMS 키에 두 개 이상의 태그를 추가하려면 **태그 추가(Add tag)**를 선택합니다.

   `Type=HMAC`와 같이 키를 HMAC 키로 식별하는 태그를 추가하는 것이 좋습니다. 이렇게 하면 AWS KMS 콘솔에서 HMAC 키를 더 쉽게 식별할 수 있습니다. 여기서 키 사양이나 키 사용량이 아닌 태그 및 별칭별로 키를 정렬하고 필터링할 수 있습니다.

    AWS 리소스에 태그를 추가하면는 태그별로 집계된 사용량 및 비용이 포함된 비용 할당 보고서를 AWS 생성합니다. KMS 키에 대한 액세스를 제어하는 데에도 태그를 사용할 수 있습니다. KMS 키 태그 지정에 대한 자세한 내용은 [의 태그 AWS KMS](tagging-keys.md) 및 [에 대한 ABAC AWS KMS](abac.md) 섹션을 참조하십시오.

1. **다음**을 선택합니다.

1. KMS 키를 관리할 수 있는 IAM 사용자 및 역할을 선택합니다.
**참고**  
이 키 정책은이 KMS 키를 AWS 계정 완전히 제어합니다. 계정 관리자가 IAM 정책을 사용하여 KMS 키를 관리할 수 있는 권한을 다른 보안 주체에게 부여하도록 허용합니다. 자세한 내용은 [기본 키 정책](key-policy-default.md)을 참조하세요.  
IAM 모범 사례는 장기 보안 인증 정보가 있는 IAM 사용자의 사용을 장려하지 않습니다. 가능할 경우, 임시 보안 인증 정보를 제공하는 IAM 역할을 사용하세요. 자세한 내용은 *IAM 사용 설명서*의 [IAM의 보안 모범 사례](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)를 참조하세요.  
 AWS KMS 콘솔은 문 식별자 아래의 키 정책에 키 관리자를 추가합니다`"Allow access for Key Administrators"`. 이 문 식별자를 수정하면 문에 대해 콘솔이 업데이트 내용을 표시하는 방식에 영향을 미칠 수 있습니다.

1. (선택 사항) 선택한 IAM 사용자와 역할이 페이지 하단의 **키 삭제** 섹션에서 이 KMS 키를 삭제하지 못하도록 하려면 **키 관리자가 이 키를 삭제하도록 허용(Allow key administrators to delete this key)** 확인란의 선택을 취소합니다.

1. **다음**을 선택합니다.

1. [암호화 작업](kms-cryptography.md#cryptographic-operations)에서 KMS 키를 사용할 수 있는 IAM 사용자 및 역할을 선택합니다.
**참고**  
IAM 모범 사례는 장기 보안 인증 정보가 있는 IAM 사용자의 사용을 장려하지 않습니다. 가능할 경우, 임시 보안 인증 정보를 제공하는 IAM 역할을 사용하세요. 자세한 내용은 *IAM 사용 설명서*의 [IAM의 보안 모범 사례](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)를 참조하세요.  
 AWS KMS 콘솔은 문 식별자 `"Allow use of the key"` 및 아래의 키 정책에 키 사용자를 추가합니다`"Allow attachment of persistent resources"`. 이러한 문 식별자들을 수정하면 문에 대해 콘솔이 업데이트 내용을 표시하는 방식에 영향을 미칠 수 있습니다.

1. (선택 사항) 다른 사용자가 암호화 작업에이 KMS 키를 AWS 계정 사용하도록 허용할 수 있습니다. 이렇게 하려면 페이지 하단의 **기타 AWS 계정** 섹션에서 **다른 AWS 계정추가**를 선택하고 외부 계정의 AWS 계정 식별 번호를 입력합니다. 외부 계정을 여러 개 추가하려면 이 단계를 반복합니다.
**참고**  
외부 계정의 보안 주체가 KMS 키를 사용하도록 허용하려면 외부 계정 관리자가 이러한 권한을 제공하는 IAM 정책을 생성해야 합니다. 자세한 정보는 [다른 계정의 사용자가 KMS를 사용하도록 허용](key-policy-modifying-external-accounts.md) 섹션을 참조하세요.

1. **다음**을 선택합니다.

1. 키에 대한 키 정책 문을 검토합니다. 키 정책을 변경하려면 **편집**을 선택하세요.

1. **다음**을 선택합니다.

1. 선택한 키 설정을 검토합니다. 여전히 돌아가서 모든 설정을 변경할 수 있습니다.

1. **마침(Finish)**을 선택하여 HMAC KMS 키를 생성합니다.

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

[CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html) 작업을 사용하여 HMAC KMS 키를 생성할 수 있습니다. 이 예제들은 [AWS Command Line Interface (AWS CLI)](https://aws.amazon.com/cli/)를 사용하지만, 사용자는 어떤 지원되는 프로그래밍 언어라도 사용할 수 있습니다.

HMAC KMS 키를 생성할 때 `KeySpec` 파라미터를 지정해야 합니다. 이 파라미터는 KMS 키의 유형을 결정합니다. 또한 HMAC 키의 유일하게 유효한 키 사용 값인 경우에도 `KeyUsage` 값을 GENERATE\$1VERIFY\$1MAC로 지정해야 합니다. [다중 리전](multi-region-keys-overview.md) HMAC KMS 키를 생성하려면, 값이 `true`인 `MultiRegion` 파라미터를 추가합니다. KMS 키가 생성된 후에는 이러한 속성을 변경할 수 없습니다.

`CreateKey` 작업을 사용하면 별칭을 지정할 수 없지만 [CreateAlias](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateAlias.html) 작업을 사용하여 새 KMS 키의 별칭을 만들 수 있습니다. `HMAC/test-key`와 같이 KMS 키를 HMAC 키로 식별하는 별칭을 사용하는 것이 좋습니다. 이렇게 하면 AWS KMS 콘솔에서 HMAC 키를 더 쉽게 식별할 수 있습니다. 여기서 키 사양이나 키 사용량이 아닌 별칭을 기준으로 키를 정렬하고 필터링할 수 있습니다.

HMAC 키가 지원되지 않는 AWS 리전 에서 HMAC KMS 키를 생성하려고 하면 `CreateKey` 작업이를 반환합니다. `UnsupportedOperationException` 

다음 예제에서는 `CreateKey` 작업을 사용하여 512비트 HMAC KMS 키를 생성합니다.

```
$ aws kms create-key --key-spec HMAC_512 --key-usage GENERATE_VERIFY_MAC
{
    "KeyMetadata": {
        "KeyState": "Enabled",
        "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab",
        "KeyManager": "CUSTOMER",
        "Description": "",
        "Arn": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
        "CreationDate": 1669973196.214,
        "MultiRegion": false,
        "KeySpec": "HMAC_512",
        "CustomerMasterKeySpec": "HMAC_512",
        "KeyUsage": "GENERATE_VERIFY_MAC",
        "MacAlgorithms": [
            "HMAC_SHA_512"
        ],
        "AWSAccountId": "111122223333",
        "Origin": "AWS_KMS",
        "Enabled": true
    }
}
```

# 다중 리전 프라이머리 키 생성
<a name="create-primary-keys"></a>

 AWS KMS 콘솔에서 또는 AWS KMS API를 사용하여 [다중 리전 기본 키를](multi-region-keys-overview.md#mrk-primary-key) 생성할 수 있습니다. 가 다중 리전 키를 AWS KMS 지원하는 모든 AWS 리전 에서 기본 키를 생성할 수 있습니다.

다중 리전 기본 키를 생성하려면 보안 주체에게 IAM 정책의 [kms:CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html) 권한을 포함하여 KMS 키를 생성하는 데 필요한 것과 [동일한 권한](create-keys.md#create-key-permissions)이 필요합니다. 보안 주체는 또한[iam:CreateServiceLinkedRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateServiceLinkedRole.html) 권한도 필요합니다. [kms:MultiRegionKeyType](conditions-kms.md#conditions-kms-multiregion-key-type) 조건 키를 사용하여 다중 리전 기본 키 생성 권한을 허용하거나 거부할 수 있습니다.

**참고**  
다중 리전 프라이머리 키를 생성할 때, 키를 관리하고 사용하는 IAM 사용자와 역할을 신중하게 검토하여 선택해야 합니다. IAM 정책은 다른 IAM 사용자 및 역할에 KMS 키 관리 권한을 제공할 수 있습니다.  
IAM 모범 사례는 장기 보안 인증 정보가 있는 IAM 사용자의 사용을 장려하지 않습니다. 가능할 경우, 임시 보안 인증 정보를 제공하는 IAM 역할을 사용하세요. 자세한 내용은 *IAM 사용 설명서*의 [IAM의 보안 모범 사례](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)를 참조하세요.

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

 AWS KMS 콘솔에서 다중 리전 기본 키를 생성하려면 KMS 키를 생성하는 데 사용하는 것과 동일한 프로세스를 사용합니다. **고급 옵션**에서 다중 리전 키를 선택합니다. 전체 지침은 [KMS 키 생성](create-keys.md) 섹션을 참조하십시오.

**중요**  
별칭, 설명 또는 태그에 기밀 또는 민감한 정보를 포함하지 마십시오. 이러한 필드는 CloudTrail 로그 및 기타 출력에 일반 텍스트로 표시될 수 있습니다.

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. 탐색 창에서 **고객 관리형 키**를 선택합니다.

1. **키 생성(Create key)**을 선택합니다.

1. [대칭 또는 비대칭](symmetric-asymmetric.md) 키 유형을 선택합니다. 대칭 키가 기본값입니다.

   대칭인 다중 리전 HMAC KMS 키를 포함하여 다중 리전 대칭 및 비대칭 키를 생성할 수 있습니다.

1. 키 사용을 선택합니다. **암호화 및 해독(Encrypt and decrypt)**이 기본값입니다.

   도움말은 [KMS 키 생성](create-keys.md), [비대칭 KMS 키 생성](asymm-create-key.md) 또는 [HMAC KMS 키 생성](hmac-create-key.md) 섹션을 참조하세요.

1. **고급 옵션**을 확장합니다.

1. **키 구성 요소 오**리진에서가 기본 키와 복제본 키가 공유할 키 구성 요소를 AWS KMS 생성하도록 하려면 **KMS**를 선택합니다. 기본 및 복제본 키로 [키 구성 요소를 가져오는](importing-keys-create-cmk.md) 경우 **외부(키 구성 요소 가져오기)(External (Import key material))**를 선택합니다.

1. **리전 특성**에서 **다중 리전 키**를 선택합니다.

   KMS 키를 생성한 후에는 이 설정을 변경할 수 없습니다.

1. 기본 키의 [별칭](kms-alias.md)을 입력합니다.

   별칭은 다중 리전 키의 공유 속성이 아닙니다. 다중 리전 기본 키와 해당 복제본에 동일한 별칭 또는 다른 별칭을 부여할 수 있습니다.는 다중 리전 키의 별칭을 동기화하지 AWS KMS 않습니다.
**참고**  
별칭을 추가, 삭제 또는 업데이트하면 KMS 키에 대한 권한을 허용하거나 거부할 수 있습니다. 자세한 내용은 [에 대한 ABAC AWS KMS](abac.md) 및 [별칭을 사용하여 KMS 키에 대한 액세스 제어](alias-authorization.md) 섹션을 참조하십시오.

1. (선택 사항) 기본 키에 대한 설명을 입력합니다.

   설명은 다중 리전 키의 공유 속성이 아닙니다. 다중 리전 기본 키와 해당 복제본에 동일한 설명 또는 다른 설명을 제공할 수 있습니다.는 다중 리전 키의 키 설명을 동기화하지 AWS KMS 않습니다.

1. (선택 사항) 태그 키와 태그 값(선택)을 입력합니다. 기본 키에 두 개 이상의 태그를 할당하려면 **태그 추가(Add tag)**를 선택합니다.

   태그는 다중 리전 키의 공유 속성이 아닙니다. 다중 리전 기본 키와 해당 복제본에 동일한 태그 또는 다른 태그를 지정할 수 있습니다. AWS KMS 는 다중 리전 키의 태그를 동기화하지 않습니다. KMS 키의 태그는 언제든지 변경할 수 있습니다.
**참고**  
KMS 키에 태그를 지정하거나 해제하면 KMS 키에 대한 권한을 허용하거나 거부할 수 있습니다. 자세한 내용은 [에 대한 ABAC AWS KMS](abac.md) 및 [태그를 사용하여 KMS 키에 대한 액세스 제어](tag-authorization.md) 섹션을 참조하세요.

1. 기본 키를 관리할 수 있는 IAM 사용자 및 역할을 선택합니다.
**참고**  
이 단계는 기본 키에 대한 [키 정책](key-policies.md)을 만드는 프로세스를 시작합니다. 키 정책은 다중 리전 키의 공유 속성이 아닙니다. 다중 리전 기본 키와 해당 복제본에 동일한 키 정책 또는 다른 키 정책을 부여할 수 있습니다.는 다중 리전 키의 키 정책을 동기화하지 AWS KMS 않습니다. KMS 키의 키 정책은 언제든지 변경할 수 있습니다.
다중 리전 프라이머리 키를 생성할 때는 콘솔에서 생성된 [기본 키 정책](key-policy-default.md)을 사용하는 것이 좋습니다. 이 정책을 수정하는 경우, 콘솔은 복제 키 생성 시 키 관리자 및 사용자를 선택하는 단계를 제공하지 않으며 해당 정책 문도 추가하지 않습니다. 따라서 이러한 항목은 수동으로 추가해야 합니다.
 AWS KMS 콘솔은 문 식별자 아래의 키 정책에 키 관리자를 추가합니다`"Allow access for Key Administrators"`. 이 문 식별자를 수정하면 문에 대해 콘솔이 업데이트 내용을 표시하는 방식에 영향을 미칠 수 있습니다.

1. (선택 사항) 선택한 IAM 사용자와 역할이 페이지 하단의 **키 삭제** 섹션에서 이 KMS 키를 삭제하지 못하도록 하려면 **키 관리자가 이 키를 삭제하도록 허용(Allow key administrators to delete this key)** 확인란의 선택을 취소합니다.

1. **다음**을 선택합니다.

1. [암호화 작업](kms-cryptography.md#cryptographic-operations)에서 KMS 키를 사용할 수 있는 IAM 사용자 및 역할을 선택합니다.
**참고**  
 AWS KMS 콘솔은 문 식별자 `"Allow use of the key"` 및 아래의 키 정책에 키 사용자를 추가합니다`"Allow attachment of persistent resources"`. 이러한 문 식별자들을 수정하면 문에 대해 콘솔이 업데이트 내용을 표시하는 방식에 영향을 미칠 수 있습니다.

1. (선택 사항) 다른 사용자가 암호화 작업에이 KMS 키를 AWS 계정 사용하도록 허용할 수 있습니다. 이렇게 하려면 페이지 하단의 **기타 AWS 계정** 섹션에서 **다른 AWS 계정추가**를 선택하고 외부 계정의 AWS 계정 식별 번호를 입력합니다. 외부 계정을 여러 개 추가하려면 이 단계를 반복합니다.
**참고**  
외부 계정의 보안 주체가 KMS 키를 사용하도록 허용하려면 외부 계정 관리자가 이러한 권한을 제공하는 IAM 정책을 생성해야 합니다. 자세한 정보는 [다른 계정의 사용자가 KMS를 사용하도록 허용](key-policy-modifying-external-accounts.md) 섹션을 참조하세요.

1. **다음**을 선택합니다.

1. 키에 대한 키 정책 문을 검토합니다. 키 정책을 변경하려면 **편집**을 선택하세요.

1. **다음**을 선택합니다.

1. 선택한 키 설정을 검토합니다. 여전히 돌아가서 모든 설정을 변경할 수 있습니다.

1. **마침**을 선택하여 다중 리전 프라이머리 키를 생성하세요.

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

다중 리전 기본 키를 만들려면 [CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html) 작업을 수행합니다. 값이 `True`인 `MultiRegion` 매개변수를 사용합니다.

예를 들어 다음 명령은 호출자의 AWS 리전 (us-east-1)에 다중 리전 기본 키를 생성합니다. 키 정책을 포함하여 다른 모든 속성을 위해 기본값을 허용합니다. 다중 리전 기본 키의 기본값은 [기본 키 정책](key-policy-default.md)을 포함하여 다른 모든 KMS 키의 기본값과 동일합니다. 이 절차에서는 기본 KMS 키인 대칭 암호화 키를 생성합니다.

응답에는 복제본 키가 없는 다중 리전 기본 키에 대한 값과 일반적인 하위 요소가 있는 `MultiRegion` 요소 및 `MultiRegionConfiguration` 요소가 포함됩니다. 다중 리전 키의 [키 ID](concepts.md#key-id-key-id)는 항상 `mrk-`로 시작합니다.

**중요**  
`Description` 또는 `Tags` 필드에 기밀 또는 민감한 정보를 포함하지 마십시오. 이러한 필드는 CloudTrail 로그 및 기타 출력에 일반 텍스트로 표시될 수 있습니다.

```
$ aws kms create-key --multi-region
{
    "KeyMetadata": {
        "Origin": "AWS_KMS",
        "KeyId": "mrk-1234abcd12ab34cd56ef1234567890ab",
        "Description": "",
        "KeyManager": "CUSTOMER",
        "Enabled": true,
        "KeySpec": "SYMMETRIC_DEFAULT",
        "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT",
        "KeyUsage": "ENCRYPT_DECRYPT",
        "KeyState": "Enabled",
        "CreationDate": 1606329032.475,
        "Arn": "arn:aws:kms:us-east-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab",
        "AWSAccountId": "111122223333",
        "EncryptionAlgorithms": [
            "SYMMETRIC_DEFAULT"
        ],
        "MultiRegion": true,
        "MultiRegionConfiguration": { 
            "MultiRegionKeyType": "PRIMARY",
            "PrimaryKey": { 
                "Arn": "arn:aws:kms:us-east-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab",
                "Region": "us-east-1"
            },
            "ReplicaKeys": [ ]
      }
    }
}
```

# 다중 리전 복제본 키 생성
<a name="multi-region-keys-replicate"></a>

 AWS KMS 콘솔에서 [ReplicateKey 작업을 사용하거나 AWS::KMS::ReplicaKey 템플릿을 사용하여 다중 리전 복제본 키를](multi-region-keys-overview.md#mrk-primary-key) 생성할 수 있습니다. [ReplicateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_ReplicateKey.html) [AWS::KMS::ReplicaKey CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kms-replicakey.html) [CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html) 작업을 사용하여 복제본 키를 생성할 수 없습니다.

다음 절차를 사용하여 [대칭 암호화 KMS 키](symm-asymm-choose-key-spec.md#symmetric-cmks), [비대칭 KMS 키](symmetric-asymmetric.md) 또는 [HMAC KMS 키](hmac.md)를 포함한 다중 리전 기본 키를 복제할 수 있습니다.

이 작업이 완료되면 새 복제본 키의 임시 [키 상태](key-state.md)가 `Creating`입니다. 이 키 상태는 새로운 복제본 키 생성 프로세스가 완료되면 몇 초 후에 `Enabled`로 변경됩니다(또는 [가져온 키 구성 요소](importing-keys.md)로 다중 리전 키를 생성하는 경우 `PendingImport`로 변경). 키 상태가 `Creating`인 동안에는 키를 관리할 수 있지만 아직 암호화 작업에 사용할 수는 없습니다. 복제 키를 프로그래밍 방식으로 만들고 사용하는 경우 `KMSInvalidStateException`에서 다시 시도하거나 [DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html)를 호출하여 사용하기 전에 `KeyState` 값을 확인하십시오.

실수로 복제본 키를 삭제한 경우 이 절차를 사용하여 복제본을 다시 만들 수 있습니다. 동일한 프라이머리 키를 동일한 리전에 복제할 경우 생성하는 새 복제본 키가 원래 복제본 키와 동일한 [공유 속성](multi-region-keys-overview.md#mrk-sync-properties)을 갖습니다.

**중요**  
별칭, 설명 또는 태그에 기밀 또는 민감한 정보를 포함하지 마십시오. 이러한 필드는 CloudTrail 로그 및 기타 출력에 일반 텍스트로 표시될 수 있습니다.

 AWS CloudFormation 템플릿을 사용하여 복제본 키를 생성하려면 *AWS CloudFormation 사용 설명서*의 [AWS::KMS::ReplicaKey](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kms-replicakey.html)를 참조하세요.

## 1단계: 복제본 리전 선택
<a name="replica-region"></a>

일반적으로 비즈니스 모델 및 규제 요구 사항에 AWS 리전 따라 다중 리전 키를에 복제하도록 선택합니다. 예를 들어 리소스를 보관하는 리전에 키를 복제할 수 있습니다. 또는 재해 복구 요구 사항을 준수하기 위해 키를 지리적으로 먼 리전으로 복제할 수 있습니다.

다음은 복제본 리전에 대한 AWS KMS 요구 사항입니다. 선택한 리전이 이러한 요구 사항을 준수하지 않는 경우 키를 복제하려는 시도가 실패합니다.
+ **리전당 관련 다중 리전 키 1개** — 기본 키와 동일한 리전에서 또는 기본 키의 다른 복제본과 동일한 리전에서 복제본 키를 만들 수 없습니다.

  해당 프라이머리 키의 복제본이 이미 있는 리전에서 프라이머리 키를 복제하려고 하면 시도가 실패합니다. 리전의 현재 복제본 키가 [`PendingDeletion` 키 상태](key-state.md)인 경우 [복제본 키 삭제를 취소](deleting-keys-scheduling-key-deletion.md)하거나 복제본 키가 삭제될 때까지 기다릴 수 있습니다.
+ **동일한 리전에 있는 여러 개의 관련되지 않은 다중 리전 키** — 동일한 리전에 여러 개의 관련되지 않은 다중 리전 키를 가질 수 있습니다. 예를 들어 `us-east-1` 리전에 두 개의 다중 리전 기본 키가 있을 수 있습니다. 각 기본 키는 `us-west-2` 리전에 복제본 키를 가질 수 있습니다.
+ **동일한 파티션의 리전** — 복제본 키 리전은 기본 키 리전과 동일한 [AWS 파티션](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)에 있어야 합니다.
+ **리전을 활성화해야 함** — 지역이 [기본적으로 비활성화](https://docs.aws.amazon.com/general/latest/gr/rande-manage.html#rande-manage-enable)되어 있는 경우 AWS 계정에 대해 활성화될 때까지 해당 리전에 리소스를 생성할 수 없습니다.

## 2단계: 복제본 키 생성
<a name="create-replica-keys"></a>

**참고**  
복제 키를 생성할 때도, 복제 키를 관리하고 사용하는 IAM 사용자와 역할 선택을 신중하게 검토해야 합니다. IAM 정책은 다른 IAM 사용자 및 역할에 KMS 키 관리 권한을 제공할 수 있습니다.  
IAM 모범 사례는 장기 보안 인증 정보가 있는 IAM 사용자의 사용을 장려하지 않습니다. 가능할 경우, 임시 보안 인증 정보를 제공하는 IAM 역할을 사용하세요. 자세한 내용은 *IAM 사용 설명서*의 [IAM의 보안 모범 사례](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)를 참조하세요.

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

 AWS KMS 콘솔에서 동일한 작업으로 다중 리전 기본 키의 복제본을 하나 이상 생성할 수 있습니다.

이 절차는 콘솔에 표준 단일 리전 KMS 키를 만드는 것과 유사합니다. 그러나 복제 키는 기본 키를 기반으로 하기 때문에 키 사양(대칭 또는 비대칭), 키 사용 또는 키 오리진과 같은 [공유 속성](multi-region-keys-overview.md#mrk-sync-properties) 값을 선택하지 않습니다.

별칭, 태그, 설명 및 키 정책을 포함하여 공유되지 않는 속성을 지정합니다. 편의상 콘솔에는 기본 키의 현재 속성 값이 표시되지만 변경할 수 있습니다. 기본 키 값을 유지하더라도는 이러한 값을 동기화된 상태로 유지하지 AWS KMS 않습니다.

**중요**  
별칭, 설명 또는 태그에 기밀 또는 민감한 정보를 포함하지 마십시오. 이러한 필드는 CloudTrail 로그 및 기타 출력에 일반 텍스트로 표시될 수 있습니다.

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. 탐색 창에서 **고객 관리형 키**를 선택합니다.

1. [다중 리전 기본 키](multi-region-keys-overview.md#mrk-primary-key)의 키 ID 또는 별칭을 선택합니다. 그러면 KMS 키의 키 세부 정보 페이지가 열립니다.

   다중 리전 기본 키를 식별하려면 오른쪽 상단 모서리에 있는 도구 아이콘을 사용하여 테이블에 **리전 구분(Regionality)** 열을 추가합니다.

1. **리전 구분(Regionality)** 탭을 선택합니다.

1. **관련 다중 리전 키** 섹션에서 **새 복제본 키 생성**을 선택합니다.

   **관련 다중 리전 키**섹션에는 기본 키와 해당 복제 키의 리전이 표시됩니다. 이 표시를 사용하여 새 복제본 키의 리전을 선택할 수 있습니다.

1. 하나 이상의 AWS 리전을 선택합니다. 이 절차에서는 선택한 각 리전에 복제본 키를 만듭니다.

   메뉴에는 기본 키와 동일한 AWS 파티션의 리전만 포함됩니다. 이미 관련된 다중 리전 키가 있는 리전이 표시되지만 선택할 수는 없습니다. 메뉴의 모든 리전에 키를 복제할 권한이 없을 수 있습니다.

   리전 선택을 마치면 메뉴를 닫습니다. 선택한 리전이 표시됩니다. 리전으로의 복제를 취소하려면 리전 이름 옆에 있는 **X**를 선택합니다.

1. 복제본 키에 대한 [별칭](kms-alias.md)을 입력합니다.

   콘솔에 기본 키의 현재 별칭 중 하나가 표시되지만 변경할 수 있습니다. 다중 리전 기본 키와 해당 복제본에 동일한 별칭 또는 다른 별칭을 지정할 수 있습니다. 별칭은 다중 리전 키의 [공유 속성](multi-region-keys-overview.md#mrk-sync-properties)이 아닙니다.는 다중 리전 키의 별칭을 동기화하지 AWS KMS 않습니다.

   별칭을 추가, 삭제 또는 업데이트하면 KMS 키에 대한 권한을 허용하거나 거부할 수 있습니다. 자세한 내용은 [에 대한 ABAC AWS KMS](abac.md) 및 [별칭을 사용하여 KMS 키에 대한 액세스 제어](alias-authorization.md) 섹션을 참조하십시오.

1. (선택 사항) 복제본 키에 대한 설명을 입력합니다.

   콘솔에 기본 키의 현재 설명이 표시되지만 변경할 수 있습니다. 설명은 다중 리전 키의 공유 속성이 아닙니다. 다중 리전 기본 키와 해당 복제본에 동일한 설명 또는 다른 설명을 제공할 수 있습니다.는 다중 리전 키의 키 설명을 동기화하지 AWS KMS 않습니다.

1. (선택 사항) 태그 키와 태그 값(선택)을 입력합니다. 복제본 키에 두 개 이상의 태그를 할당하려면 **태그 추가**를 선택합니다.

   콘솔에 기본 키에 현재 연결된 태그가 표시되지만 변경할 수 있습니다. 태그는 다중 리전 키의 공유 속성이 아닙니다. 다중 리전 기본 키와 해당 복제본에 동일한 태그 또는 다른 태그를 지정할 수 있습니다.는 다중 리전 키의 태그를 동기화하지 AWS KMS 않습니다.

   KMS 키에 태그를 지정하거나 해제하면 KMS 키에 대한 권한을 허용하거나 거부할 수 있습니다. 자세한 내용은 [에 대한 ABAC AWS KMS](abac.md) 및 [태그를 사용하여 KMS 키에 대한 액세스 제어](tag-authorization.md) 섹션을 참조하세요.

1. 복제본 키를 관리할 수 있는 IAM 사용자 및 역할을 선택합니다.
**참고**  
 다중 리전 프라이머리 키를 생성할 때 프라이머리 키 정책을 수정한 경우, 콘솔은 복제 키 생성 과정에서 키 관리자 또는 키 사용자(11\$115단계)를 선택하라는 프롬프트를 표시하지 않습니다. 이 경우에는 **키 정책 편집** 단계(17단계)에서 **편집**을 선택해 키 관리자와 사용자에게 필요한 권한을 키 정책에 수동으로 추가해야 합니다.
이 단계는 복제본 키에 대한 [키 정책](key-policies.md)을 만드는 프로세스를 시작합니다. 콘솔에 기본 키의 현재 키 정책이 표시되지만 변경할 수 있습니다. 키 정책은 다중 리전 키의 공유 속성이 아닙니다. 다중 리전 기본 키와 해당 복제본에 동일한 키 정책 또는 다른 키 정책을 지정할 수 있습니다. AWS KMS 는 키 정책을 동기화하지 않습니다. 언제든지 KMS 키의 키 정책을 변경할 수 있습니다.
 AWS KMS 콘솔은 문 식별자 아래의 키 정책에 키 관리자를 추가합니다`"Allow access for Key Administrators"`. 이 문 식별자를 수정하면 문에 대해 콘솔이 업데이트 내용을 표시하는 방식에 영향을 미칠 수 있습니다.

1. (선택 사항) 선택한 IAM 사용자와 역할이 페이지 하단의 **키 삭제** 섹션에서 이 KMS 키를 삭제하지 못하도록 하려면 **키 관리자가 이 키를 삭제하도록 허용(Allow key administrators to delete this key)** 확인란의 선택을 취소합니다.

1. **다음**을 선택합니다.

1. [암호화 작업](kms-cryptography.md#cryptographic-operations)에서 KMS 키를 사용할 수 있는 IAM 사용자 및 역할을 선택합니다.
**Note**  
 AWS KMS 콘솔은 명령문 식별자 `"Allow use of the key"` 및 아래의 키 정책에 키 사용자를 추가합니다`"Allow attachment of persistent resources"`. 이러한 문 식별자들을 수정하면 문에 대해 콘솔이 업데이트 내용을 표시하는 방식에 영향을 미칠 수 있습니다.

1. (선택 사항) 다른 사용자가 암호화 작업에이 KMS 키를 AWS 계정 사용하도록 허용할 수 있습니다. 이렇게 하려면 페이지 하단의 **기타 AWS 계정** 섹션에서 **다른 AWS 계정추가**를 선택하고 외부 계정의 AWS 계정 식별 번호를 입력합니다. 외부 계정을 여러 개 추가하려면 이 단계를 반복합니다.
**참고**  
외부 계정의 보안 주체가 KMS 키를 사용하도록 허용하려면 외부 계정 관리자가 이러한 권한을 제공하는 IAM 정책을 생성해야 합니다. 자세한 정보는 [다른 계정의 사용자가 KMS를 사용하도록 허용](key-policy-modifying-external-accounts.md) 섹션을 참조하세요.

1. **다음**을 선택합니다.

1. 키에 대한 키 정책 문을 검토합니다. 키 정책을 변경하려면 **편집**을 선택하세요.

1. **다음**을 선택합니다.

1. 선택한 키 설정을 검토합니다. 여전히 돌아가서 모든 설정을 변경할 수 있습니다.

1. **마침**을 선택하여 다중 리전 복제본 키를 생성하세요.

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

다중 리전 복제본 키를 생성하려면 [ReplicateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_ReplicateKey.html) 작업을 수행합니다. [CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html) 작업을 사용하여 복제본 키를 생성할 수 없습니다. 이 작업은 복제본 키를 한 번에 하나씩 생성합니다. 지정하는 리전은 복제본 키에 대한 [리전 요구 사항](#replica-region)을 준수해야 합니다.

`ReplicateKey` 작업을 사용할 때 다중 리전 키의 [공유 속성](multi-region-keys-overview.md#mrk-sync-properties)에 대한 값을 지정하지 않습니다. 공유 속성 값은 기본 키에서 복사되고 동기화된 상태로 유지됩니다. 그러나 공유되지 않는 속성의 값을 지정할 수 있습니다. 그렇지 않으면는 기본 키의 값이 아닌 KMS 키의 표준 기본값을 AWS KMS 적용합니다.

**참고**  
`Description`, `KeyPolicy`또는 `Tags` 파라미터에 값을 지정하지 않으면는 빈 문자열 설명, [기본 키 정책 및 태그가 없는 복제본 키를](key-policy-default.md) AWS KMS 생성합니다.  
`Description` 또는 `Tags` 필드에 기밀 또는 민감한 정보를 포함하지 마십시오. 이러한 필드는 CloudTrail 로그 및 기타 출력에 일반 텍스트로 표시될 수 있습니다.

예를 들어 다음 명령은 아시아 태평양(시드니) 리전(ap-southeast-2)에 다중 리전 복제본 키를 만듭니다. 이 복제본 키는 `KeyId` 파라미터 값으로 식별되는 미국 동부(버지니아 북부) 리전(us-east-1)의 기본 키를 기반으로 모델링됩니다. 이 예에서는 키 정책을 포함하여 다른 모든 속성을 위해 기본값을 허용합니다.

응답은 새 복제 키를 설명합니다. 여기에는 공유 속성에 대한 필드(예: `KeyId`, `KeySpec`, `KeyUsage` 및 키 구성 요소 오리진(`Origin`))이 포함되어 있습니다. 여기에는 `Description`, 키 정책(`ReplicaKeyPolicy`) 및 태그(`ReplicaTags`)와 같이 기본 키와 무관한 속성도 포함됩니다.

응답에는 ap-southeast-2 리전에서 방금 생성된 키를 포함하여 기본 키의 키 ARN 및 리전 및 모든 복제본 키가 포함됩니다. 이 예에서 `ReplicaKey` 요소는 이 기본 키가 이미 유럽(아일랜드) 리전(eu-west-1)에 복제되었음을 보여줍니다.

```
$ aws kms replicate-key \
    --key-id arn:aws:kms:us-east-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab \
    --replica-region ap-southeast-2
{
    "ReplicaKeyMetadata": {
        "MultiRegion": true,
        "MultiRegionConfiguration": {
            "MultiRegionKeyType": "REPLICA",
            "PrimaryKey": {
                "Arn": "arn:aws:kms:us-east-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab",
                "Region": "us-east-1"
            },
            "ReplicaKeys": [
                {
                    "Arn": "arn:aws:kms:ap-southeast-2:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab",
                    "Region": "ap-southeast-2"
                },
                {
                    "Arn": "arn:aws:kms:eu-west-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab",
                    "Region": "eu-west-1"
                }
            ]
        },
        "AWSAccountId": "111122223333",
        "Arn": "arn:aws:kms:ap-southeast-2:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab",
        "CreationDate": 1607472987.918,
        "Description": "",
        "Enabled": true,
        "KeyId": "mrk-1234abcd12ab34cd56ef1234567890ab",
        "KeyManager": "CUSTOMER",
        "KeySpec": "SYMMETRIC_DEFAULT",
        "KeyState": "Enabled",
        "KeyUsage": "ENCRYPT_DECRYPT",
        "Origin": "AWS_KMS",
        "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT",
        "EncryptionAlgorithms": [
            "SYMMETRIC_DEFAULT"
        ]
    },
    "ReplicaKeyPolicy": "{\n  \"Version\" : \"2012-10-17\",\n  \"Id\" : \"key-default-1\",...,
    "ReplicaTags": []
}
```

# 가져온 키 구성 요소가 있는 KMS 키 생성
<a name="importing-keys-conceptual"></a>

가져온 키 구성 요소를 사용하면 생성한 암호화 키로 AWS 리소스를 보호할 수 있습니다. 다음 개요에서는 AWS KMS로 키 구성 요소를 가져오는 방법을 설명합니다. 프로세스의 각 단계에 대한 자세한 정보는 해당 주제를 참조하세요.

1. [키 구성 요소 없이 KMS 키 생성](importing-keys-create-cmk.md) - 오리진은 `EXTERNAL`이어야 합니다. 의 키 오리진은 키가 가져온 키 구성 요소를 위해 설계되었음을 `EXTERNAL` 나타내며 AWS KMS 가 KMS 키에 대한 키 구성 요소를 생성하지 못하도록 합니다. 이후 단계에 이 KMS 키로 고유한 키 구성 요소를 가져오게 됩니다.

   가져오는 키 구성 요소는 연결된 키의 AWS KMS 키 사양과 호환되어야 합니다. 호환성에 대한 자세한 내용은 [가져온 키 구성 요소에 대한 요구 사항](#importing-keys-material-requirements) 페이지를 참조하세요.

1. [래핑 퍼블릭 키 및 가져오기 토큰 다운로드](importing-keys-get-public-key-and-token.md) – 1단계를 완료한 후 래핑 퍼블릭 키와 가져오기 토큰을 다운로드합니다. 이러한 항목은 키 구성 요소를 가져오는 동안 키 구성 요소를 보호합니다 AWS KMS.

   이 단계에서는 RSA 래핑 키의 유형(‘키 사양’)과 AWS KMS로 전송되는 데이터를 암호화하는 데 사용할 래핑 알고리즘을 선택합니다. 동일한 키 구성 요소를 가져오거나 다시 가져올 때마다 다른 래핑 키 사양과 래핑 키 알고리즘을 선택할 수 있습니다.

1. [키 구성 요소 암호화](importing-keys-encrypt-key-material.md) – 2단계에서 다운로드한 래핑 퍼블릭 키를 사용하여 고유한 시스템에 생성한 키 구성 요소를 암호화합니다.

1. [키 구성 요소 가져오기](importing-keys-import-key-material.md) – 3단계에 생성하여 암호화한 키 구성 요소와 2단계에 다운로드한 가져오기 토큰을 업로드합니다.

   이 단계에서 [선택적 만료 시간을 설정](importing-keys-import-key-material.md#importing-keys-expiration)할 수 있습니다. 가져온 키 구성 요소가 만료되면 AWS KMS 삭제되고 KMS 키를 사용할 수 없게 됩니다. KMS 키를 계속 사용하려면 **동일한** 키 구성 요소를 다시 가져와야 합니다.

   가져오기 작업이 성공적으로 완료되면 KMS 키의 키 상태가 `PendingImport`에서 `Enabled`로 변경됩니다. 이제 암호화 작업에 KMS 키를 사용할 수 있습니다.

AWS KMS 는 [KMS 키를 생성하고](ct-createkey.md), [래핑 퍼블릭 키 및 가져오기 토큰을 다운로드](ct-getparametersforimport.md)하고, [키 구성 요소를 가져올](ct-importkeymaterial.md) 때 AWS CloudTrail 로그에 항목을 기록합니다. AWS KMS 또한는 가져온 키 구성 요소를 삭제하거나가 AWS KMS [만료된 키 구성 요소를 삭제할](ct-deleteexpiredkeymaterial.md) 때 항목을 기록합니다.

## 키 구성 요소 가져오기 권한
<a name="importing-keys-permissions"></a>

가져온 키 구성 요소가 있는 KMS 키를 만들고 관리하려면 사용자에게 이 프로세스의 작업에 대한 권한이 필요합니다. KMS 키를 만들 때 키 정책에서 `kms:GetParametersForImport`, `kms:ImportKeyMaterial` 및 `kms:DeleteImportedKeyMaterial` 권한을 제공할 수 있습니다. AWS KMS 콘솔에서 이러한 권한은 **외부** 키 구성 요소 오리진으로 키를 생성할 때 키 관리자에 대해 자동으로 추가됩니다.

가져온 키 구성 요소가 있는 KMS 키를 만들려면 보안 주체에 다음 권한이 필요합니다.
+ [kms:CreateKey](customer-managed-policies.md#iam-policy-example-create-key)(IAM 정책)
  + 가져온 키 구성 요소가 있는 KMS 키로 이 권한을 제한하려면 값이 `EXTERNAL`인 [kms:KeyOrigin](conditions-kms.md#conditions-kms-key-origin) 정책 조건을 사용하십시오.

    ```
    {
      "Sid": "CreateKMSKeysWithoutKeyMaterial",
      "Effect": "Allow",
      "Resource": "*",
      "Action": "kms:CreateKey",
      "Condition": {
        "StringEquals": {
          "kms:KeyOrigin": "EXTERNAL"
        }
      }
    }
    ```
+ [kms:GetParametersForImport](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetParametersForImport.html) (키 정책 또는 IAM 정책)
  + 이 권한을 특정 래핑 알고리즘 및 래핑 키 사양을 사용하는 요청으로 제한하려면 [kms:WrappingAlgorithm](conditions-kms.md#conditions-kms-wrapping-algorithm) 및 [kms:WrappingKeySpec](conditions-kms.md#conditions-kms-wrapping-key-spec) 정책 조건을 사용합니다.
+ [kms:ImportKeyMaterial](https://docs.aws.amazon.com/kms/latest/APIReference/API_ImportKeyMaterial.html)(키 정책 또는 IAM 정책)
  + 만료되는 키 구성 요소를 허용하거나 금지하고 만료 날짜를 제어하려면 [kms:ExpirationModel](conditions-kms.md#conditions-kms-expiration-model) 및 [kms:ValidTo](conditions-kms.md#conditions-kms-valid-to) 정책 조건을 사용합니다.

가져온 키 구성 요소를 다시 가져오려면 보안 주체가 [kms:GetParametersForImport](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetParametersForImport.html) 및 [kms:ImportKeyMaterial](https://docs.aws.amazon.com/kms/latest/APIReference/API_ImportKeyMaterial.html) 권한을 필요합니다.

가져온 키 구성 요소를 삭제하려면 보안 주체에게 [kms:DeleteImportedKeyMaterial](https://docs.aws.amazon.com/kms/latest/APIReference/API_DeleteImportedKeyMaterial.html) 권한이 필요합니다.

예를 들어 가져온 키 구성 요소가 있는 KMS 키의 모든 측면을 관리할 수 있는 예제 `KMSAdminRole` 권한을 부여하려면 KMS 키의 키 정책에 다음과 같은 키 정책 설명을 포함합니다.

```
{
  "Sid": "Manage KMS keys with imported key material",
  "Effect": "Allow",
  "Resource": "*",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/KMSAdminRole"
  },
  "Action": [
    "kms:GetParametersForImport",
    "kms:ImportKeyMaterial",
    "kms:DeleteImportedKeyMaterial"
  ]  
}
```

## 가져온 키 구성 요소에 대한 요구 사항
<a name="importing-keys-material-requirements"></a>

가져온 키 구성 요소는 관련 KMS 키의 [키 사양](create-keys.md#key-spec)과 호환되어야 합니다. 비대칭 키 페어의 경우 페어의 프라이빗 키만 가져옵니다.는 프라이빗 키에서 퍼블릭 키를 AWS KMS 파생합니다.

AWS KMS 는 가져온 키 구성 요소가 있는 KMS 키에 대해 다음과 같은 키 사양을 지원합니다.
+ **대칭 암호화 키**
  + **키 사양:**
    + SYMMETRIC\$1DEFAULT.
  + **요구 사항:**
    + 256비트(32바이트)의 이진 데이터.
    + 중국 리전의 경우 128비트(16바이트)의 이진 데이터여야 합니다.
+ **HMAC 키**
  + **키 사양:**
    + HMAC\$1224
    + HMAC\$1256
    + HMAC\$1384
    + HMAC\$1512
  + **요구 사항:**
    + HMAC 키 구성 요소는 [RFC 2104](https://datatracker.ietf.org/doc/html/rfc2104)를 준수해야 합니다.
    + 키 길이는 키 사양에 지정된 길이 이상이어야 합니다. 최대 키 길이는 1024비트입니다.
    + 키 구성 요소가 1024비트를 초과하는 경우, 키 구성 요소를 해시해 해시 출력값을 가져올 수 있습니다. 해싱 알고리즘은 생성하려는 HMAC KMS 키의 키 사양과 일치해야 합니다.
  + **예:**
    + 2048비트 키 구성 요소를 HMAC\$1256 키에 가져오려면 먼저 2048비트 키 구성 요소의 SHA-256 해시를 컴퓨팅한 뒤 해당 256비트 해시 출력값을 KMS 키로 가져오세요.
  + **유효한 키 길이:**
    + HMAC\$1224: 224\$11024비트
    + HMAC\$1256: 256\$11024비트
    + HMAC\$1384: 384\$11024비트
    + HMAC\$1512: 512\$11024비트
+ **RSA 비대칭 프라이빗 키**
  + **키 사양:**
    + RSA\$12048
    + RSA\$13072
    + RSA\$14096
  + **요구 사항:**
    + 가져오는 RSA 비대칭 프라이빗 키는 [RFC 3447](https://datatracker.ietf.org/doc/html/rfc3447/)을 준수하는 키 쌍의 일부여야 합니다.
    + **모듈러스**: 2048비트, 3072비트 또는 4096비트
    + **프라임 수**: 2(다중 프라임 RSA 키는 지원되지 않음)
    + 비대칭 키 구성 요소는 [RFC 5208](https://datatracker.ietf.org/doc/html/rfc5208)을 준수하는 퍼블릭 키 암호화 표준(PKCS) \$18 형식으로 BER 인코딩 또는 DER 인코딩이어야 합니다.
+ **타원 곡선 비대칭 프라이빗 키**
  + **키 사양:**
    + ECC\$1NIST\$1P256(secp256r1)
    + ECC\$1NIST\$1P384(secp384r1)
    + ECC\$1NIST\$1P521(secp521r1)
    + ECC\$1SECG\$1P256K1(secp256k1)
    + ECC\$1NIST\$1EDWARDS25519(ed25519)
  + **요구 사항:**
    + 가져오는 ECC 비대칭 프라이빗 키는 [RFC 5915](https://datatracker.ietf.org/doc/html/rfc5915/)을 준수하는 키 쌍의 일부여야 합니다.
    + **곡선:** NIST P-256, NIST P-384, NIST P-521, Secp256k1, NIST Ed25519.
    + **파라미터:** 명명된 곡선만(명시적 파라미터가 있는 ECC 키는 거부됨).
    + **퍼블릭 포인트 좌표:** 압축, 비압축 또는 투영형일 수 있음.
    + 비대칭 키 구성 요소는 [RFC 5208](https://datatracker.ietf.org/doc/html/rfc5208)을 준수하는 퍼블릭 키 암호화 표준(PKCS) \$18 형식으로 BER 인코딩 또는 DER 인코딩이어야 합니다.
+ **ML-DSA 키**
  + **키 사양:**
    + ML\$1DSA\$144
    + ML\$1DSA\$165
    + ML\$1DSA\$187
**중요**  
ML-DSA 키 가져오기는 지원되지 않습니다.
+ **SM2 비대칭 프라이빗 키**(중국 리전만 해당)
  + **요구 사항:**
    + 가져오는 SM2 비대칭 프라이빗 키는 GM/T 0003을 준수하는 키 페어의 일부여야 합니다.
    + **곡선:** SM2.
    + **파라미터:** 명명된 곡선만(명시적 파라미터가 있는 SM2 키는 거부됨).
    + **퍼블릭 포인트 좌표:** 압축, 비압축 또는 투영형일 수 있음.
    + 비대칭 키 구성 요소는 [RFC 5208](https://datatracker.ietf.org/doc/html/rfc5208)을 준수하는 퍼블릭 키 암호화 표준(PKCS) \$18 형식으로 BER 인코딩 또는 DER 인코딩이어야 합니다.

# 1단계: 키 구성 요소 AWS KMS key 없이 생성
<a name="importing-keys-create-cmk"></a>

기본적으로는 KMS 키를 AWS KMS 생성할 때 키 구성 요소를 생성합니다. 고유한 키 구성 요소를 대신 가져오려면, 키 구성 요소 없이 KMS 키를 만드는 것으로 시작합니다. 그런 다음 키 구성 요소를 가져옵니다. 키 구성 요소 없이 KMS 키를 생성하려면 AWS KMS 콘솔 또는 [CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html) 작업을 사용합니다.

키 구성 요소 없이 키를 만들려면 `EXTERNAL`의 [오리진](create-keys.md#key-origin)을 지정하세요. KMS 키의 오리진 속성은 변경할 수 없습니다. 키 구성 요소를 생성한 후에는 가져온 키 구성 요소용으로 설계된 KMS 키를 AWS KMS 또는 다른 소스의 키 구성 요소가 있는 KMS 키로 변환할 수 없습니다.

오리진이 `EXTERNAL`이고 키 구성 요소가 없는 KMS 키의 [키 상태](key-state.md)는 `PendingImport`입니다. KMS 키는 `PendingImport` 상태로 무기한 유지될 수 있습니다. 하지만 암호화 작업에서는 `PendingImport` 상태의 KMS 키를 사용할 수 없습니다. 키 구성 요소를 가져올 때 KMS 키의 키 상태는 `Enabled` 상태로 변경되고 암호화 작업에 KMS 키를 사용할 수 있습니다.

AWS KMS 는 [KMS 키를 생성하고](ct-createkey.md), [퍼블릭 키와 가져오기 토큰을 다운로드](ct-getparametersforimport.md)하고, [키 구성 요소를 가져올](ct-importkeymaterial.md) 때 AWS CloudTrail 로그에 이벤트를 기록합니다. AWS KMS 는 [가져온 키 구성 요소를 삭제하거나가 만료된 키 구성 요소를](ct-deleteimportedkeymaterial.md) AWS KMS [삭제할](ct-deleteexpiredkeymaterial.md) 때 CloudTrail 이벤트도 기록합니다.

**Topics**
+ [키 구성 요소 없이 KMS 키 생성(콘솔)](#importing-keys-create-cmk-console)
+ [키 구성 요소 없이 KMS 키 생성(AWS KMS API)](#importing-keys-create-cmk-api)

## 키 구성 요소 없이 KMS 키 생성(콘솔)
<a name="importing-keys-create-cmk-console"></a>

가져온 키 구성 요소에 대한 KMS 키는 한 번만 생성하면 됩니다. 필요한 만큼 자주 동일한 키 구성 요소를 기존 KMS로 가져오고 다시 가져올 수 있지만, 다른 키 구성 요소를 KMS 키로 가져올 수는 없습니다. 자세한 내용은 [2단계: 래핑 퍼블릭 키 및 가져오기 토큰 다운로드](importing-keys-get-public-key-and-token.md)을 참조하세요.

**고객 관리형 키(Customer managed keys)** 테이블에서 가져온 키 구성 요소가 있는 기존 KMS 키를 찾기 위해서는 오른쪽 상단 모서리에 있는 톱니바퀴 아이콘을 사용하여 KMS 키 목록에 **오리진(Origin)** 열을 표시합니다. 가져온 키의 **오리진** 값은 **외부(키 구성 요소 가져오기)**입니다.

가져온 키 구성 요소가 있는 KMS 키를 생성하려면 먼저 [원하는 키 유형의 KMS 키를 생성하는 지침](create-keys.md)을 따르세요. 단, 다음과 같은 경우는 예외입니다.

키 사용을 선택한 후 다음을 수행합니다.

1. **고급 옵션**을 확장합니다.

1. **키 구성 요소 오리진(Key material origin)**에서 **키 구성 요소 가져오기(Import key material)**를 선택합니다.

1. **I understand the security and durability implications of using an imported key** (가져온 키 사용의 보안 및 내구성 영향을 이해합니다) 옆 확인란을 선택하여, 가져온 키 구성 요소를 사용하는 것의 의미를 이해했음을 표시합니다. 이러한 의미에 대한 자세한 내용은 [가져온 키 구성 요소 보호](import-keys-protect.md) 섹션을 참조하세요.

1. 선택 사항: 가져온 키 구성 요소로 [다중 리전 KMS 키](multi-region-keys-overview.md)를 생성하려면 **리전 특성**에서 **다중 리전 키**를 선택합니다.

1. 기본 지침으로 돌아갑니다. 기본 절차의 나머지 단계는 해당 유형의 모든 KMS 키에 대해 동일합니다.

**마침**을 선택하면 키 구성 요소가 없고 상태([키 상태](key-state.md))가 **가져오기 보류 중**인 KMS 키가 생성됩니다.

하지만 콘솔에는 **고객 관리형 키** 테이블로 돌아가는 대신 키 구성 요소를 가져오는 데 필요한 퍼블릭 키와 가져오기 토큰을 다운로드할 수 있는 페이지가 표시됩니다. 지금 다운로드 단계를 계속하거나 **취소**를 선택하여 이 시점에서 중단할 수 있습니다. 언제든지 이 다운로드 단계로 돌아갈 수 있습니다.

다음: [2단계: 래핑 퍼블릭 키 및 가져오기 토큰 다운로드](importing-keys-get-public-key-and-token.md).

## 키 구성 요소 없이 KMS 키 생성(AWS KMS API)
<a name="importing-keys-create-cmk-api"></a>

[AWS KMS API](https://docs.aws.amazon.com/kms/latest/APIReference/)를 사용하여 키 구성 요소가 없는 대칭 암호화 KMS 키를 생성하려면 `Origin` 파라미터가 `EXTERNAL`로 설정된 상태에서 [CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html) 요청을 보냅니다. 다음 예에서는 [AWS Command Line Interface (AWS CLI)](https://aws.amazon.com/cli/)에서 이 작업을 수행하는 방법을 보여줍니다.

```
$ aws kms create-key --origin EXTERNAL
```

명령이 제대로 실행되면 다음과 비슷한 출력이 표시됩니다. AWS KMS 키는 `Origin` `EXTERNAL`이고 키는 `KeyState`입니다`PendingImport`.

**작은 정보**  
명령이 실패하면 `KMSInvalidStateException` 또는 `NotFoundException`이 표시될 수 있습니다. 요청을 재시도할 수 있습니다.

```
{
    "KeyMetadata": {
        "Origin": "EXTERNAL",
        "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab",
        "Description": "",
        "Enabled": false,
        "MultiRegion": false,
        "KeyUsage": "ENCRYPT_DECRYPT",
        "KeyState": "PendingImport",
        "CreationDate": 1568289600.0,
        "Arn": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
        "AWSAccountId": "111122223333",
        "KeyManager": "CUSTOMER",
        "KeySpec": "SYMMETRIC_DEFAULT",
        "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT",
        "EncryptionAlgorithms": [
            "SYMMETRIC_DEFAULT"
        ]
    }
}
```

이후 단계에 사용할 명령 출력에서 `KeyId` 값을 복사한 후 [2단계: 래핑 퍼블릭 키 및 가져오기 토큰 다운로드](importing-keys-get-public-key-and-token.md)으로 넘어갑니다.

**참고**  
이 명령은 `SYMMETRIC_DEFAULT`의 `KeySpec`과 `ENCRYPT_DECRYPT`의 `KeyUsage`를 사용하여 대칭 암호화 KMS 키를 생성합니다. 선택적 파라미터 `--key-spec` 및 `--key-usage`를 사용하여 비대칭 또는 HMAC KMS 키를 생성할 수 있습니다. 자세한 내용은 [CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html) API 작업을 참조하세요.

# 2단계: 래핑 퍼블릭 키 및 가져오기 토큰 다운로드
<a name="importing-keys-get-public-key-and-token"></a>

[키 구성 요소 없이 AWS KMS key 를 생성한](importing-keys-create-cmk.md) 후 AWS KMS 콘솔 또는 [GetParametersForImport](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetParametersForImport.html) API를 사용하여 래핑 퍼블릭 키와 해당 KMS 키에 대한 가져오기 토큰을 다운로드합니다. 래핑 퍼블릭 키와 가져오기 토큰은 분리할 수 없는 세트이므로 함께 사용해야 합니다.

래핑 퍼블릭 키를 사용하여 전송용 [키 구성 요소를 암호화](importing-keys-encrypt-key-material.md)합니다. RSA 래핑 키 페어를 다운로드하기 전에 [3단계](importing-keys-encrypt-key-material.md)에서 전송을 위해 가져온 키 구성 요소를 암호화하는 데 사용할 RSA 래핑 키 페어의 길이(키 사양)와 래핑 알고리즘을 선택합니다.는 SM2 래핑 키 사양(중국 리전만 해당) AWS KMS 도 지원합니다.

각 래핑 퍼블릭 키와 가져오기 토큰 세트는 24시간 동안 유효합니다. 다운로드한 후 24시간 내에 이를 이용해 키 구성 요소를 가져오지 않을 경우, 새로운 세트를 다운로드해야 합니다. 언제든지 새로운 래핑 퍼블릭 키를 다운로드하고 토큰 세트를 가져올 수 있습니다. 이를 통해 RSA 래핑 키 길이(‘키 사양’)를 변경하거나 손실된 세트를 교체할 수 있습니다.

래핑 퍼블릭 키와 가져오기 토큰 세트를 다운로드하여 [동일한 키 구성 요소를 KMS 키로 다시 가져올](importing-keys-import-key-material.md#reimport-key-material) 수도 있습니다. 이 방법으로 키 구성 요소의 만료 시간을 설정 또는 변경하거나, 만료되었거나 삭제된 키 구성 요소를 복원할 수 있습니다. 키 구성 요소를 가져올 때마다 키 구성 요소를 다운로드하고 다시 암호화해야 합니다 AWS KMS.

**래핑 퍼블릭 키 사용**  
다운로드에는 래핑 퍼블릭 키라고도 하는 AWS 계정에 고유한 *퍼블릭 키*가 포함됩니다.  
키 구성 요소를 가져오기 전에 퍼블릭 래핑 키로 키 구성 요소를 암호화한 다음 암호화된 키 구성 요소를에 업로드합니다 AWS KMS. 가 암호화된 키 구성 요소를 AWS KMS 수신하면 해당 프라이빗 키로 키 구성 요소를 복호화한 다음 AWS KMS 하드웨어 보안 모듈(HSM) 내에서 AES 대칭 키로 키 구성 요소를 다시 암호화합니다.

**가져오기 토큰 사용**  
다운로드에는 키 구성 요소를 올바르게 가져올 수 있도록 하는 메타데이터가 포함된 가져오기 토큰이 포함되어 있습니다. 암호화된 키 구성 요소를에 업로드 AWS KMS할 때는이 단계에서 다운로드한 것과 동일한 가져오기 토큰을 업로드해야 합니다.

## 래핑 퍼블릭 키 사양 선택
<a name="select-wrapping-key-spec"></a>

가져오기 중에 키 구성 요소를 보호하려면 다운로드한 래핑 퍼블릭 키 AWS KMS와 지원되는 [래핑 알고리즘](#select-wrapping-algorithm)을 사용하여 키 구성 요소를 암호화합니다. 래핑 퍼블릭 키와 가져오기 토큰을 다운로드하기 전에 키 사양을 선택합니다. 모든 래핑 키 페어는 AWS KMS 하드웨어 보안 모듈(HSMs)에서 생성됩니다. 프라이빗 키는 절대 일반 텍스트로 HSM을 벗어나지 않습니다.

**RSA 래핑 키 사양**  
래핑 퍼블릭 키의 *키 사양*에 따라 AWS KMS로 전송되는 동안 키 구성 요소를 보호하는 RSA 키 쌍의 키 길이가 결정됩니다. 일반적으로, 실용적이고 가장 긴 래핑 퍼블릭 키를 사용하는 것이 좋습니다. 다양한 HSM 및 키 관리자를 지원하기 위해 여러 가지 래핑 퍼블릭 키 사양을 제공하고 있습니다.  
AWS KMS 는 명시된 경우를 제외하고 모든 유형의 키 구성 요소를 가져오는 데 사용되는 RSA 래핑 키에 대해 다음 키 사양을 지원합니다.  
+ RSA\$14096(권장)
+ RSA\$13072
+ RSA\$12048
**참고**  
ECC\$1NIST\$1P521 키 구성 요소, RSA\$12048 퍼블릭 래핑 키 사양, RSAES\$1OAEP\$1SHA\$1\$1 래핑 알고리즘과 같은 조합은 지원되지 않습니다.  
ECC\$1NIST\$1P521 키 구성 요소를 RSA\$12048 퍼블릭 래핑 키로 직접 래핑할 수는 없습니다. 더 큰 래핑 키나 RSA\$1AES\$1KEY\$1WRAP\$1SHA\$1\$1 래핑 알고리즘을 사용하세요.

**SM2 래핑 키 사양(중국 리전만 해당)**  
AWS KMS 는 비대칭 키 구성 요소를 가져오는 데 사용되는 SM2 래핑 키에 대해 다음 키 사양을 지원합니다.  
+ SM2

## 래핑 알고리즘 선택
<a name="select-wrapping-algorithm"></a>

가져오는 동안 키 구성 요소를 보호하려면 다운로드한 래핑 퍼블릭 키와 지원되는 래핑 알고리즘을 사용하여 암호화합니다.

AWS KMS 는 여러 표준 RSA 래핑 알고리즘과 2단계 하이브리드 래핑 알고리즘을 지원합니다. 일반적으로, 가져온 키 구성 요소 및 [래핑 키 사양](#select-wrapping-key-spec)과 호환되는 가장 안전한 래핑 알고리즘을 사용하는 것이 좋습니다. 일반적으로 키 구성 요소를 보호하는 하드웨어 보안 모듈(HSM) 또는 키 관리 시스템에서 지원되는 알고리즘을 선택합니다.

다음 테이블에는 각 유형의 키 구성 요소 및 KMS 키에 지원되는 래핑 알고리즘이 나와 있습니다. 알고리즘은 기본 설정 순서대로 나열됩니다.


| 키 구성 요소 | 지원되는 래핑 알고리즘 및 사양 | 
| --- | --- | 
| 대칭 암호화 키 256비트 AES 키   128비트 SM4 키(중국 리전 전용) |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/kms/latest/developerguide/importing-keys-get-public-key-and-token.html)  | 
| 비대칭 RSA 프라이빗 키  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/kms/latest/developerguide/importing-keys-get-public-key-and-token.html)  | 
| 비대칭 타원 곡선(ECC) 프라이빗 키   RSA\$12048 래핑 키 사양과 함께 RSAES\$1OAEP\$1SHA\$1\$1 래핑 알고리즘을 사용하여 ECC\$1NIST\$1P521 키 구성 요소를 래핑할 수 없습니다. |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/kms/latest/developerguide/importing-keys-get-public-key-and-token.html)  | 
| 비대칭 SM2 프라이빗 키(중국 리전만 해당) |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/kms/latest/developerguide/importing-keys-get-public-key-and-token.html)  | 
| HMAC 키 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/kms/latest/developerguide/importing-keys-get-public-key-and-token.html)  | 

**참고**  
`RSA_AES_KEY_WRAP_SHA_256` 및 `RSA_AES_KEY_WRAP_SHA_1` 래핑 알고리즘은 중국 리전에서는 지원되지 않습니다.
+ `RSA_AES_KEY_WRAP_SHA_256` -생성한 AES 대칭 키로 키 구성 요소를 암호화한 다음 다운로드한 RSA 퍼블릭 래핑 키와 RSAES\$1OAEP\$1SHA\$1256 래핑 알고리즘을 사용하여 AES 대칭 키를 암호화하는 2단계 하이브리드 래핑 알고리즘입니다.

  `SM2PKE` 래핑 알고리즘을 사용해야 하는 중국 리전을 제외하고 RSA 프라이빗 키 구성 요소를 래핑하기 위해서는 `RSA_AES_KEY_WRAP_SHA_*` 래핑 알고리즘이 필요합니다.
+ `RSA_AES_KEY_WRAP_SHA_1` -생성한 AES 대칭 키로 키 구성 요소를 암호화한 다음 다운로드한 RSA 래핑 퍼블릭 키와 RSAES\$1OAEP\$1SHA\$11 래핑 알고리즘을 사용하여 AES 대칭 키를 암호화하는 2단계 하이브리드 래핑 알고리즘입니다.

  `SM2PKE` 래핑 알고리즘을 사용해야 하는 중국 리전을 제외하고 RSA 프라이빗 키 구성 요소를 래핑하기 위해서는 `RSA_AES_KEY_WRAP_SHA_*` 래핑 알고리즘이 필요합니다.
+ `RSAES_OAEP_SHA_256` – SHA-256 해시 기능이 있는 OAEP(Optimal Asymmetric Encryption Padding)를 사용한 RSA 암호화 알고리즘입니다.
+ `RSAES_OAEP_SHA_1` – SHA-1 해시 기능이 있는 OAEP(Optimal Asymmetric Encryption Padding)를 사용한 RSA 암호화 알고리즘입니다.
+ `RSAES_PKCS1_V1_5` (사용되지 않음, 2023년 10월 10일부터 RSAES\$1PKCS1\$1V1\$15 래핑 알고리즘을 지원하지 AWS KMS 않음) - PKCS \$11 버전 1.5에 정의된 패딩 형식의 RSA 암호화 알고리즘입니다.
+ `SM2PKE`(중국 리전만 해당) – OSCCA가 GM/T 0003.4-2012에서 정의한 타원형 곡선 기반 암호화 알고리즘입니다.

**Topics**
+ [래핑 퍼블릭 키 사양 선택](#select-wrapping-key-spec)
+ [래핑 알고리즘 선택](#select-wrapping-algorithm)
+ [래핑 퍼블릭 키 및 가져오기 토큰 다운로드(콘솔)](#importing-keys-get-public-key-and-token-console)
+ [래핑 퍼블릭 키 및 가져오기 토큰 다운로드(AWS KMS API)](#importing-keys-get-public-key-and-token-api)

## 래핑 퍼블릭 키 및 가져오기 토큰 다운로드(콘솔)
<a name="importing-keys-get-public-key-and-token-console"></a>

 AWS KMS 콘솔을 사용하여 래핑 퍼블릭 키와 가져오기 토큰을 다운로드할 수 있습니다.

1. 방금 [키 구성 요소 없이 KMS 키를 생성](importing-keys-create-cmk.md#importing-keys-create-cmk-console)하기 위한 절차를 마쳤고 현재 **Download wrapping key and import token(래핑 키 및 가져오기 키 다운로드)** 페이지에 있다면 [Step 10](#id-wrap-step)으로 넘어갑니다.

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. 탐색 창에서 **고객 관리형 키**를 선택합니다.
**작은 정보**  
키 구성 요소는 **오리진**이 **외부(키 구성 요소 가져오기)**인 KMS 키로만 가져올 수 있습니다. 이는 키 구성 요소 없이 KMS 키가 생성되었음을 나타냅니다. 테이블에 **Origin(오리진)** 열을 추가하려면 페이지의 오른쪽 상단 모서리에서 설정 아이콘(![\[Gear or cog icon representing settings or configuration options.\]](http://docs.aws.amazon.com/ko_kr/kms/latest/developerguide/images/console-icon-settings-new.png))을 선택합니다. **Origin(오리진)**을 활성화한 다음, **확인**을 선택합니다.

1. 가져오기가 보류 중인 KMS 키의 별칭 또는 키 ID를 선택합니다.

1. **암호화 구성(Cryptographic configuration)** 탭을 선택하고 해당 값을 봅니다. **일반 구성** 섹션 아래에 탭이 있습니다.

   키 구성 요소는 **오리진**이 **외부(키 구성 요소 가져오기)**인 KMS 키로만 가져올 수 있습니다. 가져온 키 구성 요소가 있는 KMS 키를 생성하는 방법은 [키의 AWS KMS 키 구성 요소 가져오기](importing-keys.md) 섹션을 참조하십시오.

1. 키 유형에 따라 적절한 탭을 선택합니다.
   + 비대칭 키와 HMAC 키의 경우 **키 구성** 요소 탭을 선택합니다.
   + 대칭 암호화 키의 경우 **키 구성 요소 및 교체** 탭을 선택합니다.

1. 가져오기 작업을 선택합니다.
   + 비대칭 및 HMAC 키의 경우 **키 구성 요소 가져오기**를 선택합니다.
   + 대칭 암호화 키에서 다음 중 하나를 선택합니다.
     + **초기 키 구성 요소 가져오기**(키 구성 요소를 아직 가져오지 않은 경우)
     + **새 키 구성 요소 가져오기**(교체할 새 구성 요소 추가)
     + **키 구성 요소 다시 가져오기**(키 구성 요소 테이블의 **작업** 메뉴에서 사용 가능)
**참고**  
다중 리전 키의 경우 먼저 새 키 구성 요소를 기본 리전 키로 가져와야 합니다. 그런 다음 동일한 키 구성 요소를 각 복제본 리전 키로 가져옵니다.  
기본 다중 리전 키의 경우 **키 자료** 테이블에는 모든 **복제본 리전의 가져오기 상태를 표시하는 복제본 가져오기 상태** 열이 포함되어 있습니다(예: "가져온 3개 중 0개"). 복제본 가져오기 상태 값을 선택하여 각 복제본 리전의 가져오기 상태를 보여주는 모달을 엽니다. 모달은 새 **키 구성 요소를 가져오**지 않은 복제본 리전에 대한 키 구성 요소 가져오기 링크를 제공합니다.

1. **래핑 키 사양 선택**에서 KMS 키의 구성을 선택합니다. 이 키를 생성한 후에는 키 사양을 변경할 수 없습니다.

1. <a name="id-wrap-step"></a>[**Select wrapping algorithm**]에서 키 구성 요소 암호화에 사용할 옵션을 선택합니다. 옵션에 대한 자세한 내용은 [래핑 알고리즘 선택](#select-wrapping-algorithm)을 참조하십시오.

1. **래핑 퍼블릭 키 및 가져오기 토큰 다운로드**를 선택한 후 파일을 저장합니다.

   **다음** 옵션이 있는 경우 지금 프로세스를 계속하려면 **다음**을 선택합니다. 나중에 계속하려면 **취소**를 선택합니다.

1. 앞 단계에 저장한 `.zip` 파일(`Import_Parameters_<key_id>_<timestamp>`)의 압축을 해제합니다.

   폴더에는 다음 파일이 포함되어 있습니다.
   + `WrappingPublicKey.bin`이라는 이름의 파일에 있는 래핑 퍼블릭 키
   + `ImportToken.bin`이라는 이름의 파일에 있는 가져오기 토큰입니다.
   + README.txt라는 이름의 텍스트 파일입니다. 이 파일에는 래핑 퍼블릭 키, 키 구성 요소를 암호화하는 데 사용할 래핑 알고리즘, 래핑 퍼블릭 키와 가져오기 토큰이 만료되는 날짜와 시간에 대한 정보가 포함되어 있습니다.

1. 프로세스를 계속하려면 [키 구성 요소를 암호화](importing-keys-encrypt-key-material.md)를 참조하십시오.

## 래핑 퍼블릭 키 및 가져오기 토큰 다운로드(AWS KMS API)
<a name="importing-keys-get-public-key-and-token-api"></a>

[GetParametersForImport](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetParametersForImport.html) API를 이용해 퍼블릭 키와 가져오기 토큰을 다운로드할 수 있습니다. 가져온 키 구성 요소와 연결될 KMS 키를 지정합니다. 이 KMS 키에는 `EXTERNAL`의 [오리진](create-keys.md#key-origin) 값이 있어야 합니다.

**참고**  
ML-DSA KMS 키에는 키 구성 요소를 가져올 수 없습니다.

이 예시에서는 `RSA_AES_KEY_WRAP_SHA_256` 래핑 알고리즘, RSA\$13072 래핑 퍼블릭 키 사양, 예시 키 ID를 지정합니다. 이러한 예시 값을 다운로드에 사용할 수 있는 유효한 값으로 바꾸세요. 키 ID의 경우, 이 작업에 [키 ID](concepts.md#key-id-key-id)나 [키 ARN](concepts.md#key-id-key-ARN)을 사용할 수 있지만 [별칭 이름](concepts.md#key-id-alias-name)이나 [별칭 ARN](concepts.md#key-id-alias-ARN)은 사용할 수 없습니다.

```
$ aws kms get-parameters-for-import \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
    --wrapping-algorithm RSA_AES_KEY_WRAP_SHA_256 \
    --wrapping-key-spec RSA_3072
```

명령이 제대로 실행되면 다음과 비슷한 출력이 표시됩니다.

```
{
    "ParametersValidTo": 1568290320.0,
    "PublicKey": "public key (base64 encoded)",
    "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
    "ImportToken": "import token (base64 encoded)"
}
```

다음 단계를 위한 데이터를 준비하려면 퍼블릭 키와 가져오기 토큰을 base64로 디코딩하고 디코딩된 값을 파일에 저장합니다.

퍼블릭 키 및 가져오기 토큰을 base64로 디코딩하려면

1. base64로 인코딩된 퍼블릭 키(예제 출력에 *퍼블릭 키(base64로 인코딩됨)*로 표시됨)를 복사하여 새 파일에 붙여넣은 후 파일을 저장합니다. `PublicKey.b64`와 같은 파일을 설명하는 이름을 지정합니다.

1. [OpenSSL](https://openssl.org/)을 이용해 파일의 콘텐츠를 base64로 디코딩하고 디코딩된 데이터를 새 파일에 저장합니다. 다음 예제는 앞의 단계에서 저장한 파일(`PublicKey.b64`)의 데이터를 디코딩하고 출력을 `WrappingPublicKey.bin`이라는 새 파일에 저장합니다.

   ```
   $ openssl enc -d -base64 -A -in PublicKey.b64 -out WrappingPublicKey.bin
   ```

1. base64로 인코딩된 가져오기 토큰(예제 출력에 *가져오기 토큰(base64로 인코딩됨)*로 표시됨)을 복사하여 새 파일에 붙여넣은 후 파일을 저장합니다. `importtoken.b64`처럼 파일을 설명하는 이름을 지정합니다.

1. [OpenSSL](https://openssl.org/)을 이용해 파일의 콘텐츠를 base64로 디코딩하고 디코딩된 데이터를 새 파일에 저장합니다. 다음 예제는 앞의 단계에서 저장한 파일(`ImportToken.b64`)의 데이터를 디코딩하고 출력을 `ImportToken.bin`이라는 새 파일에 저장합니다.

   ```
   $ openssl enc -d -base64 -A -in importtoken.b64 -out ImportToken.bin
   ```

[3단계: 키 구성 요소 암호화](importing-keys-encrypt-key-material.md)로 이동합니다.

# 3단계: 키 구성 요소 암호화
<a name="importing-keys-encrypt-key-material"></a>

[퍼블릭 키 및 가져오기 토큰을 다운로드한](importing-keys-get-public-key-and-token.md) 후에는 다운로드한 퍼블릭 키와 지정한 래핑 알고리즘을 사용하여 키 구성 요소를 암호화합니다. 퍼블릭 키 또는 가져오기 토큰을 교체해야 하거나 래핑 알고리즘을 변경해야 하는 경우 새 퍼블릭 키와 가져오기 토큰을 다운로드해야 합니다. 에서 AWS KMS 지원하는 퍼블릭 키 및 래핑 알고리즘에 대한 자세한 내용은 [래핑 퍼블릭 키 사양 선택](importing-keys-get-public-key-and-token.md#select-wrapping-key-spec) 및 섹션을 참조하세요[래핑 알고리즘 선택](importing-keys-get-public-key-and-token.md#select-wrapping-algorithm).

키 구성 요소는 이진 형식이어야 합니다. 자세한 내용은 [가져온 키 구성 요소에 대한 요구 사항](importing-keys-conceptual.md#importing-keys-material-requirements)섹션을 참조하세요.

**참고**  
비대칭 키 페어의 경우 프라이빗 키만 암호화하고 가져옵니다.는 프라이빗 키에서 퍼블릭 키를 AWS KMS 파생합니다.  
ECC\$1NIST\$1P521 키 구성 요소, RSA\$12048 퍼블릭 래핑 키 사양, RSAES\$1OAEP\$1SHA\$1\$1 래핑 알고리즘과 같은 조합은 지원되지 않습니다.  
ECC\$1NIST\$1P521 키 구성 요소를 RSA\$12048 퍼블릭 래핑 키로 직접 래핑할 수는 없습니다. 더 큰 래핑 키나 RSA\$1AES\$1KEY\$1WRAP\$1SHA\$1\$1 래핑 알고리즘을 사용하세요.  
RSA\$1AES\$1KEY\$1WRAP\$1SHA\$1256 및 RSA\$1AES\$1KEY\$1WRAP\$1SHA\$11 래핑 알고리즘은 중국 리전에서 지원되지 않습니다.

일반적으로 하드웨어 보안 모듈(HSM)이나 키 관리 시스템에서 내보낼 때 키 구성 요소를 암호화합니다. 이진 형식으로 키 구성 요소를 내보내는 방법은 HSM 또는 키 관리 시스템에 대한 문서를 참조하십시오. OpenSSL을 이용해 개념 증명 데모를 제공하는 다음 섹션을 참조할 수도 있습니다.

키 구성 요소를 암호화하는 경우 [퍼블릭 키와 가져오기 토큰을 다운로드](importing-keys-get-public-key-and-token.md)할 때 지정한 동일한 래핑 알고리즘을 사용합니다. 지정한 래핑 알고리즘을 찾으려면 관련 [GetParametersForImport](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetParametersForImport.html) 요청에 대한 CloudTrail 로그 이벤트를 참조하세요.

## 테스트용 키 구성 요소 생성
<a name="importing-keys-example-key-material"></a>

다음 OpenSSL 명령은 테스트를 위해 지원되는 각 유형의 키 구성 요소를 생성합니다. 이러한 예시는 테스트 및 개념 증명 데모용으로만 제공됩니다. 프로덕션 시스템의 경우 보안이 보안 모듈이나 키 관리 시스템과 같은 보다 안전한 방법을 사용하여 키 구성 요소를 생성합니다.

비대칭 키 쌍의 프라이빗 키를 DER로 인코딩된 형식으로 변환하려면 키 구성 요소 생성 명령을 다음 `openssl pkcs8` 명령으로 파이프합니다. `topk8` 파라미터는 OpenSSL이 프라이빗 키를 입력으로 받아 PKCS\$18 형식의 키를 반환하도록 지시합니다. (기본 동작은 반대입니다.) 

```
openssl pkcs8 -topk8 -outform der -nocrypt
```

다음 명령은 지원되는 각 유형에 대한 테스트 키 구성 요소를 생성합니다.
+ 대칭 암호화 키(32바이트)

  이 명령은 256비트 대칭 키(32바이트 임의 문자열)를 생성하여 `PlaintextKeyMaterial.bin` 파일에 저장합니다. 이 키 구성 요소를 인코딩할 필요는 없습니다.

  ```
  openssl rand -out PlaintextKeyMaterial.bin 32
  ```

  중국 리전에서만 128비트 대칭 키(16바이트 임의 문자열)를 생성해야 합니다.

  ```
  openssl rand -out PlaintextKeyMaterial.bin 16
  ```
+ HMAC 키

  이 명령은 지정된 크기의 임의 바이트 문자열을 생성합니다. 이 키 구성 요소를 인코딩할 필요는 없습니다.

  HMAC 키의 길이는 KMS 키의 키 사양에 정의된 길이와 일치해야 합니다. 예를 들어 KMS 키가 HMAC\$1384인 경우 384비트(48바이트) 키를 가져와야 합니다.

  ```
  openssl rand -out HMAC_224_PlaintextKey.bin 28
  
  openssl rand -out HMAC_256_PlaintextKey.bin 32
  
  openssl rand -out HMAC_384_PlaintextKey.bin 48
  
  openssl rand -out HMAC_512_PlaintextKey.bin 64
  ```
+ RSA 프라이빗 키

  ```
  openssl genpkey -algorithm rsa -pkeyopt rsa_keygen_bits:2048 | openssl pkcs8 -topk8 -outform der -nocrypt > RSA_2048_PrivateKey.der
  
  openssl genpkey -algorithm rsa -pkeyopt rsa_keygen_bits:3072 | openssl pkcs8 -topk8 -outform der -nocrypt > RSA_3072_PrivateKey.der
  
  openssl genpkey -algorithm rsa -pkeyopt rsa_keygen_bits:4096 | openssl pkcs8 -topk8 -outform der -nocrypt > RSA_4096_PrivateKey.der
  ```
+ ECC 프라이빗 키

  ```
  openssl genpkey -algorithm ec -pkeyopt ec_paramgen_curve:P-256 | openssl pkcs8 -topk8 -outform der -nocrypt > ECC_NIST_P256_PrivateKey.der
  
  openssl genpkey -algorithm ec -pkeyopt ec_paramgen_curve:P-384 | openssl pkcs8 -topk8 -outform der -nocrypt > ECC_NIST_P384_PrivateKey.der
  
  openssl genpkey -algorithm ec -pkeyopt ec_paramgen_curve:P-521 | openssl pkcs8 -topk8 -outform der -nocrypt > ECC_NIST_P521_PrivateKey.der
  
  openssl genpkey -algorithm ec -pkeyopt ec_paramgen_curve:secp256k1 | openssl pkcs8 -topk8 -outform der -nocrypt > ECC_SECG_P256K1_PrivateKey.der
  ```
+ SM2 프라이빗 키(중국 리전만 해당)

  ```
  openssl genpkey -algorithm ec -pkeyopt ec_paramgen_curve:sm2 | openssl pkcs8 -topk8 -outform der -nocrypt > SM2_PrivateKey.der
  ```

## OpenSSL를 사용한 키 구성 요소 암호화의 예시
<a name="importing-keys-encrypt-key-material-openssl"></a>

다음 예시는 [OpenSSL](https://openssl.org/)을 사용하여 다운로드한 퍼블릭 키로 키 구성 요소를 암호화하는 방법을 보여줍니다. SM2 퍼블릭 키(중국 리전만 해당)를 사용하여 키 구성 요소를 암호화하려면 [`SM2OfflineOperationHelper` 클래스](offline-operations.md#key-spec-sm-offline-helper)를 사용합니다. 각 래핑 알고리즘에서 지원하는 주요 구성 요소 유형에 대한 자세한 내용은 [래핑 알고리즘 선택](importing-keys-get-public-key-and-token.md#select-wrapping-algorithm) 단원을 참조하세요.

**중요**  
이 예시는 개념 증명 데모일 뿐입니다. 프로덕션 시스템에서 보안이 강화된 메서드(상용 HSM 또는 키 관리 시스템 등)를 사용해 키 구성 요소를 생성하고 저장합니다.  
ECC\$1NIST\$1P521 키 구성 요소, RSA\$12048 퍼블릭 래핑 키 사양, RSAES\$1OAEP\$1SHA\$1\$1 래핑 알고리즘과 같은 조합은 지원되지 않습니다.  
ECC\$1NIST\$1P521 키 구성 요소를 RSA\$12048 퍼블릭 래핑 키로 직접 래핑할 수는 없습니다. 더 큰 래핑 키나 RSA\$1AES\$1KEY\$1WRAP\$1SHA\$1\$1 래핑 알고리즘을 사용하세요.

------
#### [ RSAES\$1OAEP\$1SHA\$11 ]

AWS KMS 는 대칭 암호화 키(SYMMETRIC\$1DEFAULT), 타원 곡선(ECC) 프라이빗 키, SM2 프라이빗 키 및 HMAC 키에 대해 RSAES\$1OAEP\$1SHA\$11을 지원합니다.

RSAES\$1OAEP\$1SHA\$11는 RSA 프라이빗 키에는 지원되지 않습니다. 또한 RSAES\$1OAEP\$1SHA\$1\$1 래핑 알고리즘과 함께 RSA\$12048 퍼블릭 래핑 키를 사용하여 ECC\$1NIST\$1P521(secp521r1) 프라이빗 키를 래핑할 수 없습니다. 더 큰 퍼블릭 래핑 키나 RSA\$1AES\$1KEY\$1WRAP 래핑 알고리즘을 사용해야 합니다.

다음 예시에서는 [다운로드한 퍼블릭 키](importing-keys-get-public-key-and-token.md)와 RSAES\$1OAEP\$1SHA\$11 래핑 알고리즘을 사용하여 키 구성 요소를 암호화하고 이를 `EncryptedKeyMaterial.bin` 파일에 저장합니다.

이 예시에서는 다음과 같습니다.
+ *`WrappingPublicKey.bin`*은 다운로드한 래핑 퍼블릭 키가 들어 있는 파일입니다.
+ *`PlaintextKeyMaterial.bin`*은 암호화하려는 키 구성 요소(예: `PlaintextKeyMaterial.bin`, `HMAC_384_PlaintextKey.bin` 또는`ECC_NIST_P521_PrivateKey.der`)가 들어 있는 파일입니다.

```
$ openssl pkeyutl \
    -encrypt \
    -in PlaintextKeyMaterial.bin \
    -out EncryptedKeyMaterial.bin \
    -inkey WrappingPublicKey.bin \
    -keyform DER \
    -pubin \
    -pkeyopt rsa_padding_mode:oaep \
    -pkeyopt rsa_oaep_md:sha1
```

------
#### [ RSAES\$1OAEP\$1SHA\$1256 ]

AWS KMS 는 대칭 암호화 키(SYMMETRIC\$1DEFAULT), 타원 곡선(ECC) 프라이빗 키, SM2 프라이빗 키 및 HMAC 키에 대해 RSAES\$1OAEP\$1SHA\$1256을 지원합니다.

RSAES\$1OAEP\$1SHA\$1256은 RSA 프라이빗 키에는 지원되지 않습니다. 또한 RSAES\$1OAEP\$1SHA\$1\$1 래핑 알고리즘과 함께 RSA\$12048 퍼블릭 래핑 키를 사용하여 ECC\$1NIST\$1P521(secp521r1) 프라이빗 키를 래핑할 수 없습니다. 더 큰 퍼블릭 키나 RSA\$1AES\$1KEY\$1WRAP 래핑 알고리즘을 사용해야 합니다.

다음 예시에서는 [다운로드한 퍼블릭 키](importing-keys-get-public-key-and-token.md)와 RSAES\$1OAEP\$1SHA\$1256 래핑 알고리즘을 사용하여 키 구성 요소를 암호화하고 이를 `EncryptedKeyMaterial.bin` 파일에 저장합니다.

이 예시에서는 다음과 같습니다.
+ *`WrappingPublicKey.bin`*은 다운로드한 래핑 퍼블릭 키가 들어 있는 파일입니다. 콘솔에서 퍼블릭 키를 다운로드한 경우, 이 파일 이름은 `wrappingKey_KMS key_key_ID_timestamp`(예: `wrappingKey_f44c4e20-f83c-48f4-adc6-a1ef38829760_0809092909`)입니다.
+ *`PlaintextKeyMaterial.bin`*은 암호화하려는 키 구성 요소(예: `PlaintextKeyMaterial.bin`, `HMAC_384_PlaintextKey.bin` 또는`ECC_NIST_P521_PrivateKey.der`)가 들어 있는 파일입니다.

```
$ openssl pkeyutl \
    -encrypt \
    -in PlaintextKeyMaterial.bin \
    -out EncryptedKeyMaterial.bin \
    -inkey WrappingPublicKey.bin \
    -keyform DER \
    -pubin \
    -pkeyopt rsa_padding_mode:oaep \
    -pkeyopt rsa_oaep_md:sha256 \
    -pkeyopt rsa_mgf1_md:sha256
```

------
#### [ RSA\$1AES\$1KEY\$1WRAP\$1SHA\$11 ]

RSA\$1AES\$1KEY\$1WRAP\$1SHA\$11 래핑 알고리즘에는 두 가지 암호화 작업이 포함됩니다.

1. 생성한 AES 대칭 키와 AES 대칭 암호화 알고리즘을 사용하여 키 구성 요소를 암호화합니다.

1. 다운로드한 퍼블릭 키와 RSAES\$1OAEP\$1SHA\$11 래핑 알고리즘을 사용하여 사용한 AES 대칭 키를 암호화합니다.

RSA\$1AES\$1KEY\$1WRAP\$1SHA\$11 래핑 알고리즘에는 OpenSSL 버전 3.*x* 이상이 필요합니다.

1. 

**256비트 AES 대칭 암호화 키 생성**

   이 명령은 256개의 임의 비트로 구성된 AES 대칭 암호화 키를 생성하여 `aes-key.bin` 파일에 저장합니다.

   ```
   # Generate a 32-byte AES symmetric encryption key
   $ openssl rand -out aes-key.bin 32
   ```

1. 

**AES 대칭 암호화 키를 사용하여 키 구성 요소 암호화**

   이 명령은 AES 대칭 암호화 키를 사용하여 키 구성 요소를 암호화하고 암호화된 키 구성 요소를 `key-material-wrapped.bin` 파일에 저장합니다.

   이 예시 명령에서는 다음과 같습니다.
   + *`PlaintextKeyMaterial.bin`*은 가져오려는 키 구성 요소(예: `PlaintextKeyMaterial.bin`, `HMAC_384_PlaintextKey.bin`, `RSA_3072_PrivateKey.der` 또는 `ECC_NIST_P521_PrivateKey.der`)가 들어 있는 파일입니다.
   + *`aes-key.bin`*은 이전 명령에서 생성한 256비트 AES 대칭 암호화 키가 들어 있는 파일입니다.

   ```
   # Encrypt your key material with the AES symmetric encryption key
   $ openssl enc -id-aes256-wrap-pad \
           -K "$(xxd -p < aes-key.bin | tr -d '\n')" \
           -iv A65959A6 \
           -in PlaintextKeyMaterial.bin \
           -out key-material-wrapped.bin
   ```

1. 

**퍼블릭 키를 사용하여 AES 대칭 암호화 키 암호화**

   이 명령은 다운로드한 퍼블릭 키와 RSAES\$1OAEP\$1SHA\$11 래핑 알고리즘을 사용하여 AES 대칭 암호화 키를 암호화하고 DER 인코딩한 다음 `aes-key-wrapped.bin` 파일에 저장합니다.

   이 예시 명령에서는 다음과 같습니다.
   + *`WrappingPublicKey.bin`*은 다운로드한 래핑 퍼블릭 키가 들어 있는 파일입니다. 콘솔에서 퍼블릭 키를 다운로드한 경우, 이 파일 이름은 `wrappingKey_KMS key_key_ID_timestamp`(예: `wrappingKey_f44c4e20-f83c-48f4-adc6-a1ef38829760_0809092909`)입니다.
   + *`aes-key.bin`*은 이 예시 시퀀스의 첫 번째 명령에서 생성한 256비트 AES 대칭 암호화 키가 들어 있는 파일입니다.

   ```
   # Encrypt your AES symmetric encryption key with the downloaded public key
   $ openssl pkeyutl \
       -encrypt \
       -in aes-key.bin \
       -out aes-key-wrapped.bin \
       -inkey WrappingPublicKey.bin \
       -keyform DER \
       -pubin \
       -pkeyopt rsa_padding_mode:oaep \
       -pkeyopt rsa_oaep_md:sha1 \
       -pkeyopt rsa_mgf1_md:sha1
   ```

1. 

**가져올 파일 생성**

   암호화된 키 구성 요소가 있는 파일과 암호화된 AES 키가 있는 파일을 연결합니다. `EncryptedKeyMaterial.bin` 파일에 저장합니다. 이 파일은 [4단계: 키 구성 요소 가져오기](importing-keys-import-key-material.md)에서 가져올 파일입니다.

   이 예시 명령에서는 다음과 같습니다.
   + *`key-material-wrapped.bin`*은 암호화된 키 구성 요소가 들어 있는 파일입니다.
   + *`aes-key-wrapped.bin`*은 암호화된 AES 암호화 키가 들어 있는 파일입니다.

   ```
   # Combine the encrypted AES key and encrypted key material in a file
   $ cat aes-key-wrapped.bin key-material-wrapped.bin > EncryptedKeyMaterial.bin
   ```

------
#### [ RSA\$1AES\$1KEY\$1WRAP\$1SHA\$1256 ]

RSA\$1AES\$1KEY\$1WRAP\$1SHA\$1256 래핑 알고리즘에는 두 가지 암호화 작업이 포함됩니다.

1. 생성한 AES 대칭 키와 AES 대칭 암호화 알고리즘을 사용하여 키 구성 요소를 암호화합니다.

1. 다운로드한 퍼블릭 키와 RSAES\$1OAEP\$1SHA\$1256 래핑 알고리즘을 사용하여 사용한 AES 대칭 키를 암호화합니다.

RSA\$1AES\$1KEY\$1WRAP\$1SHA\$1256 래핑 알고리즘에는 OpenSSL 버전 3.*x* 이상이 필요합니다.

1. 

**256비트 AES 대칭 암호화 키 생성**

   이 명령은 256개의 임의 비트로 구성된 AES 대칭 암호화 키를 생성하여 `aes-key.bin` 파일에 저장합니다.

   ```
   # Generate a 32-byte AES symmetric encryption key
   $ openssl rand -out aes-key.bin 32
   ```

1. 

**AES 대칭 암호화 키를 사용하여 키 구성 요소 암호화**

   이 명령은 AES 대칭 암호화 키를 사용하여 키 구성 요소를 암호화하고 암호화된 키 구성 요소를 `key-material-wrapped.bin` 파일에 저장합니다.

   이 예시 명령에서는 다음과 같습니다.
   + *`PlaintextKeyMaterial.bin`*은 가져오려는 키 구성 요소(예: `PlaintextKeyMaterial.bin`, `HMAC_384_PlaintextKey.bin`, `RSA_3072_PrivateKey.der` 또는 `ECC_NIST_P521_PrivateKey.der`)가 들어 있는 파일입니다.
   + *`aes-key.bin`*은 이전 명령에서 생성한 256비트 AES 대칭 암호화 키가 들어 있는 파일입니다.

   ```
   # Encrypt your key material with the AES symmetric encryption key
   $ openssl enc -id-aes256-wrap-pad \
           -K "$(xxd -p < aes-key.bin | tr -d '\n')" \
           -iv A65959A6 \
           -in PlaintextKeyMaterial.bin \
           -out key-material-wrapped.bin
   ```

1. 

**퍼블릭 키를 사용하여 AES 대칭 암호화 키 암호화**

   이 명령은 다운로드한 퍼블릭 키와 RSAES\$1OAEP\$1SHA\$1256 래핑 알고리즘을 사용하여 AES 대칭 암호화 키를 암호화하고 DER 인코딩한 다음 `aes-key-wrapped.bin` 파일에 저장합니다.

   이 예시 명령에서는 다음과 같습니다.
   + *`WrappingPublicKey.bin`*은 다운로드한 래핑 퍼블릭 키가 들어 있는 파일입니다. 콘솔에서 퍼블릭 키를 다운로드한 경우, 이 파일 이름은 `wrappingKey_KMS key_key_ID_timestamp`(예: `wrappingKey_f44c4e20-f83c-48f4-adc6-a1ef38829760_0809092909`)입니다.
   + *`aes-key.bin`*은 이 예시 시퀀스의 첫 번째 명령에서 생성한 256비트 AES 대칭 암호화 키가 들어 있는 파일입니다.

   ```
   # Encrypt your AES symmetric encryption key with the downloaded public key
   $ openssl pkeyutl \
       -encrypt \
       -in aes-key.bin \
       -out aes-key-wrapped.bin \
       -inkey WrappingPublicKey.bin \
       -keyform DER \
       -pubin \
       -pkeyopt rsa_padding_mode:oaep \
       -pkeyopt rsa_oaep_md:sha256 \
       -pkeyopt rsa_mgf1_md:sha256
   ```

1. 

**가져올 파일 생성**

   암호화된 키 구성 요소가 있는 파일과 암호화된 AES 키가 있는 파일을 연결합니다. `EncryptedKeyMaterial.bin` 파일에 저장합니다. 이 파일은 [4단계: 키 구성 요소 가져오기](importing-keys-import-key-material.md)에서 가져올 파일입니다.

   이 예시 명령에서는 다음과 같습니다.
   + *`key-material-wrapped.bin`*은 암호화된 키 구성 요소가 들어 있는 파일입니다.
   + *`aes-key-wrapped.bin`*은 암호화된 AES 암호화 키가 들어 있는 파일입니다.

   ```
   # Combine the encrypted AES key and encrypted key material in a file
   $ cat aes-key-wrapped.bin key-material-wrapped.bin > EncryptedKeyMaterial.bin
   ```

------

[4단계: 키 구성 요소 가져오기](importing-keys-import-key-material.md)로 이동합니다.

# 4단계: 키 구성 요소 가져오기
<a name="importing-keys-import-key-material"></a>

[키 구성 요소를 암호화](importing-keys-encrypt-key-material.md)한 후 AWS KMS key와 함께 사용할 키 구성 요소를 가져올 수 있습니다. 키 구성 요소를 가져오려면 [3단계: 키 구성 요소 암호화](importing-keys-encrypt-key-material.md)에서 암호화한 키 구성 요소와 [2단계: 래핑 퍼블릭 키 및 가져오기 토큰 다운로드](importing-keys-get-public-key-and-token.md)에서 다운로드한 가져오기 토큰을 업로드합니다. [퍼블릭 키와 가져오기 토큰을 다운로드했을 때](importing-keys-get-public-key-and-token.md) 지정한 KMS 키로 키 구성 요소를 가져와야 합니다. 키 구성 요소를 성공적으로 가져오면 KMS 키의 [키 상태](key-state.md)가 `Enabled` 상태로 변경되고 암호화 작업에 KMS 키를 사용할 수 있습니다.

키 구성 요소를 가져올 때 키 구성 요소에 대해 [선택적으로 만료 시간을 설정](#importing-keys-expiration)할 수 있습니다. 키 구성 요소가 만료되면, AWS KMS 가 키 구성 요소를 삭제하고 KMS 키를 사용할 수 없게 됩니다. 키 구성 요소를 가져온 후에는 현재 가져오기에 대한 만료 날짜를 설정, 변경 또는 취소할 수 없습니다. 이러한 값을 변경하려면 동일한 키 구성 요소를 [다시 가져와야](#reimport-key-material) 합니다.

오리진이 `EXTERNAL`인 모든 KMS 키의 경우, 처음 가져온 키 구성 요소가 현재 키 구성 요소가 되며 해당 키와 영구적으로 연결됩니다. `EXTERNAL` 오리진이 있는 대칭 암호화 키는 온디맨드 교체를 지원합니다. 온디맨드 교체를 지원하는 가져온 키에는 여러 키 구성 요소를 연결할 수 있습니다. 새 키 구성 요소를 가져오는 프로세스는 [새 키 구성 요소 가져오기](#import-new-key-material) 섹션에 설명된 대로 단일 리전 및 다중 리전 키에 따라 다릅니다. [ImportKeyMaterial](https://docs.aws.amazon.com/kms/latest/APIReference/API_ImportKeyMaterial.html) 작업을 사용할 때 `importType` 파라미터를 `NEW_KEY_MATERIAL`로 설정해야 새 키 구성 요소를 KMS 키와 연결할 수 있습니다. 선택적 `ImportType` 파라미터의 기본값은 `EXISTING_KEY_MATERIAL`입니다. `ImportType` 파라미터를 생략하거나 `EXISTING_KEY_MATERIAL`로 지정하는 경우, KMS 키와 이전에 연결된 키 구성 요소를 가져와야 합니다.

비대칭 또는 `EXTERNAL` 오리진이 있는 HMAC KMS 키의 경우 키 구성 요소 하나만 키와 연결할 수 있습니다. AWS KMS 는 `ImportType` 파라미터와 함께 [ ImportKeyMaterial](https://docs.aws.amazon.com/kms/latest/APIReference/API_ImportKeyMaterial.html) API 요청을 거부합니다.

KMS 키에 영구적으로 연결된 모든 키 구성 요소를 가져오면 KMS 키를 암호화 작업에 사용할 수 있습니다. 이 키 구성 요소 중 하나라도 삭제되거나 만료되도록 허용되면 KMS 키 상태는 `PendingImport`로 변경되며, 해당 키는 암호화 작업에 사용할 수 없습니다.

키 구성 요소를 가져오려면 [AWS KMS 콘솔](#importing-keys-import-key-material-console) 또는 [ImportKeyMaterial](https://docs.aws.amazon.com/kms/latest/APIReference/API_ImportKeyMaterial.html) API를 사용할 수 있습니다. [AWS SDK](https://aws.amazon.com/tools/#sdk), [AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/) 또는 [AWS Tools for PowerShell](https://docs.aws.amazon.com/powershell/latest/userguide/)을 사용하거나 직접HTTP 요청을 수행해 API를 사용할 수 있습니다.

키 구성 요소를 가져오면 [ImportKeyMaterial 항목이](ct-importkeymaterial.md) AWS CloudTrail 로그에 추가되어 `ImportKeyMaterial` 작업을 기록합니다. CloudTrail 항목은 AWS KMS 콘솔을 사용하든 AWS KMS API를 사용하든 동일합니다.

## 만료 시간 설정(선택 사항)
<a name="importing-keys-expiration"></a>

KMS 키에 대한 키 구성 요소를 가져올 때 가져오기 날짜로부터 최대 365일까지 키 구성 요소에 대한 선택적 만료 날짜 및 시간을 설정할 수 있습니다. 가져온 키 구성 요소가 만료되면 AWS KMS 삭제합니다. 이 작업은 KMS 키의 [키 상태](key-state.md#key-state-table)를 `PendingImport`로 변경하여 암호화 작업에 사용되지 않도록 합니다. KMS 키를 사용하려면 [원본 키 구성 요소의 사본을 다시 가져와야](#reimport-key-material) 합니다.

가져온 키 구성 요소가 자주 만료되도록 하면 규정 요구 사항을 충족하는 데 도움이 될 수 있지만 KMS 키로 암호화된 데이터에 추가적인 위험이 발생합니다. 원래 키 구성 요소의 사본을 다시 가져올 때까지 키 구성 요소가 만료된 KMS 키는 사용할 수 없으며 KMS 키로 암호화된 모든 데이터에 액세스할 수 없습니다. 원래 키 구성 요소의 사본 손실을 포함하여 어떤 이유로든 키 구성 요소를 다시 가져오지 못하면 KMS 키를 영구적으로 사용할 수 없으며 KMS 키로 암호화된 데이터를 복구할 수 없습니다.

이러한 위험을 완화하려면 가져온 키 구성 요소의 사본에 액세스할 수 있는지 확인하고 키 구성 요소가 만료되고 AWS 워크로드가 중단되기 전에 키 구성 요소를 삭제하고 다시 가져오도록 시스템을 설계합니다. 만료되기 전에 키 구성 요소를 다시 가져올 수 있는 충분한 시간을 제공하는 가져온 키 구성 요소의 만료 [경보를 설정](imported-key-material-expiration-alarm.md)하는 것이 좋습니다. 또한 CloudTrail 로그를 사용하여 [키 재료를 가져오고 다시 가져오는](ct-importkeymaterial.md) 작업과 [가져온 키 재료를 삭제](ct-deleteimportedkeymaterial.md)하는 작업, [만료된 키 재료를 삭제](ct-deleteexpiredkeymaterial.md)하는 AWS KMS 작업을 감사할 수 있습니다.

AWS KMS 는 삭제된 키 구성 요소를 복원, 복구 또는 재현할 수 없습니다. 만료 시간을 설정하는 대신 주기적으로 가져온 키 구성 요소를 프로그래밍 방식으로 [삭제](importing-keys-delete-key-material.md)하고 [다시 가져올](#reimport-key-material) 수 있지만 원래 키 구성 요소의 사본을 유지하기 위한 요구 사항은 동일합니다.

키 구성 요소를 가져올 때 가져온 키 구성 요소의 만료 여부와 시기를 결정합니다. 그러나 키 구성 요소를 다시 가져오면 만료 기능을 켜거나 끌 수 있으며 새로운 만료 시간을 설정할 수도 있습니다. [ImportKeyMaterial](https://docs.aws.amazon.com/kms/latest/APIReference/API_ImportKeyMaterial.html)의 `ExpirationModel` 파라미터를 사용하여 만료를 켰다가(`KEY_MATERIAL_EXPIRES`) 끄고(`KEY_MATERIAL_DOES_NOT_EXPIRE`) `ValidTo` 파라미터를 사용하여 만료 시간을 설정합니다. 최대 시간은 가져오기 데이터로부터 365일입니다. 최소값은 없지만 시간은 미래여야 합니다.

## 키 구성 요소 설명 설정
<a name="set-key-material-description"></a>

`EXTERNAL` 오리진이 있는 대칭 암호화 키에는 여러 키 구성 요소가 연결될 수 있습니다. 이러한 키에 키 구성 요소를 가져올 때 선택적으로 키 구성 요소 설명을 지정할 수 있습니다. 이 설명은 해당 키 구성 요소가 AWS KMS외부에서 지속적으로 유지되는 위치를 추적하는 데 사용할 수 있습니다.

다중 리전 키의 경우 기본 리전 키에서만 키 구성 요소 설명을 설정하거나 변경할 수 있습니다.는 키 구성 요소 설명을 복제본 리전 키로 AWS KMS 자동 전파합니다.

## 새 키 구성 요소 가져오기
<a name="import-new-key-material"></a>

가져온 키 구성 요소를 사용하는 대칭 암호화 KMS 키에 대해 온디맨드 교체를 수행하려면 먼저 해당 KMS 키와 이전에 연결되지 않은 새 키 구성 요소를 가져와야 합니다.
+ **단일 리전 키**
  + 이 작업을 수행하려면 [ImportKeyMaterial](https://docs.aws.amazon.com/kms/latest/APIReference/API_ImportKeyMaterial.html) 작업에서 `ImportType` 파라미터를 `NEW_KEY_MATERIAL`로 설정해 사용하세요. 이 키 구성 요소는 [RotateKeyOnDemand](https://docs.aws.amazon.com/kms/latest/APIReference/API_RotateKeyOnDemand.html) 작업을 수행하거나에서 키를 교체할 때까지 키와 영구적으로 연결되지 않습니다 AWS Management Console. 그때까지 이 키 구성 요소는 `PENDING_ROTATION` 상태로 유지됩니다. KMS 키는 언제나 `PENDING_ROTATION` 상태의 키 구성 요소를 최대 하나만 가질 수 있습니다. 암호화 작업에서 키의 사용성에 영향을 주지 않고 `PENDING_ROTATION` 상태의 키 구성 요소를 삭제할 수 있습니다.
+ **다중 리전 키**
  + 키 구성 요소를 다중 리전 키로 가져오려면 먼저 새 키 구성 요소를 기본 리전 키로 가져와야 합니다. 새 키 구성 요소를 복제본 리전 키로 직접 가져올 수 없습니다. 새 키 구성 요소를 기본 리전 키로 가져온 후 동일한 키 구성 요소를 복제본 리전 키로 가져올 수 있습니다.
  + 이 작업을 수행하려면 기본 리전 키에 **NEW\$1KEY\$1MATERIAL** 대해 `ImportType` 파라미터가 로 설정된 [https://docs.aws.amazon.com/kms/latest/APIReference/API_ImportKeyMaterial.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_ImportKeyMaterial.html) 작업을 사용합니다. 복제본 리전 키의 경우 `ImportKeyMaterial` 작업에 `ImportType`의 **EXISTING\$1KEY\$1MATERIAL** 파라미터를 사용합니다.
  + 대칭 암호화 다중 리전 키의 키 구성 요소는 키 구성 요소 상태가 `PENDING_ROTATION` 상태로 변경되기 전에 모든 복제본 리전 키와 기본 리전 키로 가져와야 합니다. 그때까지 새 키 구성 요소의 상태는 입니다`PENDING_MULTI_REGION_IMPORT_AND_ROTATION`. KMS 키는 언제든지 `PENDING_ROTATION` 또는 `PENDING_MULTI_REGION_IMPORT_AND_ROTATION`상태에 최대 하나의 키 구성 요소를 가질 수 있습니다( [RotationsListEntry](https://docs.aws.amazon.com/kms/latest/APIReference/API_RotationsListEntry.html)의 `KeyMaterialState` 설명 참조). `PENDING_MULTI_REGION_IMPORT_AND_ROTATION` 또는 `PENDING_ROTATION` 상태의 키 구성 요소는 키와 영구적으로 연결되지 않으며 암호화 작업에서 키의 사용성에 영향을 주지 않고 삭제할 수 있습니다.

## 키 구성 요소 다시 가져오기
<a name="reimport-key-material"></a>

가져온 키 구성 요소가 있는 KMS 키를 관리하는 경우, 키 구성 요소를 다시 가져와야 할 수도 있습니다. 만료되거나 삭제된 키 구성 요소를 바꾸거나 키 구성 요소의 만료 모델 또는 만료 날짜를 변경하기 위해 키 구성 요소를 다시 가져올 수 있습니다.

보안 요구 사항을 충족하는 일정에 따라 언제든지 키 구성 요소를 다시 가져올 수 있습니다. 키 구성 요소가 만료 시간에 도달하거나 근접할 때까지 기다릴 필요가 없습니다.

키 구성 요소를 다시 가져오는 절차는 처음 키 구성 요소를 가져오는 절차와 동일하지만, 다음과 같은 예외가 있습니다.
+ 새 KMS 키를 만드는 대신 기존 KMS 키를 사용합니다. 가져오기 절차의 [1단계](importing-keys-create-cmk.md)를 건너뛸 수 있습니다.
+ 키 구성 요소를 다시 가져올 때 만료 모델 및 만료 날짜를 변경할 수 있습니다. 대칭 암호화 키의 경우 키 구성 요소 설명을 변경할 수도 있습니다.

  다중 리전 키의 경우 기본 리전 키에서만 키 구성 요소 설명을 설정하거나 변경할 수 있습니다.는 키 구성 요소 설명을 복제본 리전 키로 AWS KMS 자동 전파합니다.

키 구성 요소를 KMS 키로 가져올 때마다 해당 KMS 키의 [가져오기 토큰과 새 래핑 키를 다운로드하여 사용](importing-keys-get-public-key-and-token.md)해야 합니다. 래핑 절차는 키 구성 요소의 내용에 영향을 주지 않으므로 다른 래핑 퍼블릭 키와 다른 래핑 알고리즘을 사용하여 동일한 키 구성 요소를 가져올 수 있습니다.

## 키 구성 요소 가져오기(콘솔)
<a name="importing-keys-import-key-material-console"></a>

 AWS Management Console 를 사용하여 키 구성 요소를 가져올 수 있습니다.

1. **래핑된 키 구성 요소 업로드** 페이지에 있는 경우 [Step 10](#id-key-materials-step)으로 건너뛰세요.

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. 탐색 창에서 **고객 관리형 키**를 선택합니다.

1. 퍼블릭 키와 가져오기 토큰을 다운로드한 KMS 키의 키 ID 또는 별칭을 선택합니다.

1. **암호화 구성(Cryptographic configuration)** 탭을 선택하고 해당 값을 봅니다. 탭은 **일반 구성** 섹션 아래의 KMS 키에 대한 세부 정보 페이지에 있습니다.

   키 구성 요소는 **오리진**이 **외부(키 구성 요소 가져오기)**인 KMS 키로만 가져올 수 있습니다. 가져온 키 구성 요소가 있는 KMS 키를 생성하는 방법은 [키의 AWS KMS 키 구성 요소 가져오기](importing-keys.md) 단원을 참조하십시오.

1. 키 유형에 따라 적절한 탭을 선택합니다.
   + 비대칭 키와 HMAC 키의 경우 **키 구성** 요소 탭을 선택합니다.
   + 대칭 암호화 키의 경우 **키 구성 요소 및 교체** 탭을 선택합니다.

1. 가져오기 작업을 선택합니다.
   + 비대칭 및 HMAC 키의 경우 **키 구성 요소 가져오기**를 선택합니다.
   + 대칭 암호화 키에서 다음 중 하나를 선택합니다.
     + **초기 키 구성 요소 가져오기**(키 구성 요소를 아직 가져오지 않은 경우)
     + **새 키 구성 요소 가져오기**(교체할 새 구성 요소 추가)
     + **키 구성 요소 다시 가져오기**(키 구성 요소 테이블의 **작업** 메뉴에서 사용 가능)
**참고**  
다중 리전 키의 경우 먼저 새 키 구성 요소를 기본 리전 키로 가져와야 합니다. 그런 다음 동일한 키 구성 요소를 각 복제본 리전 키로 가져옵니다.  
기본 다중 리전 키의 경우 **키 자료** 테이블에는 모든 **복제본 리전의 가져오기 상태를 표시하는 복제본 가져오기 상태** 열이 포함되어 있습니다(예: "가져온 3개 중 0개"). 복제본 가져오기 상태 값을 선택하여 각 복제본 리전의 가져오기 상태를 보여주는 모달을 엽니다. 모달은 새 **키 구성 요소를 가져오**지 않은 복제본 리전에 대한 키 구성 요소 가져오기 링크를 제공합니다.

1. 키 구성 요소를 다운로드하고, 토큰을 가져오고, 키 구성 요소를 암호화한 경우 **다음**을 선택합니다.
**참고**  
다중 리전 키의 경우 먼저 새 키 구성 요소를 기본 리전 키로 가져와야 합니다. 그런 다음 동일한 키 구성 요소를 복제본 리전 키로 가져올 수 있습니다.

1. <a name="id-key-materials-step"></a>**암호화된 키 구성 요소 및 가져오기 토큰** 섹션에서 다음을 수행하세요.

   1. **래핑된 키 구성 요소**에서 **파일 선택**을 선택합니다. 그런 다음, 래핑(암호화)된 키 구성 요소가 포함된 파일을 업로드합니다.

   1. **가져오기 토큰**에서 **파일 선택**을 선택합니다. [다운로드한](importing-keys-get-public-key-and-token.md#importing-keys-get-public-key-and-token-console) 가져오기 토큰이 포함된 파일을 업로드합니다.

1. **Expiration option(만료 옵션)** 섹션에서 키 구성 요소의 만료 여부를 결정합니다. 만료 날짜와 시간을 설정하려면 **Key material expires(키 구성 요소 만료)**를 선택하고 캘린더를 사용해 날짜와 시간을 선택합니다. 현재 날짜 및 시간으로부터 최대 365일까지 날짜를 지정할 수 있습니다.

1. 대칭 암호화 키의 경우, 가져오는 키 구성 요소에 대한 설명을 선택적으로 지정할 수 있습니다.

1. **키 구성 요소 가져오기**를 선택합니다.

## 키 구성 요소 가져오기(AWS KMS API)
<a name="importing-keys-import-key-material-api"></a>

키 구성 요소를 가져오려면 [ImportKeyMaterial](https://docs.aws.amazon.com/kms/latest/APIReference/API_ImportKeyMaterial.html)작업을 사용합니다. 다음의 예제는 [AWS CLI](https://aws.amazon.com/cli/)을(를) 사용하지만 지원되는 모든 프로그래밍 언어를 사용할 수 있습니다.

이 예제 사용

1. `1234abcd-12ab-34cd-56ef-1234567890ab`을(를) 퍼블릭 키와 가져오기 토큰을 다운로드할 때 지정한 KMS 키의 키 ID로 바꿉니다. KMS 키를 식별하려면, 이 KMS 키의 [키 ID](concepts.md#key-id-key-id) 또는 [키 ARN](concepts.md#key-id-key-ARN)을 사용합니다. 이 작업에는 [별칭 이름](concepts.md#key-id-alias-name)이나 [별칭 ARN](concepts.md#key-id-alias-ARN)을 사용할 수 없습니다.

1. `EncryptedKeyMaterial.bin`을 암호화된 키 구성 요소가 포함된 파일 이름으로 바꿉니다.

1. `ImportToken.bin`을 가져오기 토큰이 포함된 파일 이름으로 바꿉니다.

1. 가져온 키 구성 요소가 만료되도록 하려면 `expiration-model` 파라미터 값을 기본값, `KEY_MATERIAL_EXPIRES`로 설정하거나 `expiration-model` 파라미터를 생략합니다. 그런 다음 `valid-to` 파라미터 값을 만료할 날짜와 시간으로 바꿉니다. 날짜 및 시간은 요청 시점으로부터 최대 365일이 될 수 있습니다.

   ```
   $ aws kms import-key-material --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
       --encrypted-key-material fileb://EncryptedKeyMaterial.bin \
       --import-token fileb://ImportToken.bin \
       --expiration-model KEY_MATERIAL_EXPIRES \
       --valid-to 2023-06-17T12:00:00-08:00
   ```

   가져온 키 구성 요소가 만료되지 않도록 하려면 명령에서 `expiration-model` 파라미터의 값을 `KEY_MATERIAL_DOES_NOT_EXPIRE`로 설정하고 `valid-to` 파라미터를 생략합니다.

   ```
   $ aws kms import-key-material --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
       --encrypted-key-material fileb://EncryptedKeyMaterial.bin \
       --import-token fileb://ImportToken.bin \
       --expiration-model KEY_MATERIAL_DOES_NOT_EXPIRE
   ```

1. KMS 키와 이전에 연결되지 않은 새 키 구성 요소를 가져오려면 `ImportType` 파라미터를 `NEW_KEY_MATERIAL`로 설정하세요. 이 옵션은 대칭 암호화 키에만 사용할 수 있습니다. 이러한 키의 경우 선택적 `KeyMaterialDescription` 파라미터를 사용하여 다음 명령줄 예제에서 가져온 키 구성 요소에 대한 설명을 설정할 수도 있습니다.

   ```
   $ aws kms import-key-material --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
       --encrypted-key-material fileb://EncryptedKeyMaterial.bin \
       --import-token fileb://ImportToken.bin \
       --expiration-model KEY_MATERIAL_EXPIRES \
       --valid-to 2023-06-17T12:00:00-08:00 \
       --import-type NEW_KEY_MATERIAL \
       --key-material-description "Q2 2025 Rotation"
   ```

1. 다중 리전 키의 경우 기본 리전 키에서만 키 구성 요소 설명을 설정하거나 변경할 수 있습니다.는 키 구성 요소 설명을 복제본 리전 키로 AWS KMS 자동 전파합니다.

**작은 정보**  
명령이 실패하면 `KMSInvalidStateException` 또는 `NotFoundException`이 표시될 수 있습니다. 요청을 재시도할 수 있습니다.

# 키 스토어에서 KMS AWS CloudHSM 키 생성
<a name="create-cmk-keystore"></a>

 AWS CloudHSM 키 스토어를 생성한 후 키 스토어 AWS KMS keys 에서를 생성할 수 있습니다. 가 AWS KMS 생성하는 [키 구성 요소가 있는 대칭 암호화 KMS](symm-asymm-choose-key-spec.md#symmetric-cmks) 키여야 합니다. 사용자 지정 키 스토어에 [비대칭 KMS 키](symmetric-asymmetric.md), [HMAC KMS 키](hmac.md) 또는 [가져온 키 구성 요소](importing-keys.md)가 있는 KMS 키를 생성할 수 없습니다. 또한 사용자 지정 키 스토어에서 대칭 암호화 KMS 키를 사용하여 비대칭 데이터 키 페어를 생성할 수 없습니다. KMS는 IPv6를 통해 AWS CloudHSM 키 스토어와 통신할 수 없습니다.

 AWS CloudHSM 키 스토어에서 KMS 키를 생성하려면 AWS CloudHSM 키 스토어를 [연결된 AWS CloudHSM 클러스터에 연결하고](connect-keystore.md) 클러스터에 서로 다른 가용 영역에 활성 HSMs 두 개 이상 있어야 합니다. 연결 상태 및 HSM 수를 찾으려면 AWS Management Console에서 [AWS CloudHSM 키 스토어 페이지](view-keystore.md#view-keystore-console)를 봅니다. API 작업을 사용할 때는 [DescribeCustomKeyStores](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeCustomKeyStores.html) 작업을 사용하여 AWS CloudHSM 키 스토어가 연결되어 있는지 확인합니다. 클러스터의 활성 HSMs 수와 가용 영역을 확인하려면 AWS CloudHSM [DescribeClusters](https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_DescribeClusters.html) 작업을 사용합니다.

 AWS CloudHSM 키 스토어에서 KMS 키를 생성하면가 KMS 키를 AWS KMS 생성합니다 AWS KMS. 그러나 연결된 AWS CloudHSM 클러스터에서 KMS 키에 대한 키 구성 요소를 생성합니다. 특히는 클러스터에 생성한 CU로 AWS KMS 로그인합니다. [`kmsuser`](create-keystore.md#before-keystore) 그런 다음, 클러스터에서 지속적이고 추출 불가능한 256비트 고급 암호화 표준(AES) 대칭 키를 생성합니다. AWS KMS 는 클러스터에서만 표시되는 [키 라벨 속성](https://docs.aws.amazon.com/cloudhsm/latest/userguide/cloudhsm_cli-key-attributes.html)의 값을 KMS 키의 Amazon 리소스 이름(ARN)으로 설정합니다.

명령이 성공하면 새 KMS 키의 [키 상태](key-state.md)는 `Enabled`가 되고 오리진은 `AWS_CLOUDHSM`이 됩니다. 생성 이후에 KMS 키의 오리진을 변경할 수 없습니다. AWS KMS 콘솔의 키 스토어에서 또는 [DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html) 작업을 사용하여 KMS AWS CloudHSM 키를 볼 때 키 ID, 키 상태, 생성 날짜와 같은 일반적인 속성을 볼 수 있습니다. 하지만 사용자 지정 키 스토어 ID와 AWS CloudHSM 클러스터 ID(선택 사항)을 확인할 수도 있습니다.

 AWS CloudHSM 키 스토어에서 KMS 키를 생성하려는 시도가 실패하면 오류 메시지를 사용하여 원인을 확인할 수 있습니다. AWS CloudHSM 키 스토어가 연결되지 않았거나(`CustomKeyStoreInvalidStateException`) 연결된 AWS CloudHSM 클러스터에이 작업()에 필요한 두 개의 활성 HSMs이 없음을 나타낼 수 있습니다`CloudHsmClusterInvalidConfigurationException`. 도움말은 [사용자 지정 키 스토어 문제 해결](fix-keystore.md) 섹션을 참조하십시오.

 AWS CloudHSM 키 스토어에서 KMS 키를 생성하는 작업 AWS CloudTrail 로그의 예는 섹션을 참조하세요[CreateKey](ct-createkey.md).

## CloudHSM 키 저장소에서 새로운 KMS 키 생성
<a name="create-key-keystore"></a>

콘솔의 AWS KMS 키 스토어에서 또는 [CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html) 작업을 사용하여 대칭 암호화 KMS AWS CloudHSM 키를 생성할 수 있습니다.

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

다음 절차에 따라 키 스토어에 대칭 암호화 KMS AWS CloudHSM 키를 생성합니다.

**참고**  
별칭, 설명 또는 태그에 기밀 또는 민감한 정보를 포함하지 마십시오. 이러한 필드는 CloudTrail 로그 및 기타 출력에 일반 텍스트로 표시될 수 있습니다.

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. 탐색 창에서 **고객 관리형 키**를 선택합니다.

1. **키 생성(Create key)**을 선택합니다.

1. **대칭(Symmetric)**을 선택합니다.

1. **키 사용(Key usage)**에서 **암호화 및 해독(Encrypt and decrypt)** 옵션이 선택됩니다. 변경할 수 없습니다.

1. **고급 옵션**을 선택합니다.

1. **Key material origin**(키 구성 요소 오리진)에서 **AWS CloudHSM key store**를 선택합니다.

   키 스토어에는 다중 리전 AWS CloudHSM 키를 생성할 수 없습니다.

1. **다음**을 선택합니다.

1. 새 KMS AWS CloudHSM 키의 키 스토어를 선택합니다. 새 AWS CloudHSM 키 스토어를 생성하려면 **사용자 지정 키 스토어 생성을** 선택합니다.

   선택한 AWS CloudHSM 키 스토어의 상태는 **연결**됨이어야 합니다. 연결된 AWS CloudHSM 클러스터는 활성 상태여야 하며 서로 다른 가용 영역에 두 개 이상의 활성 HSMs을 포함해야 합니다.

    AWS CloudHSM 키 스토어 연결에 대한 도움말은 섹션을 참조하세요[AWS CloudHSM 키 스토어 연결 해제](connect-keystore.md). HSM 추가에 대한 도움말은 *AWS CloudHSM 사용 설명서*의 [HSM 추가](https://docs.aws.amazon.com/cloudhsm/latest/userguide/add-remove-hsm.html#add-hsm)를 참조하십시오.

1. **다음**을 선택합니다.

1. KMS 키의 별칭과 설명을 입력합니다.

1. (선택 사항). **태그 추가(Add Tags)** 페이지에서 KMS 키를 식별 및 분류하는 태그를 추가합니다.

    AWS 리소스에 태그를 추가하면가 태그별로 집계된 사용량 및 비용이 포함된 비용 할당 보고서를 AWS 생성합니다. KMS 키에 대한 액세스를 제어하는 데에도 태그를 사용할 수 있습니다. KMS 키 태그 지정에 대한 자세한 내용은 [의 태그 AWS KMS](tagging-keys.md) 및 [에 대한 ABAC AWS KMS](abac.md) 섹션을 참조하십시오.

1. **다음**을 선택합니다.

1. **키 관리자(Key Administrators)** 섹션에서 KMS 키를 관리할 수 있는 IAM 사용자 및 역할을 선택합니다. 자세한 내용은 [키 관리자가 KMS 키를 관리하도록 허용](key-policy-default.md#key-policy-default-allow-administrators)을 참조하세요.
**참고**  
IAM 정책은 다른 IAM 사용자 및 역할에 KMS 키 사용 권한을 제공할 수 있습니다.  
IAM 모범 사례는 장기 보안 인증 정보가 있는 IAM 사용자의 사용을 장려하지 않습니다. 가능할 경우, 임시 보안 인증 정보를 제공하는 IAM 역할을 사용하세요. 자세한 내용은 *IAM 사용 설명서*의 [IAM의 보안 모범 사례](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)를 참조하세요.  
 AWS KMS 콘솔은 문 식별자 아래의 키 정책에 키 관리자를 추가합니다`"Allow access for Key Administrators"`. 이 문 식별자를 수정하면 문에 대해 콘솔이 업데이트 내용을 표시하는 방식에 영향을 미칠 수 있습니다.

1. (선택 사항) 이러한 키 관리자가 KMS 키를 삭제하지 못하도록 하려면 페이지 하단에 있는 **키 관리자가 이 키를 삭제하도록 허용(Allow key administrators to delete this key)** 확인란의 선택을 취소합니다.

1. **다음**을 선택합니다.

1. **이 계정** 섹션에서 [암호화 작업에](kms-cryptography.md#cryptographic-operations) KMS 키를 사용할 수 AWS 계정 있는 IAM 사용자 및 역할을 선택합니다. 자세한 내용은 [키 사용자가 KMS 키를 사용하도록 허용](key-policy-default.md#key-policy-default-allow-users)을 참조하세요.
**참고**  
IAM 모범 사례는 장기 보안 인증 정보가 있는 IAM 사용자의 사용을 장려하지 않습니다. 가능할 경우, 임시 보안 인증 정보를 제공하는 IAM 역할을 사용하세요. 자세한 내용은 *IAM 사용 설명서*의 [IAM의 보안 모범 사례](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)를 참조하세요.  
 AWS KMS 콘솔은 명령문 식별자 `"Allow use of the key"` 및 아래의 키 정책에 키 사용자를 추가합니다`"Allow attachment of persistent resources"`. 이러한 문 식별자들을 수정하면 문에 대해 콘솔이 업데이트 내용을 표시하는 방식에 영향을 미칠 수 있습니다.

1. (선택 사항) 다른 사용자가 암호화 작업에이 KMS 키를 AWS 계정 사용하도록 허용할 수 있습니다. 이렇게 하려면 페이지 하단의 **기타 AWS 계정** 섹션에서 **다른 추가 AWS 계정**를 선택하고 외부 계정의 AWS 계정 ID를 입력합니다. 외부 계정을 여러 개 추가하려면 이 단계를 반복합니다.
**참고**  
또한 다른의 관리자는 사용자에 대한 IAM 정책을 생성하여 KMS 키에 대한 액세스를 허용 AWS 계정 해야 합니다. 자세한 내용은 [다른 계정의 사용자가 KMS를 사용하도록 허용](key-policy-modifying-external-accounts.md) 단원을 참조하십시오.

1. **다음**을 선택합니다.

1. 키에 대한 키 정책 문을 검토합니다. 키 정책을 변경하려면 **편집**을 선택하세요.

1. **다음**을 선택합니다.

1. 선택한 키 설정을 검토합니다. 여전히 돌아가서 모든 설정을 변경할 수 있습니다.

1. 완료했으면 **마침(Finish)**을 선택하여 키를 생성합니다.

프로시저가 성공하면 선택한 키 스토어에 새 KMS AWS CloudHSM 키가 표시됩니다. 새 KMS 키의 이름 또는 별칭을 선택하면 세부 정보 페이지의 **암호화 구성** 탭에 KMS 키의 오리진(**AWS CloudHSM**), 사용자 지정 키 스토어의 이름, ID 및 유형, AWS CloudHSM 클러스터의 ID가 표시됩니다. 이 절차가 실패하면 실패 원인을 설명하는 오류 메시지가 나타납니다.

**작은 정보**  
사용자 지정 키 스토어에서 KMS 키를 손쉽게 식별하려면 **고객 관리형 키(Customer managed keys)** 페이지에서 **사용자 지정 키 스토어 ID(Custom key store ID)** 열을 화면에 추가합니다. 오른쪽 상단의 기어 아이콘을 클릭하고 **Custom key store ID(사용자 지정 키 스토어 ID)**를 선택합니다. 자세한 내용은 [콘솔 보기 사용자 지정](viewing-console-customize.md)을 참조하세요.

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

키 스토어에서 새 AWS KMS key (KMS 키)를 AWS CloudHSM 생성하려면 [CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html) 작업을 사용합니다. `CustomKeyStoreId` 파라미터를 사용하여 사용자 지정 키 스토어를 식별하고 `AWS_CLOUDHSM`의 `Origin` 값을 지정합니다.

`Policy` 파라미터를 사용해 키 정책을 지정할 수도 있습니다. 언제든 키 정책([PutKeyPolicy](https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html))을 변경하고 [설명](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html) 및 [태그](https://docs.aws.amazon.com/kms/latest/APIReference/API_TagResource.html) 등의 선택적 요소를 추가할 수 있습니다.

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

다음 예제는 [DescribeCustomKeyStores](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeCustomKeyStores.html) 작업을 호출하여 AWS CloudHSM 키 스토어가 연결된 AWS CloudHSM 클러스터에 연결되어 있는지 확인하는 것으로 시작합니다. 기본적으로 이 작업은 계정 및 리전에서 모든 사용자 지정 키 스토어를 반환합니다. 특정 AWS CloudHSM 키 스토어만 설명하려면 `CustomKeyStoreId` 또는 `CustomKeyStoreName` 파라미터(둘 다 아님)를 사용합니다.

이 명령을 실행하기 앞서 예제에 나온 사용자 지정 키 스토어 ID를 유효한 ID로 대체합니다.

**참고**  
`Description` 또는 `Tags` 필드에 기밀 또는 민감한 정보를 포함하지 마십시오. 이러한 필드는 CloudTrail 로그 및 기타 출력에 일반 텍스트로 표시될 수 있습니다.

```
$ aws kms describe-custom-key-stores --custom-key-store-id cks-1234567890abcdef0
{
   "CustomKeyStores": [
      "CustomKeyStoreId": "cks-1234567890abcdef0",
      "CustomKeyStoreName": "ExampleKeyStore",
      "CustomKeyStoreType": "AWS CloudHSM key store",
      "CloudHsmClusterId": "cluster-1a23b4cdefg",
      "TrustAnchorCertificate": "<certificate string appears here>",
      "CreationDate": "1.499288695918E9",
      "ConnectionState": "CONNECTED"
   ],
}
```

다음 예제 명령은 [DescribeClusters](https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_DescribeClusters.html) 작업을 사용하여 `ExampleKeyStore` (cluster-1a23b4cdefg)와 연결된 AWS CloudHSM 클러스터에 활성 HSMs이 두 개 이상 있는지 확인합니다. 클러스터의 HSM 수가 2개 미만이면 `CreateKey` 작업이 실패합니다.

```
$ aws cloudhsmv2 describe-clusters
{
    "Clusters": [
        {
            "SubnetMapping": {
               ...
            },
            "CreateTimestamp": 1507133412.351,
            "ClusterId": "cluster-1a23b4cdefg",
            "SecurityGroup": "sg-865af2fb",
            "HsmType": "hsm1.medium",
            "VpcId": "vpc-1a2b3c4d",
            "BackupPolicy": "DEFAULT",
            "Certificates": {
                "ClusterCertificate": "-----BEGIN CERTIFICATE-----\...\n-----END CERTIFICATE-----\n"
            },
            "Hsms": [
                {
                    "AvailabilityZone": "us-west-2a",
                    "EniIp": "10.0.1.11",
                    "ClusterId": "cluster-1a23b4cdefg",
                    "EniId": "eni-ea8647e1",
                    "StateMessage": "HSM created.",
                    "SubnetId": "subnet-a6b10bd1",
                    "HsmId": "hsm-abcdefghijk",
                    "State": "ACTIVE"
                },
                {
                    "AvailabilityZone": "us-west-2b",
                    "EniIp": "10.0.0.2",
                    "ClusterId": "cluster-1a23b4cdefg",
                    "EniId": "eni-ea8647e1",
                    "StateMessage": "HSM created.",
                    "SubnetId": "subnet-b6b10bd2",
                    "HsmId": "hsm-zyxwvutsrqp",
                    "State": "ACTIVE"
                },
            ],
            "State": "ACTIVE"
        }
    ]
}
```

이 예제 명령은 [CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html) 작업을 사용하여 키 스토어에 KMS AWS CloudHSM 키를 생성합니다. AWS CloudHSM 키 스토어에서 KMS 키를 생성하려면 키 스토어의 사용자 지정 AWS CloudHSM 키 스토어 ID를 제공하고 `Origin` 값을 지정해야 합니다`AWS_CLOUDHSM`.

응답에는 사용자 지정 키 스토어 및 AWS CloudHSM 클러스터의 IDs가 포함됩니다.

이 명령을 실행하기 앞서 예제에 나온 사용자 지정 키 스토어 ID를 유효한 ID로 대체합니다.

```
$ aws kms create-key --origin AWS_CLOUDHSM --custom-key-store-id cks-1234567890abcdef0
{
  "KeyMetadata": {
    "AWSAccountId": "111122223333",
    "Arn": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
    "CreationDate": 1.499288695918E9,
    "Description": "Example key",
    "Enabled": true,
    "MultiRegion": false,
    "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab",
    "KeyManager": "CUSTOMER",
    "KeyState": "Enabled",
    "KeyUsage": "ENCRYPT_DECRYPT",    
    "Origin": "AWS_CLOUDHSM"
    "CloudHsmClusterId": "cluster-1a23b4cdefg",
    "CustomKeyStoreId": "cks-1234567890abcdef0"
    "KeySpec": "SYMMETRIC_DEFAULT",
    "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT",
    "EncryptionAlgorithms": [
        "SYMMETRIC_DEFAULT"
    ]
  }
}
```

# 외부 키 저장소에서 KMS 키 생성
<a name="create-xks-keys"></a>

외부 키 스토어를 [생성하고](create-xks-keystore.md) [연결](xks-connect-disconnect.md)한 후 키 스토어 AWS KMS keys 에서를 생성할 수 있습니다. 오리진 값이 **External key store**(외부 키 스토어)(`EXTERNAL_KEY_STORE`)인 [대칭 암호화 KMS 키](symm-asymm-choose-key-spec.md#symmetric-cmks)여야 합니다. 사용자 지정 키 스토어에 [비대칭 KMS 키](symmetric-asymmetric.md), [HMAC KMS 키](hmac.md) 또는 [가져온 키 구성 요소](importing-keys.md)가 있는 KMS 키를 생성할 수 없습니다. 또한 사용자 지정 키 스토어에서 대칭 암호화 KMS 키를 사용하여 비대칭 데이터 키 페어를 생성할 수 없습니다.

외부 키 스토어의 KMS 키는 AWS외부에 있는 구성 요소에 의존하기 때문에 표준 KMS 키보다 지연 시간, 내구성 및 가용성이 낮을 수 있습니다. 외부 키 스토어에서 KMS 키를 생성하거나 사용하기 전에 외부 키 스토어 속성이 있는 키가 필요한지 확인합니다.

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

외부 키 스토어에서 KMS 키를 생성하려면 다음을 지정하세요.
+ 외부 키 스토어의 ID.
+ 외부 키 스토어(`EXTERNAL_KEY_STORE`)의 [키 구성 요소 오리진](create-keys.md#key-origin).
+ 외부 키 스토어와 연결된 [외부 키 관리자](keystore-external.md#concept-ekm)에 있는 기존 [외부 키](keystore-external.md#concept-external-key)의 ID. 이 외부 키는 KMS 키의 키 구성 요소 역할을 합니다. KMS 키를 생성한 후에는 외부 키 ID를 변경할 수 없습니다.

  AWS KMS 는 암호화 및 복호화 작업에 대한 요청에서 외부 키 스토어 프록시에 외부 키 ID를 제공합니다.는 외부 키 관리자 또는 해당 암호화 키에 직접 액세스할 AWS KMS 수 없습니다.

외부 키 스토어의 KMS 키에는 외부 키 외에도 AWS KMS 키 구성 요소가 있습니다. KMS 키로 암호화된 모든 데이터는 먼저 키의 AWS KMS 키 구성 요소를 AWS KMS 사용하여에서 암호화된 다음 외부 키를 사용하여 외부 키 관리자가 암호화합니다. 이 [이중 암호화](keystore-external.md#concept-double-encryption) 프로세스를 통해 외부 키 스토어에서 KMS 키로 보호되는 사이퍼텍스트가 항상 AWS KMS으로만 보호되는 사이퍼텍스트 이상으로 강력해집니다. 자세한 내용은 [외부 키 스토어 작동 방식](keystore-external.md#xks-how-it-works)을 참조하세요.

`CreateKey` 작업이 성공하면 새 KMS 키의 [키 상태](key-state.md)는 `Enabled`입니다. [외부 키 저장소에서 KMS 키를 볼](identify-key-types.md#view-xks-key) 때 키 ID, [키 사양](create-keys.md#key-spec), [키 사용](create-keys.md#key-usage), [키 상태](key-state.md) 및 생성 날짜와 같은 일반적인 속성을 볼 수 있습니다. 그러나 외부 키 스토어의 ID 및 [연결 상태](xks-connect-disconnect.md#xks-connection-state)와 외부 키의 ID도 볼 수 있습니다.

외부 키 스토어에서 KMS 키를 생성하려는 시도가 실패할 때 오류 메시지를 사용하면 원인을 식별하는 데 도움이 됩니다. 외부 키 스토어가 연결되어 있지 않거나(`CustomKeyStoreInvalidStateException`), 외부 키 스토어 프록시가 지정된 외부 키 ID를 가진 외부 키를 찾을 수 없거나(`XksKeyNotFoundException`), 외부 키가 동일한 외부 키 스토어 `XksKeyAlreadyInUseException`의 KMS 키와 이미 연결되어 있음을 나타낼 수 있습니다.

외부 키 스토어에서 KMS 키를 생성하는 작업 AWS CloudTrail 로그의 예는 섹션을 참조하세요[CreateKey](ct-createkey.md).

**Topics**
+ [외부 키 스토어의 KMS 키 요구 사항](#xks-key-requirements)
+ [외부 키 저장소에서 새로운 KMS 키 생성](#create-key-xks)

## 외부 키 스토어의 KMS 키 요구 사항
<a name="xks-key-requirements"></a>

외부 키 스토어에서 KMS 키를 생성하려면 외부 키 스토어, KMS 키 및 KMS 키의 외부 암호화 키 구성 요소 역할을 하는 외부 키에 대해 다음 속성이 필요합니다.

**외부 키 스토어 요구 사항**
+ 외부 키 스토어 프록시에 연결해야 합니다.

  외부 키 스토어의 [연결 상태](xks-connect-disconnect.md#xks-connection-state)를 보려면 [외부 키 저장소 보기](view-xks-keystore.md) 섹션을 참조하세요. 외부 키 스토어를 연결하려면 [외부 키 저장소 연결 및 연결 해제](xks-connect-disconnect.md) 섹션을 참조하세요.

**KMS 키 요구 사항**

KMS 키를 생성한 후에는 이러한 속성을 변경할 수 없습니다.
+ 키 사양: SYMMETRIC\$1DEFAULT
+ 키 사용: ENCRYPT\$1DECRYPT
+ 키 구성 요소 오리진: EXTERNAL\$1KEY\$1STORE
+ 다중 리전: FALSE

**외부 키 요구 사항**
+ 256비트 AES 암호화 키(256개의 임의 비트). 외부 키의 `KeySpec`이 `AES_256`이어야 합니다.
+ 활성화되어 사용할 수 있습니다. 외부 키의 `Status`가 `ENABLED`여야 합니다.
+ 암호화 및 암호 복호화용으로 구성되었습니다. 외부 키의 `KeyUsage`에 `ENCRYPT`와 `DECRYPT`가 포함되어야 합니다.
+ 이 KMS 키에만 사용됩니다. 외부 키 스토어의 각 `KMS key`는 서로 다른 외부 키와 연결되어야 합니다.

  AWS KMS 또한 에서는 외부 키를 외부 키 스토어에만 사용할 것을 권장합니다. 이 제한으로 인해 키와 관련된 문제를 더 쉽게 식별하고 해결할 수 있습니다.
+ 외부 키 스토어에 대한 [외부 키 스토어 프록시](keystore-external.md#concept-xks-proxy)에서 액세스할 수 있습니다.

  외부 키 스토어 프록시가 지정된 외부 키 ID를 사용하여 키를 찾을 수 없는 경우 `CreateKey` 작업이 실패합니다.
+ 에서 AWS 서비스 생성하는 예상 트래픽을 처리할 수 있습니다.는 초당 최대 1,800개의 요청을 처리할 수 있도록 외부 키를 준비할 것을 AWS KMS 권장합니다.

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

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

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

외부 키 스토어에서 KMS 키를 생성하는 방법에는 두 가지가 있습니다.
+ 방법 1(권장): 외부 키 스토어를 선택한 다음 해당 외부 키 스토어에서 KMS 키를 생성합니다.
+ 방법 2: KMS 키를 생성한 다음 KMS 키가 외부 키 스토어에 있음을 표시합니다.

키를 생성하기 전에 외부 키 스토어를 선택하는 방법 1을 사용하는 경우는 필요한 모든 KMS 키 속성을 AWS KMS 선택하고 외부 키 스토어의 ID를 채웁니다. 이 방법을 사용하면 KMS 키를 생성할 때 발생할 수 있는 오류를 방지할 수 있습니다.

**참고**  
별칭, 설명 또는 태그에 기밀 또는 민감한 정보를 포함하지 마십시오. 이러한 필드는 CloudTrail 로그 및 기타 출력에 일반 텍스트로 표시될 수 있습니다.

**방법 1(권장): 외부 키 스토어에서 시작**

이 방법을 사용하려면 외부 키 스토어를 선택한 다음 KMS 키를 생성합니다. AWS KMS 콘솔은 필요한 모든 속성을 선택하고 외부 키 스토어의 ID를 채웁니다. 이 방법을 사용하면 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. 외부 키 스토어의 이름을 선택합니다.

1. 오른쪽 상단에서 **Create a KMS key in this key store**(이 키 스토어에서 KMS 키 생성)을 선택합니다.

   외부 키 스토어가 연결되지 *않은* 경우 외부 키 스토어를 연결하라는 메시지가 나타납니다. 연결 시도가 실패할 경우 문제를 해결하고 외부 키 스토어를 연결해야 외부 키 스토어에서 새 KMS 키를 생성할 수 있습니다.

   외부 키 스토어가 연결된 경우 키 생성을 위한 **Customer managed keys**(고객 관리형 키) 페이지로 리디렉션됩니다. 필요한 **Key configuration**(키 구성) 값이 이미 선택되어 있습니다. 외부 키 스토어의 사용자 지정 키 스토어 ID도 입력되어 있지만 사용자가 이를 변경할 수 있습니다.

1. [외부 키 관리자](keystore-external.md#concept-ekm)에서 [외부 키](keystore-external.md#concept-external-key)의 키 ID를 입력합니다. 이 외부 키는 KMS 키와 함께 사용하기 위한 [요구 사항을 충족](#xks-key-requirements)해야 합니다. 키가 생성된 후에는 이 값을 변경할 수 없습니다.

   외부 키에 ID가 여러 개 있는 경우 외부 키 스토어 프록시가 외부 키를 식별하는 데 사용하는 키 ID를 입력합니다.

1. 지정된 외부 키 스토어에서 KMS 키를 생성할지 확인합니다.

1. **다음**을 선택합니다.

   이 절차의 나머지 부분은 [표준 KMS 키를 생성](create-keys.md)하는 것과 동일합니다.

1. KMS 키의 별칭(필수)과 설명(선택 사항)을 입력합니다.

1. (선택 사항). **태그 추가(Add Tags)** 페이지에서 KMS 키를 식별 및 분류하는 태그를 추가합니다.

    AWS 리소스에 태그를 추가하면가 태그별로 집계된 사용량 및 비용이 포함된 비용 할당 보고서를 AWS 생성합니다. KMS 키에 대한 액세스를 제어하는 데에도 태그를 사용할 수 있습니다. KMS 키 태그 지정에 대한 자세한 내용은 [의 태그 AWS KMS](tagging-keys.md) 및 [에 대한 ABAC AWS KMS](abac.md) 섹션을 참조하십시오.

1. **다음**을 선택합니다.

1. **키 관리자(Key Administrators)** 섹션에서 KMS 키를 관리할 수 있는 IAM 사용자 및 역할을 선택합니다. 자세한 내용은 [키 관리자가 KMS 키를 관리하도록 허용](key-policy-default.md#key-policy-default-allow-administrators)을 참조하세요.
**참고**  
IAM 정책은 다른 IAM 사용자 및 역할에 KMS 키 사용 권한을 제공할 수 있습니다.  
IAM 모범 사례는 장기 보안 인증 정보가 있는 IAM 사용자의 사용을 장려하지 않습니다. 가능할 경우, 임시 보안 인증 정보를 제공하는 IAM 역할을 사용하세요. 자세한 내용은 *IAM 사용 설명서*의 [IAM의 보안 모범 사례](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)를 참조하세요.

1. (선택 사항) 이러한 키 관리자가 KMS 키를 삭제하지 못하도록 하려면 **Allow key administrators to delete this key**(키 관리자가 이 키를 삭제하도록 허용) 확인란의 선택을 취소합니다.

   KMS 키 삭제는 사이퍼텍스트를 복구할 수 없게 만들 수 있는 파괴적이고 되돌릴 수 없는 작업입니다. 외부 키 구성 요소가 있더라도 외부 키 스토어에서 대칭 KMS 키를 다시 생성할 수 없습니다. 그러나 KMS 키를 삭제해도 연결된 외부 키에는 영향이 없습니다. 외부 키 저장소에서 KMS 키를 삭제하는 방법에 대한 자세한 내용은 [키 삭제에 대한 특별 고려 사항](deleting-keys.md#special-considerations-delete) 섹션을 참조하세요.

1. **다음**을 선택합니다.

1. **이 계정** 섹션에서 [암호화 작업에](kms-cryptography.md#cryptographic-operations) KMS 키를 사용할 수 AWS 계정 있는 IAM 사용자 및 역할을 선택합니다. 자세한 내용은 [키 사용자가 KMS 키를 사용하도록 허용](key-policy-default.md#key-policy-default-allow-users)을 참조하세요.
**참고**  
IAM 정책은 다른 IAM 사용자 및 역할에 KMS 키 사용 권한을 제공할 수 있습니다.  
IAM 모범 사례는 장기 보안 인증 정보가 있는 IAM 사용자의 사용을 장려하지 않습니다. 가능할 경우, 임시 보안 인증 정보를 제공하는 IAM 역할을 사용하세요. 자세한 내용은 *IAM 사용 설명서*의 [IAM의 보안 모범 사례](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)를 참조하세요.

1. (선택 사항) 다른 사용자가 암호화 작업에이 KMS 키를 AWS 계정 사용하도록 허용할 수 있습니다. 이렇게 하려면 페이지 하단의 **기타 AWS 계정** 섹션에서 **다른 추가 AWS 계정**를 선택하고 외부 계정의 AWS 계정 ID를 입력합니다. 외부 계정을 여러 개 추가하려면 이 단계를 반복합니다.
**참고**  
또한 다른의 관리자는 사용자에 대한 IAM 정책을 생성하여 KMS 키에 대한 액세스를 허용 AWS 계정 해야 합니다. 자세한 내용은 [다른 계정의 사용자가 KMS를 사용하도록 허용](key-policy-modifying-external-accounts.md) 단원을 참조하십시오.

1. **다음**을 선택합니다.

1. 선택한 키 설정을 검토합니다. 여전히 돌아가서 모든 설정을 변경할 수 있습니다.

1. 완료했으면 **마침(Finish)**을 선택하여 키를 생성합니다.

**방법 2: 고객 관리형 키에서 시작**

이 절차는 AWS KMS 키 구성 요소가 있는 대칭 암호화 키를 생성하는 절차와 동일합니다. 그러나 이 절차에서는 외부 키 스토어의 사용자 지정 키 스토어 ID와 외부 키의 키 ID를 지정합니다. 또한 외부 키 스토어의 KMS 키에 [필요한 속성 값](#xks-key-requirements)(예: 키 사양 및 키 사용)을 지정해야 합니다.

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. 탐색 창에서 **고객 관리형 키**를 선택합니다.

1. **키 생성(Create key)**을 선택합니다.

1. **대칭(Symmetric)**을 선택합니다.

1. **키 사용(Key usage)**에서 **암호화 및 해독(Encrypt and decrypt)** 옵션이 선택됩니다. 변경할 수 없습니다.

1. **고급 옵션**을 선택합니다.

1. **Key material origin**(키 구성 요소 오리진)에서 **External key store**(외부 키 스토어)를 선택합니다.

1. 지정된 외부 키 스토어에서 KMS 키를 생성할지 확인합니다.

1. **다음**을 선택합니다.

1. 새 KMS 키에 대한 외부 키 스토어를 나타내는 행을 선택합니다.

   연결 해제된 외부 키 스토어는 선택할 수 없습니다. 연결 해제된 키 스토어를 연결하려면 키 스토어 이름을 선택한 다음 **Key store actions**(키 스토어 작업)에서 **Connect**(연결)를 선택합니다. 자세한 내용은 [AWS KMS 콘솔 사용](about-xks-connecting.md#connect-xks-console)을 참조하세요.

1. [외부 키 관리자](keystore-external.md#concept-ekm)에서 [외부 키](keystore-external.md#concept-external-key)의 키 ID를 입력합니다. 이 외부 키는 KMS 키와 함께 사용하기 위한 [요구 사항을 충족](#xks-key-requirements)해야 합니다. 키가 생성된 후에는 이 값을 변경할 수 없습니다.

   외부 키에 ID가 여러 개 있는 경우 외부 키 스토어 프록시가 외부 키를 식별하는 데 사용하는 키 ID를 입력합니다.

1. **다음**을 선택합니다.

   이 절차의 나머지 부분은 [표준 KMS 키를 생성](create-keys.md)하는 것과 동일합니다.

1. KMS 키의 별칭과 설명을 입력합니다.

1. (선택 사항). **태그 추가(Add Tags)** 페이지에서 KMS 키를 식별 및 분류하는 태그를 추가합니다.

    AWS 리소스에 태그를 추가하면가 태그별로 집계된 사용량 및 비용이 포함된 비용 할당 보고서를 AWS 생성합니다. KMS 키에 대한 액세스를 제어하는 데에도 태그를 사용할 수 있습니다. KMS 키 태그 지정에 대한 자세한 내용은 [의 태그 AWS KMS](tagging-keys.md) 및 [에 대한 ABAC AWS KMS](abac.md) 섹션을 참조하십시오.

1. **다음**을 선택합니다.

1. **키 관리자(Key Administrators)** 섹션에서 KMS 키를 관리할 수 있는 IAM 사용자 및 역할을 선택합니다. 자세한 내용은 [키 관리자가 KMS 키를 관리하도록 허용](key-policy-default.md#key-policy-default-allow-administrators)을 참조하세요.
**참고**  
IAM 정책은 다른 IAM 사용자 및 역할에 KMS 키 사용 권한을 제공할 수 있습니다.

1. (선택 사항) 이러한 키 관리자가 KMS 키를 삭제하지 못하도록 하려면 **Allow key administrators to delete this key**(키 관리자가 이 키를 삭제하도록 허용) 확인란의 선택을 취소합니다.

   KMS 키 삭제는 사이퍼텍스트를 복구할 수 없게 만들 수 있는 파괴적이고 되돌릴 수 없는 작업입니다. 외부 키 구성 요소가 있더라도 외부 키 스토어에서 대칭 KMS 키를 다시 생성할 수 없습니다. 그러나 KMS 키를 삭제해도 연결된 외부 키에는 영향이 없습니다. 외부 키 스토어에서 KMS 키를 삭제하는 방법에 대한 자세한 내용은 [삭제 AWS KMS key](deleting-keys.md) 섹션을 참조하세요.

1. **다음**을 선택합니다.

1. **이 계정** 섹션에서 [암호화 작업에](kms-cryptography.md#cryptographic-operations) KMS 키를 사용할 수 AWS 계정 있는 IAM 사용자 및 역할을 선택합니다. 자세한 내용은 [키 사용자가 KMS 키를 사용하도록 허용](key-policy-default.md#key-policy-default-allow-users)을 참조하세요.
**참고**  
IAM 정책은 다른 IAM 사용자 및 역할에 KMS 키 사용 권한을 제공할 수 있습니다.

1. (선택 사항) 다른 사용자가 암호화 작업에이 KMS 키를 AWS 계정 사용하도록 허용할 수 있습니다. 이렇게 하려면 페이지 하단의 **기타 AWS 계정** 섹션에서 **다른 추가 AWS 계정**를 선택하고 외부 계정의 AWS 계정 ID를 입력합니다. 외부 계정을 여러 개 추가하려면 이 단계를 반복합니다.
**참고**  
또한 다른의 관리자는 사용자에 대한 IAM 정책을 생성하여 KMS 키에 대한 액세스를 허용 AWS 계정 해야 합니다. 자세한 내용은 [다른 계정의 사용자가 KMS를 사용하도록 허용](key-policy-modifying-external-accounts.md) 단원을 참조하십시오.

1. **다음**을 선택합니다.

1. 선택한 키 설정을 검토합니다. 여전히 돌아가서 모든 설정을 변경할 수 있습니다.

1. 완료했으면 **마침(Finish)**을 선택하여 키를 생성합니다.

절차가 성공하면 화면에서 선택한 외부 키 스토어에 새 KMS 키가 표시됩니다. 새 KMS 키의 이름 또는 별칭을 선택하면 세부 정보 페이지의 **Cryptographic configuration**(암호화 구성) 탭에 KMS 키(**External key store**(외부 키 스토어))의 오리진, 사용자 지정 키 스토어의 이름, ID 및 유형, 외부 키의 ID, 키 사용 및 상태가 표시됩니다. 이 절차가 실패하면 실패 원인을 설명하는 오류 메시지가 나타납니다. [외부 키 스토어 문제 해결](xks-troubleshooting.md) 섹션을 참조하세요.

**작은 정보**  
사용자 지정 키 스토어에서 KMS 키를 손쉽게 식별하려면 **Customer managed keys**(고객 관리형 키) 페이지에서 **Origin**(오리진) 및 **Custom key store ID**(사용자 지정 키 스토어 ID) 열을 디스플레이에 추가합니다. 테이블 필드를 변경하려면 페이지의 오른쪽 상단에서 기어 아이콘을 선택합니다. 자세한 내용은 [콘솔 보기 사용자 지정](viewing-console-customize.md)을 참조하세요.

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

외부 키 스토어에서 새 KMS 키를 새로 생성하려면 [CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html) 작업을 사용합니다. 다음 파라미터는 필수 파라미터입니다.
+ `Origin` 값은 `EXTERNAL_KEY_STORE`여야 합니다.
+ `CustomKeyStoreId` 파라미터는 외부 키 스토어를 식별합니다. 지정된 외부 키 스토어의 [`ConnectionState`](xks-connect-disconnect.md#xks-connection-state)는 `CONNECTED`여야 합니다. `CustomKeyStoreId`와 `ConnectionState`를 찾으려면 `DescribeCustomKeyStores` 작업을 사용합니다.
+ `XksKeyId` 파라미터는 외부 키를 식별합니다. 이 외부 키는 KMS 키와의 연결 [요구 사항을 충족](#xks-key-requirements)해야 합니다.

`Policy` 또는 [Tags](https://docs.aws.amazon.com/kms/latest/APIReference/API_TagResource.html) 파라미터 사용과 같이 `CreateKey` 작업의 선택적 파라미터를 사용할 수도 있습니다.

**참고**  
`Description` 또는 `Tags` 필드에 기밀 또는 민감한 정보를 포함하지 마십시오. 이러한 필드는 CloudTrail 로그 및 기타 출력에 일반 텍스트로 표시될 수 있습니다.

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

이 예제 명령은 [CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html) 작업을 사용해 KMS 키의 외부 키 스토어를 생성합니다. 응답에는 KMS 키의 속성, 외부 키 스토어의 ID, 외부 키의 ID, 사용량 및 상태가 포함됩니다.

이 명령을 실행하기 앞서 예제에 나온 사용자 지정 키 스토어 ID를 유효한 ID로 대체합니다.

```
$ aws kms create-key --origin EXTERNAL_KEY_STORE --custom-key-store-id cks-1234567890abcdef0 --xks-key-id bb8562717f809024
{
  "KeyMetadata": {
    "Arn": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
    "AWSAccountId": "111122223333",
    "CreationDate": "2022-12-02T07:48:55-07:00",
    "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT",
    "CustomKeyStoreId": "cks-1234567890abcdef0",
    "Description": "",
    "Enabled": true,
    "EncryptionAlgorithms": [
      "SYMMETRIC_DEFAULT"
    ],
    "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab",
    "KeyManager": "CUSTOMER",
    "KeySpec": "SYMMETRIC_DEFAULT",
    "KeyState": "Enabled",
    "KeyUsage": "ENCRYPT_DECRYPT",
    "MultiRegion": false,
    "Origin": "EXTERNAL_KEY_STORE",
    "XksKeyConfiguration": {
      "Id": "bb8562717f809024"
    }
  }
}
```