

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

# ステップ 2: ラップパブリックキーおよびインポートトークンのダウンロード
<a name="importing-keys-get-public-key-and-token"></a>

[キーマテリアル AWS KMS key なしで を作成](importing-keys-create-cmk.md)したら、 AWS KMS コンソールまたは [GetParametersForImport](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetParametersForImport.html) API を使用して、その KMS キーのラップパブリックキーとインポートトークンをダウンロードします。ラップパブリックキーとインポートトークンはセットであり分割できないので、組み合わせて使用する必要があります。

ラップパブリックキーは、転送用の[キーマテリアルを暗号化](importing-keys-encrypt-key-material.md)するために使用します。RSA ラッピングキーペアをダウンロードする前に、RSA ラッピングキーペアの長さ (キー仕様) と、[ステップ 3](importing-keys-encrypt-key-material.md) でインポートしたキーマテリアルを転送用に暗号化するために使用するラッピングアルゴリズムを選択します。 は SM2 ラッピングキー仕様 AWS KMS もサポートしています (中国リージョンのみ）。

各ラップパブリックキーとインポートトークンのセットは 24 時間有効です。それらを 24 時間以内にキーマテリアルのインポートに使用しなかった場合、新しいセットをダウンロードする必要があります。ラップパブリックキーとインポートトークンの新しいセットは、任意のタイミングでダウンロードが可能です。これにより、RSA ラップキーの長さ (キー仕様) を変更したり、紛失したセットを置き換えたりできます。

また、ラップパブリックキーとインポートトークンのセットをダウンロードして、KMS キーに[同じキーマテリアルを 再インポート](importing-keys-import-key-material.md#reimport-key-material)することもできます。このオペレーションは、キーマテリアルの有効期限を設定もしくは変更したり、期限切れまたは削除済みのキーマテリアルを復元したりする場合に実行します。キーマテリアルは、インポートするたびにダウンロードして再暗号化する必要があります AWS KMS。

**ラップパブリックキーの使用**  
ダウンロードには、ラップパブリックキーとも呼ばれる AWS アカウント、 に固有の*パブリックキー*が含まれています。  
キーマテリアルをインポートする前に、パブリックラッピングキーを使用してキーマテリアルを暗号化し、暗号化されたキーマテリアルを にアップロードします AWS KMS。は暗号化されたキーマテリアル AWS KMS を受信すると、対応するプライベートキーでキーマテリアルを復号し、AES 対称キーでキーマテリアルを再暗号化します。すべて AWS KMS ハードウェアセキュリティモジュール (HSM) 内で行われます。

**インポートトークンの使用**  
ダウンロードには、キーマテリアルが正しくインポートされたことを保証するメタデータが付随する、インポートトークンが含まれています。暗号化されたキーマテリアルを にアップロードするときは AWS KMS、このステップでダウンロードしたのと同じインポートトークンをアップロードする必要があります。

## ラップパブリックキーの仕様を選択
<a name="select-wrapping-key-spec"></a>

インポート中にキーマテリアルを保護するには、ダウンロード元のラップパブリックキー AWS KMSとサポートされている[ラップアルゴリズム](#select-wrapping-algorithm)を使用して暗号化します。ラップパブリックキーとインポートトークンをダウンロードする前に、キー仕様を選択します。すべてのラッピングキーペアは、 AWS KMS ハードウェアセキュリティモジュール (HSMs。プレーンテキストのプライベートキーが、HSM の外部に出ることはありません。

**RSA ラップキーの仕様**  
ラップパブリックキーの「キー仕様」によって、 AWS KMS への転送時にキーマテリアルを保護する RSA キーペアにおけるキーの長さが決まります。一般的には、実用的で最長のラップパブリックキーを使用することをお勧めします。各種の HSM やキーマネージャーをサポートするために、いくつかのラップパブリックキー仕様が提供されています。  
AWS KMS は、注記されている場合を除き、すべてのタイプのキーマテリアルをインポートするために使用される RSA ラッピングキーについて、次のキー仕様をサポートしています。  
+ RSA\$14096 (推奨)
+ RSA\$13072
+ RSA\$12048
**注記**  
ECC\$1NIST\$1P521 キーマテリアル、RSA\$12048 パブリックラップキー仕様、および RSAES\$1OAEP\$1SHA\$1\$1 ラップアルゴリズムの組み合わせはサポートされていません。  
RSA\$12048 パブリックラップキーを使用して、ECC\$1NIST\$1P521 のキーマテリアルを直接ラップすることはできません。大きなラップキー、または RSA\$1AES\$1KEY\$1WRAP\$1SHA\$1\$1 ラップアルゴリズムを使用してください。

**SM2 ラップキーの仕様 (中国リージョンのみ)**  
AWS KMS は、非対称キーマテリアルのインポートに使用される SM2 ラッピングキーについて、次のキー仕様をサポートしています。  
+ SM2

## ラップアルゴリズムの選択
<a name="select-wrapping-algorithm"></a>

インポート中にキーマテリアルを保護するには、ダウンロードしたラップパブリックキーと、サポートされているラップアルゴリズムを使用して、キーマテリアルを暗号化します。

AWS KMS は、いくつかの標準 RSA ラッピングアルゴリズムと 2 ステップハイブリッドラッピングアルゴリズムをサポートしています。基本的には、インポートしたキーマテリアルおよび[ラップキー仕様](#select-wrapping-key-spec)との互換性がある、最も安全なラップアルゴリズムを使用することをお勧めします。通常、ハードウェアセキュリティモジュール (HSM) がサポートするアルゴリズム、またはキーマテリアルを保護するキー管理システムを選択します。

次の表は、キーマテリアルと KMS キーの各タイプでサポートされているラップアルゴリズムを示しています。これらのアルゴリズムは、優先度順にリストされています。


| キーマテリアル | サポートされるラップアルゴリズムと仕様 | 
| --- | --- | 
| 対称暗号化キー 256 ビット AES キー   128 ビット SM4 キー (中国リージョンのみ) |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/kms/latest/developerguide/importing-keys-get-public-key-and-token.html)  | 
| 非対称 RSA プライベートキー  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/kms/latest/developerguide/importing-keys-get-public-key-and-token.html)  | 
| 非対称楕円曲線 (ECC) プライベートキー   RSA\$12048 ラップキー仕様の RSAES\$1OAEP\$1SHA\$1\$1 ラップアルゴリズムを使用して、ECC\$1NIST\$1P521 のキーマテリアルをラップすることはできません。 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/kms/latest/developerguide/importing-keys-get-public-key-and-token.html)  | 
| 非対称 SM2 プライベートキー (中国リージョンのみ) |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/kms/latest/developerguide/importing-keys-get-public-key-and-token.html)  | 
| HMAC キー |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/kms/latest/developerguide/importing-keys-get-public-key-and-token.html)  | 

