キーマテリアルのインポート ステップ 2: パブリックキーおよびインポートトークンのダウンロード - AWS Key Management Service

キーマテリアルのインポート ステップ 2: パブリックキーおよびインポートトークンのダウンロード

キーマテリアルを持たない対称暗号化 AWS KMS key を作成したら、その KMS キーのパブリックキーとインポートトークンをダウンロードします。キーマテリアルをインポートするためにはこれらの項目が必要です。AWS Management Console または AWS KMS API を使用して両方の項目を 1 ステップでダウンロードできます。

KMS キーに同じキーマテリアルを再インポートする場合も、これらの項目をダウンロードできます。このオペレーションは、キーマテリアルの有効期限を変更したり、期限切れまたは削除されたキーマテリアルを復元したりする場合に実行します。

パブリックキーの使用

キーマテリアルをインポートする場合は、raw キーマテリアルを AWS KMS にアップロードしません。最初に、このステップでダウンロードしたパブリックキーでキーマテリアルを暗号化してから、AWS KMS にキーマテリアルをアップロードする必要があります。AWS KMS が暗号化されたキーマテリアルを受け取ると、対応するプライベートキーを使用して復号を行います。AWS KMS から受け取った公開キーは 2048 ビットの RSA 公開キーで、必ず AWS アカウント アカウントで一意です。

インポートトークンの使用

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

ラップアルゴリズムの選択

インポート中にキーマテリアルを保護するには、ラップキーとラップアルゴリズムを使用してキーマテリアル暗号化します。通常、ハードウェアセキュリティモジュール (HSM) がサポートするアルゴリズム、またはキーマテリアルを保護するキー管理システムを選択します。以下で選択して指定される、3 つのうち 1 つのパディングオプションを使用した RSA PKCS #1 暗号化スキームを使用する必要があります。これらの選択肢は AWS で指定した順に一覧表示されます。これらの選択肢によって表されるスキームの技術的な詳細については、「PKCS #1 バージョン 2.1 標準」のセクション 7 で説明されています。

  • RSAES_OAEP_SHA_256 — SHA -256 ハッシュ関数を使用した最適な非対称暗号化パディング (OAEP) を使用する RSA 暗号化アルゴリズム。

  • RSAES_OAEP_SHA_1 — SHA-1 ハッシュ関数を使用した最適な非対称暗号化パディング (OAEP) を使用する RSA 暗号化アルゴリズム。

  • RSAES_PKCS1_V1_5 — PK CS #1 バージョン 1.5 で定義されているパディング形式による RSA 暗号化アルゴリズム。

注記

OpenSSL でキーマテリアルを暗号化する顧客概念実証の例をステップ 3 で試す場合には、RSAES_OAEP_SHA_1 を使用します。

HSM またはキー管理システムがサポートしている場合は、RSAES_OAEP_SHA_256 をキーマテリアルの暗号化に使用することをお勧めします。このオプションが使用できない場合、RSAES_OAEP_SHA_1 を使用する必要があります。OAEP オプションのいずれも使用できない場合、RSAES_PKCS1_V1_5 を使用する必要があります。キーマテリアルを暗号化する方法については、ハードウェアセキュリティモジュールまたはキーマテリアルを保護するキー管理システムのドキュメントを参照してください。

パブリックキーとインポートトークンは 24 時間有効です。それらを 24 時間以内にキーマテリアルのインポートに使用しなかった場合、新しいパブリックキーとインポートトークンをダウンロードする必要があります。

パブリックキーとインポートトークンのダウンロードには、AWS Management Console または AWS KMS API を使用できます。HTTP リクエストを作成することにより、または AWS SDKsAWS Command Line Interface または AWS Tools for PowerShell を使用することにより、直接 API を使用できます。

パブリックキーをダウンロードしてトークンをインポートすると、GetParametersForImport エントリが AWS CloudTrail ログに追加され、GetParametersForImport オペレーションを記録します。CloudTrail エントリは、AWS KMS コンソールまたは AWS KMS API のどちらを使用する場合でも同じです。

公開鍵とインポートトークンのダウンロード(コンソール)

