パブリックキーのダウンロード
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_VERIFY
のKeyUsage
を持つ KMS キーで Encrypt オペレーションを呼び出すと、AWS KMS オペレーションは失敗します。ただし、SIGN_VERIFY
のKeyUsage
で、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 の外でのパブリックキーの使用は記録されません。
公開キーをダウンロードする (コンソール)
AWS Management Console を使用して、AWS アカウント アカウントの非対称 KMS キーから公開キーを表示、コピー、ダウンロードできます。別の AWS アカウント で非対称 KMS キーから公開キーをダウンロードするには、AWS KMS API を使用します。
-
AWS Management Console にサインインし、AWS Key Management Service (AWS KMS) コンソール (https://console.aws.amazon.com/kms
) を開きます。 -
AWS リージョン を変更するには、ページの右上隅にあるリージョンセレクターを使用します。
-
ナビゲーションペインで、[Customer managed keys (カスタマー管理型のキー)] を選択します。
-
非対称 KMS キーのエイリアスまたはキー ID を選択します。
-
[ 暗号構成 ] タブを選択します。キー仕様、キーの使用方法、暗号化アルゴリズム、または署名アルゴリズムフィールドの値を記録します。AWS KMS の外部でパブリックキーを使用するには、これらの値を使用する必要があります。パブリックキーを共有するときは、必ずこの情報を共有してください。
-
[パブリックキー] タブを選択します。
-
パブリックキーをクリップボードにコピーするには、[コピー] を選択します。パブリックキーをファイルにダウンロードするには、[ダウンロード] を選択します。
公開キーをダウンロードする (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..." }