翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
ステップ 2: ラップパブリックキーおよびインポートトークンのダウンロード
キーマテリアル AWS KMS key なしで を作成したら、 AWS KMS コンソールまたは GetParametersForImport API を使用して、その KMS キーのラップパブリックキーとインポートトークンをダウンロードします。ラップパブリックキーとインポートトークンはセットであり分割できないので、組み合わせて使用する必要があります。
ラップパブリックキーは、転送用のキーマテリアルを暗号化するために使用します。RSA ラッピングキーペアをダウンロードする前に、RSA ラッピングキーペアの長さ (キー仕様) と、ステップ 3 でインポートしたキーマテリアルを転送用に暗号化するために使用するラッピングアルゴリズムを選択します。 は SM2 ラッピングキー仕様 (中国リージョンのみ) AWS KMS もサポートしています。
各ラップパブリックキーとインポートトークンのセットは 24 時間有効です。それらを 24 時間以内にキーマテリアルのインポートに使用しなかった場合、新しいセットをダウンロードする必要があります。ラップパブリックキーとインポートトークンの新しいセットは、任意のタイミングでダウンロードが可能です。これにより、RSA ラップキーの長さ (キー仕様) を変更したり、紛失したセットを置き換えたりできます。
また、ラップパブリックキーとインポートトークンのセットをダウンロードして、KMS キーに同じキーマテリアルを 再インポートすることもできます。このオペレーションは、キーマテリアルの有効期限を設定もしくは変更したり、期限切れまたは削除済みのキーマテリアルを復元したりする場合に実行します。キーマテリアルは、インポートするたびにダウンロードして再暗号化する必要があります AWS KMS。
- ラップパブリックキーの使用
-
ダウンロードには、ラップパブリックキーとも呼ばれる AWS アカウント、 に固有のパブリックキーが含まれています。
キーマテリアルをインポートする前に、パブリックラッピングキーを使用してキーマテリアルを暗号化し、暗号化されたキーマテリアルを にアップロードします AWS KMS。は、暗号化されたキーマテリアル AWS KMS を受け取ると、対応するプライベートキーを使用してキーマテリアルを復号し、AES 対称キーでキーマテリアルを再暗号化します。すべて AWS KMS ハードウェアセキュリティモジュール (HSM) 内で行われます。
- インポートトークンの使用
-
ダウンロードには、キーマテリアルが正しくインポートされたことを保証するメタデータが付随する、インポートトークンが含まれています。暗号化されたキーマテリアルを にアップロードするときは AWS KMS、このステップでダウンロードしたのと同じインポートトークンをアップロードする必要があります。
ラップパブリックキーの仕様を選択
インポート中にキーマテリアルを保護するには、ダウンロード元のラップパブリックキーと AWS KMS、サポートされているラップアルゴリズムを使用してキーマテリアルを暗号化します。ラップパブリックキーとインポートトークンをダウンロードする前に、キー仕様を選択します。すべてのラッピングキーペアは、 AWS KMS ハードウェアセキュリティモジュール (HSMs。プレーンテキストのプライベートキーが、HSM の外部に出ることはありません。
- RSA ラップキーの仕様
-
ラップパブリックキーのキー仕様によって、 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_* ラップアルゴリズムを使用してください。
-
- SM2 ラップキーの仕様 (中国リージョンのみ)
-
AWS KMS は、非対称キーマテリアルのインポートに使用される SM2 ラッピングキーについて、次のキー仕様をサポートしています。
-
SM2
-
ラップアルゴリズムの選択
インポート中にキーマテリアルを保護するには、ダウンロードしたラップパブリックキーと、サポートされているラップアルゴリズムを使用して、キーマテリアルを暗号化します。
AWS KMS は、いくつかの標準 RSA ラップアルゴリズムと 2 ステップのハイブリッドラップアルゴリズムをサポートしています。基本的には、インポートしたキーマテリアルおよびラップキー仕様との互換性がある、最も安全なラップアルゴリズムを使用することをお勧めします。通常、ハードウェアセキュリティモジュール (HSM) がサポートするアルゴリズム、またはキーマテリアルを保護するキー管理システムを選択します。
次の表は、キーマテリアルと KMS キーの各タイプでサポートされているラップアルゴリズムを示しています。これらのアルゴリズムは、優先度順にリストされています。
キーマテリアル | サポートされるラップアルゴリズムと仕様 |
---|---|
対称暗号化キー 256 ビット AES キー
128 ビット SM4 キー (中国リージョンのみ) |
|
非対称 RSA プライベートキー |
|
非対称楕円曲線 (ECC) プライベートキー
RSA_2048 ラップキー仕様の RSAES_OAEP_SHA_* ラップアルゴリズムを使用して、ECC_NIST_P521 のキーマテリアルをラップすることはできません。 |
|
非対称 SM2 プライベートキー (中国リージョンのみ) |
|
HMAC キー |
|
注記
RSA_AES_KEY_WRAP_SHA_256
と RSA_AES_KEY_WRAP_SHA_1
のラッピングアルゴリズムは、中国リージョンではサポートされていません。
-
RSA_AES_KEY_WRAP_SHA_256
– 生成した AES 対称キーでキーマテリアルを暗号化し、その後、ダウンロードした RSA パブリックラップキーと RSAES_OAEP_SHA_256 ラップアルゴリズムによりAES 対称キーを暗号化する、2 段階のハイブリッドラップアルゴリズム。RSA プライベートキーマテリアルをラッピングするには、
RSA_AES_KEY_WRAP_SHA_*
ラッピングアルゴリズムが必要です。ただし、SM2PKE
ラッピングアルゴリズムを使用する必要がある中国リージョンは除きます。 -
RSA_AES_KEY_WRAP_SHA_1
– 生成した AES 対称キーでキーマテリアルを暗号化し、その後、ダウンロードした RSA ラップパブリックキーと RSAES_OAEP_SHA_1 ラップアルゴリズムにより 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 日現在、RSAES_PKCS1_V1_5 ラップアルゴリズムはサポート AWS KMS していません) – PKCS #1 バージョン 1.5 で定義されたパディング形式の RSA 暗号化アルゴリズム。 -
SM2PKE
(中国リージョンのみ) – GM/T 0003.4-2012 の OSCCA によって定義される楕円曲線ベースの暗号化アルゴリズムです。
ラップパブリックキーとインポートトークンのダウンロード (コンソール)
AWS KMS コンソールを使用して、ラップパブリックキーとインポートトークンをダウンロードできます。
-
キーマテリアルなしで KMS キーを作成するステップを完了し、ラップキーとインポートトークンのダウンロードのページが開いている場合は、ステップ 9 に進みます。
-
にサインイン AWS Management Console し、https://console.aws.amazon.com/kms
で AWS Key Management Service (AWS 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
という名前のファイルにある、ラップパブリックキー。 -
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: キーマテリアルを暗号化する に進みます。