

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

# 데이터 키 생성
<a name="data-keys"></a>

*데이터 키*는 많은 양의 데이터 및 기타 데이터 암호화 키를 포함하여 데이터를 암호화하는 데 사용할 수 있는 대칭 키입니다. 다운로드할 수 없는 대칭 KMS 키와 달리 데이터 키는 AWS KMS외부 사용용으로 반환됩니다.

가 데이터 키를 AWS KMS 생성하면 즉시 사용할 수 있는 일반 텍스트 데이터 키(선택 사항)와 데이터와 함께 안전하게 저장할 수 있는 암호화된 데이터 키 사본을 반환합니다. 데이터를 해독할 준비가 되면 먼저 암호화된 데이터 키를 해독 AWS KMS 하도록에 요청합니다.

AWS KMS 는 데이터 키를 생성, 암호화 및 복호화합니다. 그러나 AWS KMS 는 데이터 키를 저장, 관리 또는 추적하거나 데이터 키를 사용하여 암호화 작업을 수행하지 않습니다. 외부에서 데이터 키를 사용하고 관리해야 합니다 AWS KMS. 데이터 키를 안전하게 사용하는 데 도움이 필요하면 [AWS Encryption SDK](https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/) 섹션을 참조하세요.

**Topics**
+ [데이터 키 생성](#data-keys-create)
+ [데이터 키를 사용한 암호화 작업의 작동 방식](#use-data-keys)
+ [사용할 수 없는 KMS 키가 데이터 키에 미치는 영향](unusable-kms-keys.md)

## 데이터 키 생성
<a name="data-keys-create"></a>

데이터 키를 생성하려면 [GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html) 작업을 호출합니다. 데이터 키를 AWS KMS 생성합니다. 그런 다음 KMS가 사용자에 의해 지정된 [대칭 암호화 KMS 키](symm-asymm-choose-key-spec.md#symmetric-cmks)로 데이터 키의 복사본을 암호화합니다. 이 작업은 데이터 키의 일반 텍스트 복사본과 KMS 키로 암호화된 데이터 키 복사본을 반환합니다. 다음 그림은 이 작업을 보여 줍니다.

![\[데이터 키 생성\]](http://docs.aws.amazon.com/ko_kr/kms/latest/developerguide/images/generate-data-key.png)


AWS KMS 는 암호화된 데이터 키만 반환하는 [GenerateDataKeyWithoutPlaintext](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyWithoutPlaintext.html) 작업도 지원합니다. 데이터 키를 사용해야 하는 경우 AWS KMS 에 [복호](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html)화를 요청합니다.

## 데이터 키를 사용한 암호화 작업의 작동 방식
<a name="use-data-keys"></a>

다음 주제에서는 [GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html) 또는 [GenerateDataKeyWithoutPlaintext](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyWithoutPlaintext.html) 작업에서 생성된 데이터 키의 작동 방식을 설명합니다.

### 데이터 키로 데이터 암호화
<a name="data-keys-encrypt"></a>

AWS KMS 는 데이터 키를 사용하여 데이터를 암호화할 수 없습니다. 그러나 OpenSSL 또는 AWS KMS와 같은 암호화 라이브러리를 사용하는 등 외부에서 데이터 키를 사용할 수 있습니다[AWS Encryption SDK](https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/).

일반 텍스트 데이터 키를 사용하여 데이터를 암호화한 다음에는 가능한 빨리 메모리에서 제거하세요. 데이터 암호화를 해제하는 데 사용할 수 있도록 암호화된 데이터와 함께 암호화된 데이터 키를 안전하게 저장할 수 있습니다.

![\[외부의 사용자 데이터 암호화 AWS KMS\]](http://docs.aws.amazon.com/ko_kr/kms/latest/developerguide/images/encrypt-with-data-key.png)


### 데이터 키로 데이터 해독
<a name="data-keys-decrypt"></a>

데이터를 해독하려면 암호화된 데이터 키를 [Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) 작업에 전달합니다. KMS 키를 AWS KMS 사용하여 데이터 키를 해독한 다음 일반 텍스트 데이터 키를 반환합니다. 일반 텍스트 데이터 키를 사용하여 데이터를 해독한 다음, 가능한 빨리 메모리에서 일반 텍스트 데이터 키를 제거하세요.

다음 다이어그램은 `Decrypt` 작업을 사용하여 암호화된 데이터 키를 암호화 해제하는 방법을 보여줍니다.

![\[데이터 키 해독\]](http://docs.aws.amazon.com/ko_kr/kms/latest/developerguide/images/decrypt.png)


# 사용할 수 없는 KMS 키가 데이터 키에 미치는 영향
<a name="unusable-kms-keys"></a>

KMS 키를 사용할 수 없게 되면 효과는 거의 즉각적으로 나타납니다(최종 일관성에 따라 다름). KMS 키의 [키 상태](key-state.md)는 새로운 조건을 반영하도록 변경되며 [암호화 작업](kms-cryptography.md#cryptographic-operations)에서 KMS 키를 사용하려는 모든 요청은 실패합니다.

그러나 KMS 키로 암호화된 데이터 키와 데이터 키로 암호화된 데이터에 미치는 영향은 데이터 키 복호화 등을 위해 KMS 키를 다시 사용할 때까지 지연됩니다.

수행할 수 있는 다음 작업을 포함하여 다양한 이유로 KMS 키를 사용할 수 없게 될 수 있습니다.
+ [KMS 키 비활성화](enabling-keys.md)
+ [KMS 키 삭제 예약](deleting-keys.md)
+ 가져온 키 구성 요소가 있는 KMS 키에서 [키 구성 요소 삭제](importing-keys-delete-key-material.md) 또는 가져온 키 구성 요소가 만료되도록 허용 오리진이 `EXTERNAL`인 KMS 키에 다중 키 구성 요소가 연결된 경우, 어느 하나라도 삭제되거나 만료되면 키를 사용할 수 없게 됩니다.
+ KMS [AWS CloudHSM 키를 호스팅하는 키 스토어의 연결을 해제](disconnect-keystore.md)하거나 KMS [키의 키 구성 요소 역할을 하는 AWS CloudHSM 클러스터에서 키를 삭제](fix-keystore.md#fix-cmk-failed)합니다.
+ KMS 키를 호스팅하는 [외부 키 스토어 연결 해제](about-xks-disconnecting.md) 또는 외부 키 관리자에서 외부 키 삭제를 포함하여 외부 키 스토어 프록시에 대한 암호화 및 복호화 요청을 방해하는 기타 작업

이 효과는 데이터 키를 사용하여 서비스가 관리하는 리소스를 보호하는 많은 AWS 서비스 사용자에게 특히 중요합니다. 다음 예제에서는 Amazon Elastic Block Store(Amazon EBS)와 Amazon Elastic Compute Cloud(Amazon EC2)를 사용합니다. 서로 다른 방식으로 데이터 키를 AWS 서비스 사용합니다. 자세한 내용은 AWS 서비스에 대한 보안 장의 데이터 보호 섹션을 참조하세요.

예를 들어 다음 시나리오를 고려해 보십시오.

1. [암호화된 EBS 볼륨을 생성](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-creating-volume.html)하고 KMS 키를 지정하여 보호합니다. Amazon EBS가 AWS KMS 에 KMS 키를 사용하여 볼륨에 대한 [암호화된 데이터 키를 생성](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyWithoutPlaintext.html)하도록 요청합니다. Amazon EBS는 볼륨의 메타데이터와 함께 암호화된 데이터 키를 저장합니다.

1. EC2 인스턴스에 EBS 볼륨을 연결하면 Amazon EC2는 KMS 키를 사용하여 EBS 볼륨의 암호화된 데이터 키를 복호화합니다. Amazon EC2는 Nitro 하드웨어의 데이터 키를 사용하며, 이 키는 EBS 볼륨에 모든 디스크 I/O를 암호화하는 작업을 담당합니다. EBS 볼륨이 EC2 인스턴스에 연결되어 있는 동안 데이터 키는 Nitro 하드웨어에 유지됩니다.

1. KMS 키를 사용할 수 없게 하는 작업을 수행합니다. 이로 인해 EC2 인스턴스나 EBS 볼륨에 즉시 영향이 미치지 않습니다. Amazon EC2는 KMS 키가 아닌 데이터 키를 사용하여 볼륨이 인스턴스에 연결되어 있는 동안 모든 디스크 I/O를 암호화합니다.

1. 단, 암호화된 EBS 볼륨이 EC2 인스턴스에서 삭제되면 Amazon EBS는 데이터 키를 Nitro 하드웨어에서 제거합니다. 다음에 암호화된 EBS 볼륨을 EC2 인스턴스에 연결할 때 Amazon EBS가 KMS 키를 사용하여 볼륨의 암호화된 데이터 키를 해독하지 못하므로 연결에 실패합니다. EBS 볼륨을 다시 사용하려면 KMS 키를 다시 사용할 수 있게 만들어야 합니다.