非対称 KMS キーを作成する - AWS Key Management Service

非対称 KMS キーを作成する

CreateKey API または AWS CloudFormation テンプレートを使用して、AWS KMS コンソールで非対称 KMS キーを作成できます。非対称 KMS キーは、暗号化または署名に使用できる公開キーとプライベートキーのキーペアを表します。プライベートキーは AWS KMS の範囲内にあります。AWS KMS の外部で使用するために公開キーをダウンロードするには、パブリックキーのダウンロード を参照してください。

AWS のサービスで保存または管理するデータを暗号化するための KMS キーを作成するときは、対称暗号化 KMS キーを使用します。AWS KMS と統合された AWS のサービスは、非対称 KMS キーをサポートしません。対称または非対称のどちらの KMS キーを作成するかを決定する方法については、「KMS キータイプの選択」を参照してください。

KMS キーの作成に必要なアクセス許可については、KMS キーを作成するためのアクセス許可 を参照してください。

非対称 KMS キーを作成する (コンソール)

AWS Management Console を使用して、非対称 AWS KMS keys (KMS キー) を作成できます。各非対称 KMS キーは、公開キーとプライベートキーのキーペアを表します。

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

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

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

  4. [キーの作成] を選択します。

  5. 非対称 KMS キーを作成するには、[Key type] (キータイプ) で [Asymmetric] (非対称) を選択します。

    AWS KMS コンソールで対称暗号化 KMS キーを作成する方法については、「対称暗号化 KMS キーの作成 (コンソール)」を参照してください。

  6. 公開キー暗号化用の非対称 KMS キーを作成するには、[Key usage] (キーの使用方法) で [Encrypt and decrypt] (暗号化と復号) を選択します。メッセージに署名して署名を検証するための非対称 KMS キーを作成するには、[Key usage] (キーの使用方法) で [Sign and verify] (署名と検証) を選択します。

    キー使用法の値の選択については、を参照してください キー使用法の選択

  7. 非対称 KMS キーの仕様 ( [Key spec] (キー仕様)) を選択します。

    選択するキー仕様は、多くの場合、規制、セキュリティ、ビジネス要件によって決定されます。また、暗号化または署名する必要があるメッセージのサイズによっても影響を受ける可能性があります。一般に、長い暗号化キーは、ブルートフォース攻撃に対してより耐性があります。

    主要な仕様の選択については、「キー仕様の選択」を参照してください。

  8. [Next] を選択します。

  9. KMS キーのエイリアスを入力します。エイリアス名の先頭を aws/ にすることはできません。この aws/ プレフィックスは、アカウント内の AWS マネージドキー を表すために、Amazon Web Services によって予約されます。

    エイリアスは、コンソールおよび一部の AWS KMS API で、KMS キーを識別するために使用されるわかりやすい名前です。。保護する予定のデータタイプ、または KMS キーで使用する予定のアプリケーションを示すエイリアスを選択することをお勧めします。

    エイリアスは AWS Management Console で KMS キーを作成するときに必要です。CreateKey オペレーションの使用時にエイリアスを指定することはできません。ただし、コンソールまたは CreateAlias オペレーションを使用して、既存の KMS キーのエイリアスを作成できます。詳細については、「エイリアスの使用」を参照してください。

  10. (オプション) KMS キーの説明を入力します。

    保護する予定のデータタイプ、または KMS キーで使用する予定のアプリケーションを表す説明を入力します。

    今すぐ説明を追加するか、キーの状態Pending Deletion または Pending Replica Deletion でない限り、後でいつでも更新できます。既存のカスタマーマネージドキーの説明を追加、変更、削除するには、AWS Management Console で説明を編集するかUpdateKeyDescription オペレーションを使用します。

  11. (オプション) タグキーとオプションのタグ値を入力します。KMS キーに複数のタグを追加するには、[Add tag] (タグを追加) を選択します。

    AWS リソースにタグを追加すると、使用量とコストがタグごとに集計されたコスト配分レポートが AWS によって生成されます。タグは、KMS キーへのアクセスの制御にも使用できます。KMS キーのタグ付けについては、キーのタグ付け および AWS KMS の ABAC を参照してください。

  12. [Next] を選択します。

  13. KMS キーを管理できる IAM ユーザーとロールを選択します。

    注記

    このキーポリシーにより、AWS アカウント はこの KMS キーを完全に制御できるようになります。これにより、アカウント管理者は IAM ポリシーを使用して、他のプリンシパルに KMS キーを管理する許可を付与できます。詳細については、「デフォルトのキーポリシー」を参照してください。

  14. (オプション) 選択した IAM ユーザーとロールがこの KMS キーを削除しないようにするには、ページの下部にある [Key deletion] (キーの削除) セクションで、[Allow key administrators to delete this key] (キー管理者にこのキーの削除を許可する) のチェックボックスをオフにします。

  15. [Next] を選択します。

  16. 暗号化オペレーションで KMS キーを使用できる IAM ユーザーとロールを選択します。

    注記

    このキーポリシーにより、AWS アカウント はこの KMS キーを完全に制御できるようになります。これにより、アカウント管理者は IAM ポリシーを使用して、他のプリンシパルに暗号化オペレーションで KMS キーを管理する許可を付与できます。詳細については、「デフォルトのキーポリシー」を参照してください。

  17. (オプション) 他の AWS アカウント が暗号化オペレーションにこの KMS キーを使用できるようにします。これを行うには、ページの下部にある [Other AWS アカウント] セクションで、[Add another AWS アカウント] を選択し、外部アカウントの AWS アカウント ID 番号を入力します。複数の外部アカウントを追加するには、この手順を繰り返します。

    注記

    外部アカウントでプリンシパルが KMS キーを使用できるようにするには、外部アカウントの管理者が、これらの許可を付与する IAM ポリシーを作成する必要があります。詳細については、「他のアカウントのユーザーに KMS キーの使用を許可する」を参照してください。

  18. [Next] を選択します。

  19. 選択したキー設定を確認します。戻って、すべての設定を変更することもできます。

  20. [Finish] (完了) を選択し、KMS キーを作成します。