AWS Management Console を使用してパブリックキーとインポートトークンをダウンロードできます。

  1. キーマテリアルなしで KMS キーを作成するステップを完了し、ラップキーとインポートトークンのダウンロードのページが開いている場合は、ステップ 8 に進みます。

  2. AWS Management Console にサインインし、AWS Key Management Service (AWS KMS) コンソール (https://console.aws.amazon.com/kms) を開きます。

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

  4. ナビゲーションペインで、[Customer managed keys (カスタマー管理型のキー)] を選択します。

    ヒント

    キーマテリアルをインポートできるのは、[Origin] (オリジン) が [EXTERNAL] (外部) の対称暗号化 KMS キーのみです。これは、キーマテリアルなしで KMS キーが作成されたことを示します。テーブルに [オリジン] 列を追加するには、右上隅の設定アイコン ( ) を選択します。[オリジン] をオンにして、[確認] を選択します。

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

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

    [Symmetric] (対称) の [Key type] (キータイプ) および EXTERNAL の [Origin] (オリジン) で、キーマテリアルのみを KMS キーにインポートできます。インポートされたキーマテリアルで KMS キーを作成する方法の詳細については、AWS KMS キーにキーマテリアルをインポートする を参照してください。

  7. [ キーのマテリアル ] タブを選択し、[ ラッピングキーとインポートトークンをダウンロード] を選択します。

    [Key material] (キーマテリアル) タブが表示されるのは、[Origin] (オリジン) 値が [EXTERNAL] (外部) になっている対称暗号化 KMS キーのみです。

  8. [ラップアルゴリズムの選択] で、キーマテリアルの暗号化に使用するオプションを選択します。オプションの詳細については、「ラップアルゴリズムの選択」を参照してください。

    OpenSSL でキーマテリアルを暗号化する顧客概念実証の例をステップ 3 で試す場合には、RSAES_OAEP_SHA_1 を選択します。

  9. [ラップキーとインポートトークンのダウンロード] を選択して、ファイルを保存します。

    [次へ] オプションがある場合、今すぐプロセスを続行するには、[次へ] を選択します。後で続行するには、[キャンセル] を選択します。それ以外の場合は、ウィンドウを閉じるため、[キャンセル] を選択するか、または [X] をクリックします。

  10. 前のステップ (ImportParameters.zip) で保存した .zip ファイルを解凍します。

    フォルダには以下のファイルが含まれています。

    • wrappingKey_KMS key_key_ID_timestamp (wrappingKey_f44c4e20-f83c-48f4-adc6-a1ef38829760_0809092909 など)という名前のファイルにあるラップキー (公開キー)。これは、2048 ビットの RSA パブリックキーです。

    • importToken_KMS key_key_ID_timestamp (importToken_f44c4e20-f83c-48f4-adc6-a1ef38829760_0809092909 など) という名前のファイルにあるインポートトークン。

    • README_KMS key_key_ID_timestamp.txt (README_f44c4e20-f83c-48f4-adc6-a1ef38829760_0809092909.txt など) という名前のテキストファイル。このファイルには、ラップキー (パブリックキー) に関する情報、キーマテリアルの暗号化に使用するラップアルゴリズム、およびラップキー (パブリックキー) とインポートトークンの有効期限が切れる日時が含まれます。

  11. プロセスを続行する場合は、「キーマテリアルの暗号化」を参照してください。

公開キーとインポートトークン (AWS KMS API) をダウンロードする

AWS KMS API を公開キーとインポートトークンのダウンロードに使用するには、これらの項目をダウンロードする KMS キーを指定する GetParametersForImport リクエストを送信します。次の例では、AWS CLI を使用してこのオペレーションを行う方法を示します。

この例では、暗号化オプションとして RSAES_OAEP_SHA_1 を指定します。別のオプションを指定するには、RSAES_OAEP_SHA_1RSAES_OAEP_SHA_256 または RSAES_PKCS1_V1_5 に置き換えます。1234abcd-12ab-34cd-56ef-1234567890ab を、公開キーとインポートトークンをダウンロードする KMS キーのキー ID と置き換えます。KMS キーのキー ID または Amazon リソースネーム (ARN) を使用できますが、このオペレーションにエイリアスを使用することはできません。

注記

OpenSSL でキーマテリアルを暗号化する顧客概念実証の例をステップ 3 で試す場合には、RSAES_OAEP_SHA_1 を指定します。

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

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

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

この出力を受け取る場合、base64 エンコードされたパブリックキーを保存し、個々のファイルにおいてトークンをインポートします。次に、各ファイルをバイナリデータに base64 デコードして、バイナリデータを新しいファイルに保存します。こうして後の手順のために項目を準備します。次の例を参照してください。

後の手順のためにパブリックキーとインポートトークンを準備するには

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

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

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

インポートトークンにこれらの 2 つの手順を繰り返し、「ステップ 3: キーマテリアルを暗号化する」に進みます。