

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

# 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\_DEFAULT](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\_VERIFY인 경우에만 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) 섹션을 참조하세요.