

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# データキーを生成する
<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 キー](symm-asymm-choose-key-spec.md#symmetric-cmks)のデータキーのコピーを暗号化します。このオペレーションでは、データキーのプレーンテキストコピーと KMS キーで暗号化されたデータキーのコピーが返されます。以下の図では、このオペレーションを示しています。

![\[データキーを生成する\]](http://docs.aws.amazon.com/ja_jp/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 は、データキーを使用してデータを暗号化することはできません。ただし AWS KMS、OpenSSL や などの暗号化ライブラリを使用するなど、 の外部でデータキーを使用できます[AWS Encryption SDK](https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/)。

プレーンテキストのデータキーを使用してデータを暗号化したら、できる限り早急にメモリからそれを削除します。暗号化したデータと一緒に暗号化データキーを安全に保存して、データの復号に利用することができます。

![\[の外部でユーザーデータを暗号化する AWS KMS\]](http://docs.aws.amazon.com/ja_jp/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) オペレーションに渡します。 AWS KMS は KMS キーを使用してデータキーを復号し、プレーンテキストのデータキーを返します。プレーンテキストのデータキーを使ってデータを復号し、続いてできる限り早急にメモリからプレーンテキストのデータキーを削除します。

以下の図では、`Decrypt` オペレーションを使用して暗号化されたデータキーを復号する方法を示しています。

![\[データキーの復号\]](http://docs.aws.amazon.com/ja_jp/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 は、KMS キーを使用してボリュームの[暗号化されたデータキーを生成する](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyWithoutPlaintext.html)よう、 AWS KMS に要求します。Amazon EBS は、暗号化されたデータキーをボリュームのメタデータとともに保存します。

1. EBS ボリュームを EC2 インスタンスにアタッチすると、Amazon EC2 は、KMS キーを使用して EBS ボリュームの暗号化されたデータキーを復号します。Amazon EC2 は、EBS ボリュームに対するすべてのディスク I/O を暗号化する責任を担う Nitro ハードウェア内のデータキーを使用します。データキーは、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 キーを再度使用可能にする必要があります。