非対称 KMS キーを作成する (AWS KMS API)

CreateKey オペレーションを使用して、非対称 AWS KMS key を作成できます。以下の例では AWS Command Line Interface (AWS CLI) を使用しますが、サポートされている任意のプログラミング言語を使用することができます。

非対称 KMS キーを作成する場合は、作成するキーのタイプを決定する KeySpec パラメータを指定する必要があります。また、ENCRYPT_DECRYPT または SIGN_VERIFY の KeyUsage 値も指定する必要があります。KMS キー作成後にこれらのプロパティを変更することはできません。

CreateKey オペレーションでは、エイリアスを指定することはできませんが、CreateAlias オペレーションを実行して、新しい KMS キーのエイリアスを作成できます。

次の例では、CreateKey オペレーションを使用して、公開キーの暗号化用に設計された 4096 ビット RSA キーの非対称 KMS キーを作成します。

$ aws kms create-key --key-spec RSA_4096 --key-usage ENCRYPT_DECRYPT { "KeyMetadata": { "KeyState": "Enabled", "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "KeyManager": "CUSTOMER", "Description": "", "Arn": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "CreationDate": 1569973196.214, "MultiRegion": false, "KeySpec": "RSA_4096", "CustomerMasterKeySpec": "RSA_4096", "KeyUsage": "ENCRYPT_DECRYPT", "EncryptionAlgorithms": [ "RSAES_OAEP_SHA_1", "RSAES_OAEP_SHA_256" ], "AWSAccountId": "111122223333", "Origin": "AWS_KMS", "Enabled": true } }

次のコマンド例では、署名と検証に使用される ECDSA キーのペアを表す非対称 KMS キーを作成します。暗号化と復号のために楕円曲線キーペアを作成することはできません。

$ aws kms create-key --key-spec ECC_NIST_P521 --key-usage SIGN_VERIFY { "KeyMetadata": { "KeyState": "Enabled", "KeyId": "0987dcba-09fe-87dc-65ba-ab0987654321", "CreationDate": 1570824817.837, "Origin": "AWS_KMS", "SigningAlgorithms": [ "ECDSA_SHA_512" ], "Arn": "arn:aws:kms:us-west-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321", "AWSAccountId": "111122223333", "KeySpec": "ECC_NIST_P521", "CustomerMasterKeySpec": "ECC_NIST_P521", "KeyManager": "CUSTOMER", "Description": "", "Enabled": true, "MultiRegion": false, "KeyUsage": "SIGN_VERIFY" } }