パブリックキーのダウンロード - AWS Key Management Service

パブリックキーのダウンロード

AWS Management Console または AWS KMS API を使用して、非対称 KMS キーペアからパブリックキーを表示、コピー、ダウンロードできます。非対称 KMS キーに対する kms:GetPublicKey アクセス許可が必要です。

各非対称 KMS キーペアは、AWS KMS を暗号化されないままにしないプライベートキーと、ダウンロードして共有できるパブリックキーで構成されます。

パブリックキーを共有して、プライベートキーでのみ復号できる AWS KMS 外部のデータを他のユーザーが暗号化できるようにすることもできます。または、プライベートキーを使用して生成した AWS KMS の外部にあるデジタル署名を他のユーザーが確認できるようにすることができます。

AWS KMS 内の非対称 KMS キーでパブリックキーを使用すると、すべての AWS KMS オペレーションの一部である認証、認可、ロギングの利点を得ることができます。また、復号できないデータを暗号化するリスクも軽減します。これらの機能は、AWS KMS の外部では有効ではありません。詳細については、「パブリックキーのダウンロードに関する特別な考慮事項」を参照してください。

ヒント

データキーまたは SSH キーをお探しですか。このトピックでは、プライベートキーをエクスポートすることができない AWS Key Management Service での非対称キーの管理方法を説明しています。プライベートキーが対称暗号化 KMS キーで保護されているエクスポート可能なデータキーペアについては、「GenerateDataKeyPair」を参照してください。Amazon EC2 インスタンスに関連付けられたパブリックキーのダウンロード方法については、「Linux インスタンス用 Amazon EC2 ユーザーガイド」および「Windows インスタンス用 Amazon EC2 ユーザーガイド」の「パブリックキーの取得」を参照してください。

パブリックキーのダウンロードに関する特別な考慮事項

KMS キーを保護するために、AWS KMS は、アクセス制御、認証された暗号化、すべてのオペレーションの詳細なログを提供します。AWS KMS は、KMS キーの使用を一時的または永続的に阻止することもできます。最後に、AWS KMS オペレーションは、復号できないデータを暗号化するリスクを最小限に抑えるように設計されています。これらの機能は、ダウンロードしたパブリックキーを AWS KMS の外部で使用する場合には使用できません。

承認

AWS KMS 内の KMS キーへのアクセスを制御するキーポリシーおよび IAM ポリシーは、AWS の外部で実行されるオペレーションには影響しません。パブリックキーを取得できるユーザーは、KMS キーで、データを暗号化、または署名を検証する許可がない場合でも、AWS KMS の外部でパブリックキーを使用できます。

キーの用途の制限

キーの用途の制限は、AWS KMS の外部では有効ではありません。SIGN_VERIFYKeyUsage を持つ KMS キーで Encrypt オペレーションを呼び出すと、AWS KMS オペレーションは失敗します。ただし、SIGN_VERIFYKeyUsage で、KMS キーからパブリックキーを使用して AWS KMS の外部のデータを暗号化する場合、データを復号することはできません。

アルゴリズムの制限

AWS KMS がサポートする暗号化および署名アルゴリズムの制限は、AWS KMS の外部では有効ではありません。AWS KMS の外部の KMS キーからのパブリックキーを使用してデータを暗号化し、AWS KMS がサポートしていない暗号化アルゴリズムを使用すると、データを復号できません。

KMS キーの無効化と削除

AWS KMS 内の暗号化オペレーションで KMS キーの使用を阻止するために実行できるアクションは、AWS KMS の外部でパブリックキーを使用することを妨げません。例えば、KMS キーの無効化、KMS キーの削除のスケジューリング、KMS キーの削除、KMS キーからのキーマテリアルの削除は、AWS KMS の外部のパブリックキーには影響しません。非対称 KMS キーを削除、またはそのキーマテリアルを削除したり紛失したりすると、AWS KMS の外部にあるパブリックキーで暗号化したデータを回復できなくなります。

ログ記録

AWS CloudTrail ログは、リクエスト、レスポンス、日付、時刻、許可されたユーザーなど、すべての AWS KMS オペレーションを記録しますが、AWS KMS の外部でのパブリックキーの使用は記録されません。

SM2 キーペアによるオフライン検証 (中国リージョンのみ)

SM2 パブリックキーを使用して AWS KMS の外部で署名を検証するには、識別 ID を指定する必要があります。デフォルトでは、AWS KMS は識別 ID として 1234567812345678 を使用します。詳細については、「SM2 キーペアによるオフライン検証」(中国リージョンのみ) を参照してください。

パブリックキーをダウンロードする (コンソール)

AWS Management Console を使用して、AWS アカウント アカウントの非対称 KMS キーからパブリックキーを表示、コピー、ダウンロードできます。別の AWS アカウント で非対称 KMS キーからパブリックキーをダウンロードするには、AWS KMS API を使用します。

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

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

  3. ナビゲーションペインで、[Customer managed keys] (カスタマーマネージドキー) を選択します。

  4. 非対称 KMS キーのエイリアスまたはキー ID を選択します。

  5. [Cryptographic configuration] (暗号化の設定) タブを選択します。[Key spec] (キー仕様)、[Key usage] (キーの用途)、[Encryption algorithms] (暗号化アルゴリズム)、または [Signing Algorithms] (署名アルゴリズム) フィールドの値を記録します。AWS KMS の外部でパブリックキーを使用するには、これらの値を使用する必要があります。パブリックキーを共有するときは、必ずこの情報を共有してください。

  6. [Public key] (パブリックキー) タブを選択します。

  7. パブリックキーをクリップボードにコピーするには、[Copy] (コピー) を選択します。パブリックキーをファイルにダウンロードするには、[Download] (ダウンロード) を選択します。

パブリックキーをダウンロードする (AWS KMS API)

GetPublicKey オペレーションは、非対称 KMS キーでパブリックキーを返します。また、キーの用途や暗号化アルゴリズムなど、AWS KMS の外部でパブリックキーを正しく使用するために必要な重要な情報も返されます。これらの値を保存し、パブリックキーを共有する場合は必ず共有してください。

このセクションの例では AWS Command Line Interface (AWS CLI) を使用しますが、サポートされている任意のプログラミング言語を使用することができます。

KMS キーを指定するには、そのキー IDキー ARNエイリアス名エイリアス ARN を使用します。エイリアス名を使用する場合は、接頭辞として alias/ を付けます。別の AWS アカウント で KMS キーを指定するには、そのキー ARN またはエイリアス ARN を使用する必要があります。

このコマンドを実行する前に、サンプルのエイリアス名を KMS キーの有効な識別子に置き換えます。このコマンドを実行するには、KMS キーに対する kms:GetPublicKey アクセス許可が必要です。

$ aws kms get-public-key --key-id alias/example_RSA_3072 { "KeySpec": "RSA_3072", "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "KeyUsage": "ENCRYPT_DECRYPT", "EncryptionAlgorithms": [ "RSAES_OAEP_SHA_1", "RSAES_OAEP_SHA_256" ], "PublicKey": "MIIBojANBgkqhkiG..." }