**注記**  
`RSA_AES_KEY_WRAP_SHA_256` と `RSA_AES_KEY_WRAP_SHA_1` のラッピングアルゴリズムは、中国リージョンではサポートされていません。
+ `RSA_AES_KEY_WRAP_SHA_256` – 生成した AES 対称キーでキーマテリアルを暗号化し、その後、ダウンロードした RSA パブリックラップキーと RSAES\$1OAEP\$1SHA\$1256 ラップアルゴリズムによりAES 対称キーを暗号化する、2 段階のハイブリッドラップアルゴリズム。

  RSA プライベートキーマテリアルをラッピングするには、`RSA_AES_KEY_WRAP_SHA_*` ラッピングアルゴリズムが必要です。ただし、`SM2PKE` ラッピングアルゴリズムを使用する必要がある中国リージョンは除きます。
+ `RSA_AES_KEY_WRAP_SHA_1` – 生成した AES 対称キーでキーマテリアルを暗号化し、その後、ダウンロードした RSA ラップパブリックキーと RSAES\$1OAEP\$1SHA\$11 ラップアルゴリズムにより AES 対称キーを暗号化する、2 段階のハイブリッドラップアルゴリズム。

  RSA プライベートキーマテリアルをラッピングするには、`RSA_AES_KEY_WRAP_SHA_*` ラッピングアルゴリズムが必要です。ただし、`SM2PKE` ラッピングアルゴリズムを使用する必要がある中国リージョンは除きます。
