非対称 KMS キーを作成する
AWS KMS コンソール操作で、または CreateKey API もしくは AWS::KMS::Key CloudFormation テンプレートを使用して、非対称 KMS キーを作成できます。非対称 KMS キーは、暗号化、署名、または共有シークレットの取得に使用する公開キーとプライベートキーのキーペアを表します。プライベートキーは AWS KMS の範囲内にあります。AWS KMS の外部で使用するために公開キーをダウンロードするには、パブリックキーをダウンロードする を参照してください。
非対称 KMS キーを作成するときは、キー仕様を選択する必要があります。選択するキー仕様は、多くの場合、規制、セキュリティ、ビジネス要件によって決定されます。また、暗号化または署名する必要があるメッセージのサイズによっても影響を受ける可能性があります。一般に、長い暗号化キーは、ブルートフォース攻撃に対してより耐性があります。サポートされているすべてのキー仕様の詳細については、「キー仕様のリファレンス」を参照してください。
AWS KMS と統合する AWS サービスは、非対称 KMS キーをサポートしません。AWS サービスに保存または管理するデータを暗号化する KMS キーを作成する場合は、対称暗号化 KMS キーを作成してください。
KMS キーの作成に必要なアクセス許可については、KMS キーを作成するためのアクセス許可 を参照してください。
AWS マネジメントコンソール を使用して、非対称 AWS KMS keys (KMS キー) を作成できます。各非対称 KMS キーは、公開キーとプライベートキーのキーペアを表します。
重要
エイリアス、説明、またはタグには、機密情報や重要情報を含めないでください。これらのフィールドは、CloudTrail ログやその他の出力にプレーンテキストで表示される場合があります。
-
AWS マネジメントコンソール にサインインし、AWS Key Management Service (AWS KMS) コンソール (https://console.aws.amazon.com/kms
) を開きます。 -
AWS リージョン を変更するには、ページの右上隅にあるリージョンセレクターを使用します。
-
ナビゲーションペインで、[カスタマーマネージドキー] を選択します。
-
[Create key] (キーの作成) を選択します。
-
非対称 KMS キーを作成するには、[Key type] (キータイプ) で [Asymmetric] (非対称) を選択します。
-
公開キー暗号化用の非対称 KMS キーを作成するには、[キーの使用] (キーの使用方法) で [Encrypt and decrypt] (暗号化と復号) を選択します。
メッセージに署名して署名を検証するための非対称 KMS キーを作成するには、[キーの使用] (キーの使用方法) で [署名と検証] を選択します。
共有シークレットを取得するための非対称 KMS キーを作成するには、[キーの使用] で [キーアグリーメント] を選択します。
キー使用法の値の選択については、を参照してください 作成する KMS キーのタイプの選択。
-
非対称 KMS キーの仕様 ( [Key spec] (キー仕様)) を選択します。
-
[次へ] を選択します。
-
KMS キーのエイリアスを入力します。エイリアス名の先頭を
aws/にすることはできません。このaws/プレフィックスは、アカウント内の AWS マネージドキー を表すために、Amazon Web Services によって予約されます。エイリアスは、コンソールおよび一部の AWS KMS API で、KMS キーを識別するために使用されるわかりやすい名前です。。保護する予定のデータタイプ、または KMS キーで使用する予定のアプリケーションを示すエイリアスを選択することをお勧めします。
エイリアスは AWS マネジメントコンソール で KMS キーを作成するときに必要です。CreateKey オペレーションの使用時にエイリアスを指定することはできません。ただし、コンソールまたは CreateAlias オペレーションを使用して、既存の KMS キーのエイリアスを作成できます。詳細については、「AWS KMS のエイリアス」を参照してください。
-
(オプション) KMS キーの説明を入力します。
保護する予定のデータタイプ、または KMS キーで使用する予定のアプリケーションを表す説明を入力します。
今すぐ説明を追加するか、キーの状態が
Pending DeletionまたはPending Replica Deletionでない限り、後でいつでも更新できます。既存のカスタマーマネージドキーの説明を追加、変更、削除するには、AWS マネジメントコンソール で KMS キーの詳細ページの説明を編集するか、もしくは UpdateKeyDescription オペレーションを使用します。 -
(オプション) タグキーとオプションのタグ値を入力します。KMS キーに複数のタグを追加するには、[Add tag] (タグを追加) を選択します。
AWS リソースにタグを追加すると、使用量とコストがタグごとに集計されたコスト配分レポートが AWS によって生成されます。タグは、KMS キーへのアクセスの制御にも使用できます。KMS キーのタグ付けについては、AWS KMS のタグ および AWS KMS の ABAC を参照してください。
-
[次へ] を選択します。
-
KMS キーを管理できる IAM ユーザーとロールを選択します。
メモ
このキーポリシーにより、AWS アカウント はこの KMS キーを完全に制御できるようになります。これにより、アカウント管理者は IAM ポリシーを使用して、他のプリンシパルに KMS キーを管理する許可を付与できます。詳細については、「デフォルトのキーポリシー」を参照してください。
IAM ベストプラクティスでは、長期の認証情報を持つ IAM ユーザーの使用は推奨されていません。可能な限り、一時的な認証情報を提供する IAM ロールを使用してください。詳細については、「IAM ユーザーガイド」の「IAM でのセキュリティのベストプラクティス」を参照してください。
AWS KMS コンソールは、ステートメント識別子
"Allow access for Key Administrators"のキーポリシーにキー管理者を追加します。このステートメント識別子を変更すると、コンソールでステートメントに加えた更新が表示される方法に影響する可能性があります。 -
(オプション) 選択した IAM ユーザーとロールがこの KMS キーを削除しないようにするには、ページの下部にある [Key deletion] (キーの削除) セクションで、[Allow key administrators to delete this key] (キー管理者にこのキーの削除を許可する) のチェックボックスをオフにします。
-
[次へ] を選択します。
-
暗号化オペレーションで KMS キーを使用できる IAM ユーザーとロールを選択します。
メモ
IAM ベストプラクティスでは、長期の認証情報を持つ IAM ユーザーの使用は推奨されていません。可能な限り、一時的な認証情報を提供する IAM ロールを使用してください。詳細については、「IAM ユーザーガイド」の「IAM でのセキュリティのベストプラクティス」を参照してください。
AWS KMS コンソールは、ステートメント識別子
"Allow use of the key"および"Allow attachment of persistent resources"のキーポリシーにキーユーザーを追加します。これらのステートメント識別子を変更すると、コンソールでステートメントに加えた更新が表示される方法に影響する可能性があります。 -
(オプション) 他の AWS アカウント が暗号化オペレーションにこの KMS キーを使用できるようにします。これを行うには、ページの下部にある [他の AWS アカウント アカウント] セクションで、[別の AWS アカウント アカウントを追加する] を選択し、外部アカウントの AWS アカウント ID 番号を入力します。複数の外部アカウントを追加するには、この手順を繰り返します。
注記
外部アカウントでプリンシパルが KMS キーを使用できるようにするには、外部アカウントの管理者が、これらの許可を付与する IAM ポリシーを作成する必要があります。詳細については、「他のアカウントのユーザーに KMS キーの使用を許可する」を参照してください。
-
[Next] (次へ) を選択します。
-
キーのキーポリシーステートメントを確認します。キーポリシーに変更を加えるには、[編集] を選択します。
-
[次へ] を選択します。
-
選択したキー設定を確認します。戻って、すべての設定を変更することもできます。
-
[Finish] (完了) を選択し、KMS キーを作成します。
CreateKey オペレーションを使用して、非対称 AWS KMS key を作成できます。以下の例では AWS Command Line Interface (AWS CLI)
非対称 KMS キーを作成する場合は、作成するキーのタイプを決定する KeySpec パラメータを指定する必要があります。また、ENCRYPT_DECRYPT、SIGN_VERIFY、KEY_AGREEMENT の KeyUsage 値も指定する必要があります。KMS キー作成後にこれらのプロパティを変更することはできません。
CreateKey オペレーションでは、エイリアスを指定することはできませんが、CreateAlias オペレーションを実行して、新しい KMS キーのエイリアスを作成できます。
重要
Description フィールドまたは Tags フィールドには、機密情報や重要情報を含めないでください。これらのフィールドは、CloudTrail ログやその他の出力にプレーンテキストで表示される場合があります。
公開暗号化用の非対称 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 } }
署名および検証用の非対称 KMS キーペアを作成する
次のコマンド例では、署名と検証に使用する ECC キーのペアを表す非対称 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" } }
共有シークレットを取得するための非対称 KMS キーペアを作成する
次のコマンド例では、共有シークレットの取得に使用する ECDH キーのペアを表す非対称 KMS キーを作成します。暗号化と復号のために楕円曲線キーペアを作成することはできません。
$aws kms create-key --key-spec ECC_NIST_P256 --key-usage KEY_AGREEMENT{ "KeyMetadata": { "AWSAccountId": "111122223333", "KeyId": "0987dcba-09fe-87dc-65ba-ab0987654321", "Arn": "arn:aws:kms:us-west-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321", "CreationDate": "2023-12-27T19:10:15.063000+00:00", "Enabled": true, "Description": "", "KeyUsage": "KEY_AGREEMENT", "KeyState": "Enabled", "Origin": "AWS_KMS", "KeyManager": "CUSTOMER", "CustomerMasterKeySpec": "ECC_NIST_P256", "KeySpec": "ECC_NIST_P256", "KeyAgreementAlgorithms": [ "ECDH" ], "MultiRegion": false } }