

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

# ステップ 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)で異なります。新しいキーマテリアルを KMS キーに関連付けるには、[ImportKeyMaterial](https://docs.aws.amazon.com/kms/latest/APIReference/API_ImportKeyMaterial.html) アクションで `importType` パラメータを `NEW_KEY_MATERIAL` に設定する必要があります。オプションの `ImportType` パラメータのデフォルト値は `EXISTING_KEY_MATERIAL` です。`ImportType` パラメータを省略するか、`EXISTING_KEY_MATERIAL` として指定するときは、以前に KMS キーに関連付けたキーマテリアルをインポートする必要があります。

非対称キーまたは`EXTERNAL`オリジンを持つ HMAC KMS キーの場合、キーに関連付けることができるキーマテリアルは 1 つだけです。 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 を使用します。HTTP リクエストを作成することにより、または [AWS SDKs](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/) を使用することにより、直接 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)することができますが、元のキーマテリアルのコピーを保持するための要件は同じです。

キーマテリアルをインポートするときに、インポートしたキーマテリアルの有効期限が切れているかどうか、および、いつ切れるのかを判断します。ただし、キーマテリアルを削除して再インポートすれば、有効期限を有効化または無効化することや、新しい有効期限を設定することができます。有効期限を有効 (`KEY_MATERIAL_EXPIRES`) および無効 (`KEY_MATERIAL_DOES_NOT_EXPIRE`) にするときは [ImportKeyMaterial](https://docs.aws.amazon.com/kms/latest/APIReference/API_ImportKeyMaterial.html) の `ExpirationModel` パラメーターを使用し、有効期限を設定するときは `ValidTo` パラメータを使用します。最大日数はインポートした日から 365 日目です。最小日数はありませんが、時刻は未来の時刻でなければなりません。

## キーマテリアルの説明を設定する
<a name="set-key-material-description"></a>

`EXTERNAL` オリジンを持つ対称暗号化キーには、複数のキーマテリアルを関連付けることができます。このようなキーにキーマテリアルをインポートするときに、オプションのキーマテリアルの説明を指定できます。説明を使用して、対応するキーマテリアルが AWS KMSの外部で永続的に維持されている場所を追跡できます。

マルチリージョンキーの場合、キーマテリアルの説明はプライマリリージョンキーでのみ設定または変更できます。 は、キーマテリアルの説明をレプリカリージョンキー AWS KMS に自動的に伝達します。

## 新しいキーマテリアルのインポート
<a name="import-new-key-material"></a>

インポートされたキーマテリアルを持つ対称暗号化 KMS キーでオンデマンドローテーションを実行するには、以前にキーに関連付けられていない新しいキーマテリアルを最初にインポートする必要があります。
+ **単一リージョンキー**
  + このタスクを実行するには、`NEW_KEY_MATERIAL` に設定された `ImportType` パラメータで [ImportKeyMaterial](https://docs.aws.amazon.com/kms/latest/APIReference/API_ImportKeyMaterial.html) を使用します。このキーマテリアルは、[RotateKeyOnDemand](https://docs.aws.amazon.com/kms/latest/APIReference/API_RotateKeyOnDemand.html) オペレーションを実行するか、 でキーをローテーションするまで、キーに永続的に関連付けられません AWS マネジメントコンソール。それまでは、このキーマテリアルは `PENDING_ROTATION` 状態です。KMS キーは、いつでも最大 1 つのキーマテリアルを `PENDING_ROTATION` 状態にすることができます。`PENDING_ROTATION` 状態のキーマテリアルは、暗号化オペレーションにおけるキーのユーザビリティに影響を与えることなく削除できます。
+ **マルチリージョンキー**
  + キーマテリアルをマルチリージョンキーにインポートするには、まず新しいキーマテリアルをプライマリリージョンキーにインポートする必要があります。新しいキーマテリアルをレプリカリージョンキーに直接インポートすることはできません。新しいキーマテリアルをプライマリリージョンキーにインポートした後、同じキーマテリアルをレプリカリージョンキーにインポートできます。
  + プライマリリージョンキーの `ImportType`パラメータを **NEW\$1KEY\$1MATERIAL** に設定して [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`状態のキーマテリアルを最大 1 つ持つことができます ([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 マネジメントコンソール をインポートできます。

1. 「**ラップされたキーマテリアルのアップロード**」のページが表示されている場合は、[Step 10](#id-key-materials-step) に進んでください。

1. にサインイン AWS マネジメントコンソール し、[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. [ **暗号構成** ] タブを選択し、その値を表示します。タブは、KMS キーの詳細ページの**一般設定**セクションにあります。

   キーマテリアルは、**EXTERNAL (キーマテリアルのインポート)** の **Origin** を含む KMS キーにのみインポートできます。インポートされたキーマテリアルで KMS キーを作成する方法の詳細については、[キーの AWS KMS キーマテリアルのインポート](importing-keys.md) を参照してください。

1. キータイプに基づいて適切なタブを選択します。
   + 非対称キーと HMAC キーの場合は、**キーマテリアル**タブを選択します。
   + 対称暗号化キーの場合は、**キーマテリアルとローテーション**タブを選択します。

1. インポートアクションを選択します。
   + 非対称キーと HMAC キーの場合は、**キーマテリアルのインポート**を選択します。
   + 対称暗号化キーの場合は、次のいずれかを選択します。
     + **初期キーマテリアルをインポート**する (キーマテリアルがまだインポートされていない場合)
     + **新しいキーマテリアルをインポート**する (ローテーション用の新しいマテリアルを追加するには)
     + **キーマテリアルを再インポート**する (キーマテリアルテーブルの**アクション**メニューから使用可能)
**注記**  
マルチリージョンキーの場合は、まず新しいキーマテリアルをプライマリリージョンキーにインポートする必要があります。次に、同じキーマテリアルを各レプリカリージョンキーにインポートします。  
プライマリマルチリージョンキーの場合、**キーマテリアル**テーブルには、すべての**レプリカリージョン (「0 of 3 imported」など) のインポートステータスを表示するレプリカインポート状態**列が含まれます。レプリカのインポート状態値を選択すると、各レプリカリージョンのインポートステータスを示すモーダルが開きます。モーダルは、新しい**キーマテリアルがインポート**されていないレプリカリージョンのインポートキーマテリアルリンクを提供します。

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. [**有効期限オプション**] セクションで、キーマテリアルの有効期限が切れているかどうかを判断します。有効期限の日時を設定するには、[**キーマテリアルの有効期限**] を選択し、カレンダーを使用して日付と時刻を選択します。現在の日付から 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 キーを識別するには、その[キー 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` が表示されることがあります。リクエストは再試行できます。