翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
キーマテリアルのインポート ステップ 2: ラップパブリックキーおよびインポートトークンのダウンロード
キーマテリアル AWS KMS keyなしで を作成したら、AWS KMSコンソールまたは GetParametersForImport API を使用して、その KMS キーの RSA ラップパブリックキーとインポートトークンをダウンロードします。ラップパブリックキーとインポートトークンはセットであり分割できないので、組み合わせて使用する必要があります。
ラップパブリックキーは、転送用のキーマテリアルを暗号化するために使用します。ダウンロードする前に、RSA ラップキーペアの長さ (キー仕様) と、インポートしたキーマテリアルを暗号化してステップ 3 で転送するためのラップアルゴリズムを選択します。
各ラップパブリックキーとインポートトークンのセットは 24 時間有効です。それらを 24 時間以内にキーマテリアルのインポートに使用しなかった場合、新しいセットをダウンロードする必要があります。ラップパブリックキーとインポートトークンの新しいセットは、任意のタイミングでダウンロードが可能です。これにより、RSA ラップキーの長さ (キー仕様) を変更したり、紛失したセットを置き換えたりできます。
また、ラップパブリックキーとインポートトークンのセットをダウンロードして、KMS キーに同じキーマテリアルを 再インポートすることもできます。このオペレーションは、キーマテリアルの有効期限を設定もしくは変更したり、期限切れまたは削除済みのキーマテリアルを復元したりする場合に実行します。キーマテリアルは、AWS KMS にインポートするたびにダウンロードと暗号化を行なう必要があります。
- ラップパブリックキーの使用
-
ダウンロードには、ラップパブリックキーとも呼ばれる、AWS アカウント に固有のパブリックキーも含まれます。
キーマテリアルをインポートする前に、ラップパブリックキーにより対象のキーマテリアルを暗号化してから、そのキーマテリアルを AWS KMS にアップロードします。暗号化されたキーマテリアルを受け取った AWS KMS では、対応するプライベートキーを使用してキーマテリアルを復号化した後に、AES対称キーによりそのキーマテリアルを再暗号化します。これらはすべて AWS KMS ハードウェアセキュリティモジュール (HSM) 内で実行されます。
- インポートトークンの使用
-
ダウンロードには、キーマテリアルが正しくインポートされたことを保証するメタデータが付随する、インポートトークンが含まれています。AWS KMS に暗号化されたキーマテリアルをアップロードする場合、このステップでダウンロードした同じインポートトークンをアップロードする必要があります。
ラップパブリックキーの仕様を選択
インポート中にキーマテリアルを保護するには、AWS KMS からダウンロードしたラップパブリックキーと、サポートされているラップアルゴリズムを使用してキーマテリアルを暗号化します。ラップパブリックキーとインポートトークンをダウンロードする前に、キー仕様を選択します。すべてのラップキーペアは、AWS KMS ハードウェアセキュリティモジュール (HSM) で生成されます。プレーンテキストのプライベートキーが、HSM の外部に出ることはありません。
ラップパブリックキーのキー仕様によって、AWS KMS への転送時にキーマテリアルを保護する RSA キーペアにおける、キーの長さが決まります。一般的には、実用的で最長のラップパブリックキーを使用することをお勧めします。各種の HSM やキーマネージャーをサポートするために、いくつかのラップパブリックキー仕様が提供されています。
AWS KMS では、特に明記されていない限り、すべてのタイプのキーマテリアルのインポートに使用される RSA ラップキーについて、以下の主要な仕様をサポートしています。
-
RSA_4096 (推奨)
-
RSA_3072
-
RSA_2048
注記
ECC_NIST_P521 キーマテリアル、RSA_2048 パブリックラップキー仕様、および RSAES_OAEP_SHA_* ラップアルゴリズムの組み合わせはサポートされていません。
RSA_2048 パブリックラップキーを使用して、ECC_NIST_P521 のキーマテリアルを直接ラップすることはできません。大きなラップキー、または RSA_AES_KEY_WRAP_SHA_* ラップアルゴリズムを使用してください。
ラップアルゴリズムの選択
インポート中にキーマテリアルを保護するには、ダウンロードしたラップパブリックキーと、サポートされているラップアルゴリズムを使用して、キーマテリアルを暗号化します。
AWS KMS は、複数の標準 RSA ラップアルゴリズムと、2 段階のハイブリッドラップアルゴリズムをサポートしています。基本的には、インポートしたキーマテリアルおよびラップキー仕様との互換性がある、最も安全なラップアルゴリズムを使用することをお勧めします。通常、ハードウェアセキュリティモジュール (HSM) がサポートするアルゴリズム、またはキーマテリアルを保護するキー管理システムを選択します。
次の表は、キーマテリアルと KMS キーの各タイプでサポートされているラップアルゴリズムを示しています。これらのアルゴリズムは、優先度順にリストされています。
キーマテリアル | サポートされるラップアルゴリズムと仕様 |
---|---|
対称暗号化キー 256 ビット AES キー
128 ビット SM4 キー (中国リージョンのみ) |
|
非対称 RSA プライベートキー |
|
非対称楕円曲線 (ECC) プライベートキー
RSA_2048 ラップキー仕様の RSAES_OAEP_SHA_* ラップアルゴリズムを使用して、ECC_NIST_P521 のキーマテリアルをラップすることはできません。 |
|
HMAC キー |
|
-
RSA_AES_KEY_WRAP_SHA_256
– 生成した AES 対称キーでキーマテリアルを暗号化し、その後、ダウンロードした RSA パブリックラップキーと RSAES_OAEP_SHA_256 ラップアルゴリズムによりAES 対称キーを暗号化する、2 段階のハイブリッドラップアルゴリズム。RSA プライベートキーマテリアルをラップするには、RSA_AES_KEY_WRAP_SHA_* ラップアルゴリズムが必要です。
-
RSA_AES_KEY_WRAP_SHA_1
– 生成した AES 対称キーでキーマテリアルを暗号化し、その後、ダウンロードした RSA ラップパブリックキーと RSAES_OAEP_SHA_1 ラップアルゴリズムにより AES 対称キーを暗号化する、2 段階のハイブリッドラップアルゴリズム。RSA プライベートキーマテリアルをラップするには、
RSA_AES_KEY_WRAP_SHA_*
ラップアルゴリズムが必要です。 -
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_PKCS1_V1_5 ラップアルゴリズムをサポートしていません) – PKCS #1 バージョン 1.5 で定義されているパディング形式を使用した RSA 暗号化アルゴリズム。
ラップパブリックキーとインポートトークンのダウンロード (コンソール)
AWS KMS コンソールを使用して、ラップパブリックキーとインポートトークンをダウンロードできます。
-
キーマテリアルなしで KMS キーを作成するステップを完了し、ラップキーとインポートトークンのダウンロードのページが開いている場合は、ステップ 9 に進みます。
-
AWS Management Console にサインインし、AWS Key Management Service (AWS KMS) コンソール (https://console.aws.amazon.com/kms
) を開きます。 -
AWS リージョン を変更するには、ページの右上隅にあるリージョンセレクターを使用します。
-
ナビゲーションペインで、[カスタマーマネージドキー] を選択します。
ヒント
キーマテリアルは、EXTERNAL (キーマテリアルのインポート) の Origin を持つ KMS キーにのみインポートできます。これは、キーマテリアルなしで KMS キーが作成されたことを示します。テーブルに [オリジン] 列を追加するには、右上隅の設定アイコン ( ) を選択します。[オリジン] をオンにして、[確認] を選択します。
-
インポート保留中の KMS キーのエイリアスまたはキー ID を選択します。
-
[ 暗号構成 ] タブを選択し、その値を表示します。これらのタブは、[General configuration] (一般設定) セクションの下にあります。
キーマテリアルは、EXTERNAL (キーマテリアルのインポート) の Origin として、KMS キーにのみインポートできます。インポートされたキーマテリアルで KMS キーを作成する方法の詳細については、キーの AWS KMS キーマテリアルのインポート を参照してください。
-
[キーマテリアル] タブを選択し、[キーマテリアルをインポート] を選択します。
[キーマテリアル] タブは、EXTERNAL (キーマテリアルのインポート) のOrigin 値が指定された KMS キー に対してのみ表示されます。
-
[ラップキー仕様の選択] で、使用する KMS キーの設定を選択します。このキーの作成後は、キー仕様を変更することはできません。
-
[ラップアルゴリズムの選択] で、キーマテリアルの暗号化に使用するオプションを選択します。オプションの詳細については、「ラップアルゴリズムの選択」を参照してください。
-
[ラップパブリックキーとインポートトークンをダウンロード] を選択した後、ファイルを保存します。
[次へ] オプションがある場合、今すぐプロセスを続行するには、[次へ] を選択します。後で続行するには、[キャンセル] を選択します。
-
前のステップ (
Import_Parameters_
) で保存した<key_id>
_<timestamp>
.zip
ファイルを解凍します。フォルダには以下のファイルが含まれています。
-
WrappingPublicKey.bin
という名前のファイルにある、RSA ラップパブリックキー。 -
ImportToken.bin
という名前のファイルにある、インポートトークン。 -
README.txt という名前のテキストファイル。このファイルには、ラップパブリックキー、キーマテリアルの暗号化に使用するラップアルゴリズム、およびラップパブリックキーとインポートトークンの有効期限が切れる日時に関する情報が格納されています。
-
-
プロセスを続行する場合は、「キーマテリアルの暗号化」を参照してください。
ラップパブリックキーとインポートトークンのダウンロード (AWS KMS API)
パブリックキーとインポートトークンをダウンロードするには、 GetParametersForImport API を使用します。インポートされたキーマテリアルに関連付けられる KMS キーを指定します。この KMS キーには、EXTERNAL
の Origin 値が必要です。
この例では、RSA_AES_KEY_WRAP_SHA_256
ラップアルゴリズム、RSA_3072 ラップパブリックキーの仕様、およびサンプルキー ID を規定します。これらのサンプル値は、実際のダウンロードのための有効な値に置き換えます。このオペレーションでは、キーの識別子としてキー ID またはキー ARN を使用できますが、エイリアス名やエイリアス ARN を使用することはできません。
$
aws kms get-parameters-for-import \ --key-id
1234abcd-12ab-34cd-56ef-1234567890ab
\ --wrapping-algorithmRSA_AES_KEY_WRAP_SHA_256
\ --wrapping-key-specRSA_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 でデコードするには、次を実行します。
-
base64 でエンコードされたパブリックキー (この例の出力では
パブリックキー (base64 エンコード済み)
) をコピーして、新しいファイルに貼り付けて、ファイルを保存します。ファイルにPublicKey.b64
などの名前を付けます。 -
ファイル内容の base64 デコード、およびデコードされたデータの新しいファイルへの保存に、OpenSSL
を使用します。次の例では、前のステップ ( PublicKey.b64
) で保存したファイルのデータをデコードして、WrappingPublicKey.bin
という名前の新しいファイルに出力を保存します。$
openssl enc -d -base64 -A -in PublicKey.b64 -out WrappingPublicKey.bin
-
base64 でエンコードされたインポートトークン (この例の出力では
インポートトークン (base64 エンコード済み)
) をコピーして、新しいファイルに貼り付けて、ファイルを保存します。importtoken.b64
など、ファイルにわかりやすい名前を付けます。 -
ファイル内容の base64 デコード、およびデコードされたデータの新しいファイルへの保存に、OpenSSL
を使用します。次の例では、前のステップ ( ImportToken.b64
) で保存したファイルのデータをデコードして、ImportToken.bin
という名前の新しいファイルに出力を保存します。$
openssl enc -d -base64 -A -in importtoken.b64 -out ImportToken.bin
ステップ 3: キーマテリアルを暗号化する に進みます。