

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

# 작업 AWS KMS keys
<a name="kms-keys"></a>

는 하나 이상의 HSM(하드웨어 보안 모듈) 지원 키(HBKs)를 참조할 수 있는 논리적 키를 AWS KMS key 나타냅니다. 이 주제에서는 KMS 키를 생성하고 키 구성 요소를 가져오는 방법과 KMS 키를 활성화, 비활성화, 교체 및 삭제하는 방법에 관해 설명합니다.

**참고**  
AWS KMS 는 *고객 마스터 키(CMK)*라는 용어를 *AWS KMS key* 및 *KMS 키*로 대체합니다. 단, 개념은 바뀌지 않았습니다. 주요 변경 사항을 방지하기 위해 AWS KMS 는이 용어의 몇 가지 변형을 유지합니다.

이 장에서는 다음 이미지에서와 같이 KMS 키 생성부터 삭제까지의 KMS 키 수명 주기에 관해 설명합니다.

![\[KMS 키 수명 주기입니다.\]](http://docs.aws.amazon.com/ko_kr/kms/latest/cryptographic-details/images/keystate.png)


**Topics**
+ [CreateKey 호출](create-key.md)
+ [키 구성 요소 가져오기](importing-key-material.md)
+ [키 활성화 및 비활성화](enable-and-disable-key.md)
+ [키 삭제](key-deletion.md)
+ [키 구성 요소 교체](rotate-customer-master-key.md)

# CreateKey 호출
<a name="create-key"></a>

[https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html) API 호출의 결과로 AWS KMS key 가 생성됩니다.

다음은 몇 가지 [`CreateKey` 요청 구문](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html#API_CreateKey_RequestSyntax)입니다.

```
{
  "Description": "string",
  "KeySpec": "string",
  "KeyUsage": "string",
  "Origin": "string";
  "Policy": "string"
}
```

요청은 JSON 형식으로 다음 데이터를 받습니다.

**설명**  
(선택 사항) 키에 대한 설명입니다. 키가 태스크에 적합한지 여부를 결정하는 데 도움이 되는 설명을 선택하는 것이 좋습니다.

**KeySpec**  
생성할 KMS 키 유형을 지정합니다. 기본값인 SYMMETRIC\$1DEFAULT를 사용하면 대칭 암호화 KMS 키가 생성됩니다. 이 파라미터는 대칭 암호화 키의 경우 선택 사항이며 다른 모든 키 사양에 필요합니다.

**KeyUsage**  
키 사용을 지정합니다. 유효한 값은 `ENCRYPT_DECRYPT`, `SIGN_VERIFY`또는 `GENERATE_VERIFY_MAC`입니다. 기본값은 `ENCRYPT_DECRYPT`입니다. 이 파라미터는 대칭 암호화 키의 경우 선택 사항이며 다른 모든 키 사양에 필요합니다.

** Origin**  
(선택 사항) KMS 키용 키 구성 요소의 소스를 지정합니다. 기본값은 이며`AWS_KMS`, 이는가 KMS 키의 키 구성 요소를 AWS KMS 생성하고 관리함을 나타냅니다. 다른 유효한 값에는 가져온 키 구성 요소에 대한 [키 구성 요소 없이 생성된 KMS 키를](https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html) `EXTERNAL`나타내고 사용자가 제어하는 AWS CloudHSM 클러스터가 지원하는 [사용자 지정 키 스토어](https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html)에 KMS 키를 `AWS_CLOUDHSM` 생성하는가 포함됩니다.

**정책**  
(선택 사항) 키에 연결할 정책입니다. 정책을 생략하면 AWS KMS 권한이 있는 루트 계정 및 IAM 주체가 키를 관리하도록 허용하는 기본 정책(다음)을 사용하여 키가 생성됩니다.

정책에 대한 자세한 내용은 [AWS KMS의 키 정책](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html) 및 *AWS Key Management Service 개발자 가이드*의 [기본 키 정책](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-default.html)을 참조하세요.

`CreateKey` 요청이 키 ARN이 포함된 [응답](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html#API_CreateKey_ResponseSyntax)을 반환합니다.

```
arn:<partition>:kms:<region>:<account-id>:key/<key-id>
```

`Origin`이 `AWS_KMS`인 경우 ARN이 생성된 후 인증된 세션을 통해 AWS KMS HSM을 요청하여 HSM(하드웨어 보안 모듈) 백업 키(HBK)를 프로비저닝합니다. HBK는 KMS 키의 키 ID와 연결된 256비트 키입니다. HSM에서만 생성할 수 있으며 일반 텍스트로 HSM 경계 외부로 내보내지 않도록 설계되었습니다. HBK는 현재 도메인 키 DK0를 사용하여 암호화됩니다. 이러한 암호화된 HBK를 EKT(암호화된 키 토큰)라고 합니다. HSM은 다양한 키 래핑 방법을 사용하도록 구성할 수 있지만 현재 구현에서는 인증된 암호화 체계인 Galois Counter Mode(GCM)의 AES-256을 사용합니다. 이 인증된 암호화 모드를 사용하면 일반 텍스트로 내보낸 일부 키 토큰 메타데이터를 보호할 수 있습니다.

이는 다음과 같이 표시됩니다.

```
EKT = Encrypt(DK0, HBK)
```

KMS 키와 후속 HBK에는 KMS 키에 설정된 권한 부여 정책과 연결된 HBK에 대한 암호화 보호라는 두 가지 기본 보호 형식이 제공됩니다. 나머지 섹션에서는에 있는 관리 함수의 암호화 보호 및 보안에 대해 설명합니다 AWS KMS.

ARN 외에, 키의 *별칭*을 만들어 사용자에게 익숙한 이름을 생성하고 KMS 키와 연결할 수 있습니다. 별칭이 KMS 키와 연결되면 암호화 작업에서 KMS 키를 식별하기 위해 별칭을 사용할 수 있습니다. 자세한 내용은 *AWS Key Management Service 개발자 안내서*에서 [별칭 사용](https://docs.aws.amazon.com/kms/latest/developerguide/kms-alias.html)을 참조하세요.

여러 수준의 권한 부여가 KMS 키 사용을 둘러싸고 있습니다.는 암호화된 콘텐츠와 KMS 키 간에 별도의 권한 부여 정책을 AWS KMS 활성화합니다. 예를 들어 AWS KMS 봉투 암호화 Amazon Simple Storage Service(Amazon S3) 객체는 Amazon S3 버킷의 정책을 상속합니다. 그러나 필요한 암호화 키에 대한 액세스는 KMS 키의 액세스 정책에 따라 결정됩니다. KMS 키 권한 부여에 대한 자세한 내용은 *AWS Key Management Service 개발자 안내서*에서 [AWS KMS에 대한 인증 및 액세스 제어](https://docs.aws.amazon.com/kms/latest/developerguide/control-access.html)를 참조하세요.

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

AWS KMS 는 HBK에 사용되는 암호화 구성 요소를 가져오는 메커니즘을 제공합니다. [CreateKey 호출](create-key.md)에 설명된 대로, `Origin`을 `EXTERNAL`로 설정하여 CreateKey 명령을 사용할 경우 기본 HBK가 없는 논리적 KMS 키가 생성됩니다. [https://docs.aws.amazon.com/kms/latest/APIReference/API_ImportKeyMaterial.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_ImportKeyMaterial.html) API 호출을 사용하여 암호화 구성 요소를 가져와야 합니다. 이 기능을 사용하여 암호화 구성 요소의 키 생성 및 내구성을 제어할 수 있습니다. 이 기능을 사용할 경우 사용자 환경에서 이러한 키의 처리 및 내구성에 상당한 주의를 기울이는 것이 좋습니다. 키 구성 요소 가져오기에 대한 자세한 내용 및 권장 사항은 *AWS Key Management Service 개발자 가이드*에서 [키 구성 요소 가져오기](https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html)를 참조하세요.

## ImportKeyMaterial 호출
<a name="importkeymaterial"></a>

`ImportKeyMaterial` 요청은 HBK에 필요한 암호화 구성 요소를 가져옵니다. 암호화 구성 요소는 256비트 대칭 키여야 합니다. 이 키는 `WrappingAlgorithm`에 지정된 알고리즘을 사용하여 최근 [https://docs.aws.amazon.com/kms/latest/APIReference/API_GetParametersForImport.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetParametersForImport.html) 요청에서 반환된 퍼블릭 키로 암호화되어야 합니다.

[`ImportKeyMaterial` 요청](https://docs.aws.amazon.com/kms/latest/APIReference/API_ImportKeyMaterial.html#API_ImportKeyMaterial_RequestSyntax)은 다음 인수를 받습니다.

```
{
  "EncryptedKeyMaterial": blob,
  "ExpirationModel": "string",
  "ImportToken": blob,
  "KeyId": "string",
  "ValidTo": number
}
```

**EncryptedKeyMaterial**  
`GetParametersForImport` 요청에 지정된 래핑 알고리즘을 사용하여 요청에 반환된 공개 키로 암호화된 가져온 키 구성 요소입니다.

**ExpirationModel**  
키 구성 요소의 만료 여부를 지정합니다. 이 값이 `KEY_MATERIAL_EXPIRES`이면, `ValidTo` 파라미터에 만료 날짜가 포함되어야 합니다. 이 값이 `KEY_MATERIAL_DOES_NOT_EXPIRE`이면, `ValidTo` 파라미터를 포함해서는 안 됩니다. 유효 값은 `"KEY_MATERIAL_EXPIRES"` 및 `"KEY_MATERIAL_DOES_NOT_EXPIRE"`입니다.

**ImportToken**  
퍼블릭 키를 제공한 동일한 `GetParametersForImport` 요청이 반환한 가져오기 토큰입니다.

**KeyId**  
가져온 키 구성 요소와 연결될 KMS 키입니다. KMS 키의 `Origin`은 `EXTERNAL`이어야 합니다.  
*동일한* 가져온 키 구성 요소를 삭제하고 지정된 KMS 키로 다시 가져올 수 있지만, KMS 키를 다른 키 구성 요소로 가져오거나 연결할 수 없습니다.

**ValidTo**  
(선택 사항) 가져온 키 구성 요소가 만료되는 시간입니다. 키 구성 요소가 만료되면, AWS KMS 가 키 구성 요소를 삭제하고 KMS 키를 사용할 수 없게 됩니다. 이 파라미터는 `ExpirationModel` 값이 `KEY_MATERIAL_EXPIRES`인 경우 필수입니다. 그렇지 않은 경우 이 값은 잘못되었습니다.

요청이 성공하면 KMS 키가 제공된 경우 지정된 만료 날짜 AWS KMS 까지 KMS 키를 사용할 수 있습니다. 가져온 키 구성 요소가 만료되면 AWS KMS 스토리지 계층에서 EKT가 삭제됩니다.

# 키 활성화 및 비활성화
<a name="enable-and-disable-key"></a>

KMS 키를 비활성화하면 암호화 작업에 KMS 키가 사용되지 않습니다. KMS 키와 연결된 모든 HBK의 사용 기능이 중지됩니다. 키를 활성화하면 HBK 및 KMS 키 사용이 복원됩니다. [사용 설정](https://docs.aws.amazon.com/kms/latest/APIReference/API_Enable.html)과 [사용 중지](https://docs.aws.amazon.com/kms/latest/APIReference/API_Disable.html)는 KMS 키의 ID 또는 키 ARN만 받는 단순 요청입니다.

# 키 삭제
<a name="key-deletion"></a>

권한 있는 사용자는 [https://docs.aws.amazon.com/kms/latest/APIReference/API_ScheduleKeyDeletion.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_ScheduleKeyDeletion.html) API를 사용하여 KMS 키 및 연결된 모든 HBK의 삭제를 예약할 수 있습니다. 이는 본질적으로 파괴적인 작업이며에서 키를 삭제할 때 주의해야 합니다 AWS KMS.는 KMS 키를 삭제할 때 최소 7일의 대기 시간을 AWS KMS 적용합니다. 이 대기 기간 동안 키 상태가 **삭제 보류 중**으로 바뀌고 키가 비활성화됩니다. 암호화 작업에 이 키를 사용하는 모든 호출이 실패합니다. ScheduleKeyDeletion은 다음 인수를 받습니다.

```
{
  "KeyId": "string",
  "PendingWindowInDays": number
}
```

**KeyId**  
삭제할 KMS 키의 고유 식별자입니다. 이 값을 지정하려면 KMS 키의 고유 키 ID 또는 키 ARN을 사용합니다.

** PendingWindowInDays**  
(선택 사항) 대기 기간(일수)입니다. 이 값은 선택 사항입니다. 범위는 7\$130일이며 기본값은 30일입니다. 대기 기간이 끝나면가 KMS 키와 연결된 모든 HBK를 AWS KMS 삭제합니다. HBKs

# 키 구성 요소 교체
<a name="rotate-customer-master-key"></a>

권한 있는 사용자는 고객 관리형 KMS 키를 매년 자동으로 교체할 수 있습니다. AWS 관리형 키 는 항상 매년 교체됩니다.

KMS 키가 교체되면 새로운 HBK가 생성되고, 모든 새로운 암호화 요청에 대한 키 구성 요소의 현재 버전으로 표시됩니다. 모든 이전 버전의 HBK는 이 HBK 버전을 사용하여 암호화된 사이퍼텍스트를 해독하는 데 영구적으로 사용할 수 있습니다. AWS KMS 는 KMS 키로 암호화된 사이퍼텍스트를 저장하지 않으므로 이전 HBK로 암호화된 사이퍼텍스트를 교체하려면 HBK가 복호화해야 합니다. [https://docs.aws.amazon.com/kms/latest/APIReference/API_ReEncrypt.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_ReEncrypt.html) API를 사용하여 KMS 키용 새 HBK로 또는 일반 텍스트를 노출하지 않고 다른 KMS 키로 사이퍼텍스트를 다시 암호화할 수 있습니다.

키 교체 활성화 및 비활성화에 대한 자세한 내용은 *AWS Key Management Service 개발자 안내서*에서 [AWS KMS 키 교체](https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html)를 참조하세요.