+ `RSAES_OAEP_SHA_256` — SHA -256 ハッシュ関数を使用した最適な非対称暗号化パディング (OAEP) を使用する RSA 暗号化アルゴリズム。
+ `RSAES_OAEP_SHA_1` — SHA-1 ハッシュ関数を使用した最適な非対称暗号化パディング (OAEP) を使用する RSA 暗号化アルゴリズム。
+ `RSAES_PKCS1_V1_5` (廃止。2023 年 10 月 10 日現在、 AWS KMS は RSAES\$1PKCS1\$1V1\$15 ラップアルゴリズムをサポートしていません) – PKCS \$11 バージョン 1.5 で定義されたパディング形式を持つ RSA 暗号化アルゴリズム。
+ `SM2PKE` (中国リージョンのみ) – GM/T 0003.4-2012 の OSCCA によって定義される楕円曲線ベースの暗号化アルゴリズムです。

**Topics**
+ [ラップパブリックキーの仕様を選択](#select-wrapping-key-spec)
+ [ラップアルゴリズムの選択](#select-wrapping-algorithm)
+ [ラップパブリックキーとインポートトークンのダウンロード (コンソール)](#importing-keys-get-public-key-and-token-console)
+ [ラップパブリックキーとインポートトークンのダウンロード (AWS KMS API)](#importing-keys-get-public-key-and-token-api)

## ラップパブリックキーとインポートトークンのダウンロード (コンソール)
<a name="importing-keys-get-public-key-and-token-console"></a>

 AWS KMS コンソールを使用して、ラップパブリックキーとインポートトークンをダウンロードできます。

1. [キーマテリアルなしで KMS キーを作成するステップ](importing-keys-create-cmk.md#importing-keys-create-cmk-console)を完了し、**ラップキーとインポートトークンのダウンロード**のページが開いている場合は、[Step 10](#id-wrap-step) に進みます。

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/kms](https://console.aws.amazon.com/kms) で AWS Key Management Service (AWS KMS) コンソールを開きます。

1. を変更するには AWS リージョン、ページの右上隅にあるリージョンセレクターを使用します。

1. ナビゲーションペインで、**[カスタマーマネージドキー]** を選択します。
**ヒント**  
キーマテリアルは、**EXTERNAL (キーマテリアルのインポート)**  の **Origin** を持つ KMS キーにのみインポートできます。これは、キーマテリアルなしで KMS キーが作成されたことを示します。テーブルに [**オリジン**] 列を追加するには、右上隅の設定アイコン (![\[Gear or cog icon representing settings or configuration options.\]](http://docs.aws.amazon.com/ja_jp/kms/latest/developerguide/images/console-icon-settings-new.png)) を選択します。[**オリジン**] をオンにして、[**確認**] を選択します。

1. インポート保留中の KMS キーのエイリアスまたはキー ID を選択します。

1. [ **暗号構成** ] タブを選択し、その値を表示します。これらのタブは、**[General configuration]** (一般設定) セクションの下にあります。

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

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

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

1. **[ラップキー仕様の選択]** で、使用する KMS キーの設定を選択します。このキーの作成後は、キー仕様を変更することはできません。

1. <a name="id-wrap-step"></a>[**ラップアルゴリズムの選択**] で、キーマテリアルの暗号化に使用するオプションを選択します。オプションの詳細については、「[ラップアルゴリズムの選択](#select-wrapping-algorithm)」を参照してください。

1. **[ラップパブリックキーとインポートトークンをダウンロード]** を選択した後、ファイルを保存します。

   [**次へ**] オプションがある場合、今すぐプロセスを続行するには、[**次へ**] を選択します。後で続行するには、[**キャンセル**] を選択します。

1. 前のステップ (`Import_Parameters_<key_id>_<timestamp>`) で保存した `.zip` ファイルを解凍します。

   フォルダには以下のファイルが含まれています。
   + `WrappingPublicKey.bin` という名前のファイルにある、ラップパブリックキー。
   + `ImportToken.bin` という名前のファイルにある、インポートトークン。
   + README.txt という名前のテキストファイル。このファイルには、ラップパブリックキー、キーマテリアルの暗号化に使用するラップアルゴリズム、およびラップパブリックキーとインポートトークンの有効期限が切れる日時に関する情報が格納されています。

1. プロセスを続行する場合は、「[キーマテリアルの暗号化](importing-keys-encrypt-key-material.md)」を参照してください。

## ラップパブリックキーとインポートトークンのダウンロード (AWS KMS API)
<a name="importing-keys-get-public-key-and-token-api"></a>

パブリックキーとインポートトークンのダウンロードには、[GetParametersForImport](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetParametersForImport.html) API を使用します。インポートされたキーマテリアルに関連付けられる KMS キーを指定します。この KMS キーには、`EXTERNAL` の [Origin](create-keys.md#key-origin) 値が必要です。

**注記**  
ML-DSA KMS キーのキーマテリアルをインポートすることはできません。

この例では、`RSA_AES_KEY_WRAP_SHA_256` ラップアルゴリズム、RSA\$13072 ラップパブリックキーの仕様、およびサンプルキー ID を規定します。これらのサンプル値は、実際のダウンロードのための有効な値に置き換えます。キー ID には [キー 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) は使用できません。

```
$ aws kms get-parameters-for-import \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
    --wrapping-algorithm RSA_AES_KEY_WRAP_SHA_256 \
    --wrapping-key-spec RSA_3072
```

コマンドが成功した場合は、以下のような出力が表示されます。

```
{
    "ParametersValidTo": 1568290320.0,
    "PublicKey": "public key (base64 encoded)",
    "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
    "ImportToken": "import token (base64 encoded)"
}
```

次のステップのためにデータを準備します。パブリックキーとインポートトークンを base64 でデコードし、デコードされた値をファイルに保存します。

パブリックキーとインポートトークンを base64 でデコードするには、次を実行します。

1. base64 でエンコードされたパブリックキー (この例の出力では *パブリックキー (base64 エンコード済み)*) をコピーして、新しいファイルに貼り付けて、ファイルを保存します。ファイルに `PublicKey.b64` などの名前を付けます。

1. ファイル内容の base64 デコード、およびデコードされたデータの新しいファイルへの保存に、[OpenSSL](https://openssl.org/) を使用します。次の例では、前のステップ (`PublicKey.b64`) で保存したファイルのデータをデコードして、`WrappingPublicKey.bin` という名前の新しいファイルに出力を保存します。

   ```
   $ openssl enc -d -base64 -A -in PublicKey.b64 -out WrappingPublicKey.bin
   ```

1. base64 でエンコードされたインポートトークン (この例の出力では *インポートトークン (base64 エンコード済み)*) をコピーして、新しいファイルに貼り付けて、ファイルを保存します。`importtoken.b64` など、ファイルにわかりやすい名前を付けます。

1. ファイル内容の base64 デコード、およびデコードされたデータの新しいファイルへの保存に、[OpenSSL](https://openssl.org/) を使用します。次の例では、前のステップ (`ImportToken.b64`) で保存したファイルのデータをデコードして、`ImportToken.bin` という名前の新しいファイルに出力を保存します。

   ```
   $ openssl enc -d -base64 -A -in importtoken.b64 -out ImportToken.bin
   ```

[ステップ 3: キーマテリアルを暗号化する](importing-keys-encrypt-key-material.md) に進みます。