キーの作成 - AWS Key Management Service

キーの作成

AWS マネジメントコンソール でまたは CreateKey オペレーションを使用して、対称および非対称カスタマーマスターキー (CMK) を作成できます。このプロセスでは、CMK の暗号化設定とそのキーマテリアルの生成元を決定します。CMK の作成後にこれらのプロパティを変更することはできません。CMK のキーポリシーも設定します。これはいつでも変更できます。

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

詳細はこちら:

対称 CMK の作成

対称 CMK は、AWS マネジメントコンソール で、または AWS KMS API を使用して、作成できます。対称キー暗号化では、データの暗号化と復号化に同じキーが使用されます。

AWS マネジメントコンソール を使用してカスタマーマスターキー (CMK) を作成できます。

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

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

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

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

  5. 対称 CMK を作成するには、[キータイプ] で [対称] を選択します。

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

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

  7. CMK のエイリアスを入力します。エイリアス名の先頭を aws/ にすることはできません。aws/ プレフィックスは、アカウントの AWS 管理 CMK を表すために Amazon Web Services によって予約されています。

    エイリアスは CMK を識別するために使用できる表示名です。保護する予定のデータのタイプ、または CMK で使用する予定のアプリケーションを示すエイリアスを選択することをお勧めします。

    エイリアスは、AWS マネジメントコンソールで CMK を作成するときに必要です。CreateKey オペレーションを使用する場合はオプションです。

  8. (オプション) CMK の説明を入力します。

    保護する予定のデータのタイプ、または CMK で使用する予定のアプリケーションを表す説明を入力します。AWS 管理 CMK に使用される説明形式は使用しないでください。他にキーが定義されていない場合に ... を保護するデフォルトのマスターキーという説明形式は、AWS 管理の CMK 用に予約されています。

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

  9. [次へ] を選択します。

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

    AWS リソースにタグを追加すると、使用量とコストがタグごとに集計されたコスト配分レポートが AWS によって生成されます。CMK にタグ付けする方法の詳細については、「キーのタグ付け」を参照してください。

  11. [次へ] を選択します。

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

    注記

    IAM ポリシーによって、CMK を管理するアクセス許可を他の IAM ユーザーおよびロールに付与できます。

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

  14. [次へ] を選択します。

  15. 暗号化オペレーションで CMK を使用できる IAM ユーザーおよびロールを選択します。

    注記

    AWS アカウント (root ユーザー) には、デフォルトで完全なアクセス権限があります。そのため、IAM ポリシーによって、暗号化オペレーションに CMK を使用するアクセス許可をユーザーとロールに付与することもできます。

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

    注記

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

  17. [次へ] を選択します。

  18. 選択した内容で作成されたキーポリシードキュメントを確認します。これを編集することもできます。

  19. [Finish] を選択し、CMK を作成します。

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

このオペレーションには必須パラメータはありません。ただし、キーポリシーを指定するために Policy パラメータが必要になる場合もあります。キーポリシー (PutKeyPolicy) を変更して、説明タグ などのオプショナルの要素をいつでも追加できます。また、インポートしたキーマテリアル の CMK またはカスタムキーストアの CMK を作成する場合は、Origin パラメータが必要です。

次の例では、パラメータを指定せずに CreateKey オペレーションを呼び出します。このコマンドでは、すべてのデフォルト値が使用されます。AWS KMS によって生成されたキーマテリアルを使用して暗号化および復号するための対称 CMK を作成します。

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

新規の CMK にキーポリシーを指定しない場合、CreateKey によって適用されるデフォルトのキーポリシーは、コンソールを使用して新規の CMK を作成するときにコンソールが適用するデフォルトのキーポリシーとは異なります。

たとえば、GetKeyPolicy オペレーションへの呼び出しは、CreateKey が適用するキーポリシーを返します。これによって CMK に AWS アカウントのルートアクセスが付与され、CMK に AWS Identity and Access Management (IAM) ポリシーを作成することができます。IAM ポリシーと CMK のキーポリシーについての詳細は、「AWS KMS の認証とアクセスコントロール」を参照してください。

$ aws kms get-key-policy --key-id 1234abcd-12ab-34cd-56ef-1234567890ab --policy-name default --output text { "Version" : "2012-10-17", "Id" : "key-default-1", "Statement" : [ { "Sid" : "Enable IAM User Permissions", "Effect" : "Allow", "Principal" : { "AWS" : "arn:aws:iam::111122223333:root" }, "Action" : "kms:*", "Resource" : "*" } ] }

非対称 CMK の作成

非対称 CMK は、AWS マネジメントコンソール で、または AWS KMS API を使用して、作成できます。非対称 CMK は、暗号化または署名に使用できるパブリックキーとプライベートキーのペアを表します。

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

AWS マネジメントコンソール を使用して非対称カスタマーマスターキー (CMK) を作成できます。非対称の CMK のそれぞれは、パブリックキーとプライベートキーのペアを表します。

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

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

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

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

  5. 非対称 CMK を作成するには、[キータイプ] で [非対称] を選択します。

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

  6. パブリックキー暗号化用の非対称 CMK を作成するには、[Key usage (キーの使用方法)]で [暗号化と復号] を選択します。または、メッセージに署名して署名を検証するための非対称 CMK を作成するには、[Key usage (キーの使用方法)] で [署名と検証] を選択します。

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

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

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

    キー仕様を選択する方法については、「キー仕様の選択」を参照してください。

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

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

    エイリアスは CMK を識別するために使用できる表示名です。保護する予定のデータのタイプ、または CMK で使用する予定のアプリケーションを示すエイリアスを選択することをお勧めします。

    エイリアスは、AWS マネジメントコンソールで CMK を作成するときに必要です。CreateKey オペレーションを使用する場合はオプションです。

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

    保護する予定のデータのタイプ、または CMK で使用する予定のアプリケーションを表す説明を入力します。AWS 管理 CMK に使用される説明形式は使用しないでください。他にキーが定義されていない場合に ... を保護するデフォルトのマスターキーという説明形式は、AWS 管理の CMK 用に予約されています。

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

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

    AWS リソースにタグを追加すると、使用量とコストがタグごとに集計されたコスト配分レポートが AWS によって生成されます。CMK にタグ付けする方法の詳細については、「キーのタグ付け」を参照してください。

  12. [次へ] を選択します。

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

    注記

    IAM ポリシーによって、CMK を管理するアクセス許可を他の IAM ユーザーおよびロールに付与できます。

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

  15. [次へ] を選択します。

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

    注記

    AWS アカウント (root ユーザー) には、デフォルトで完全なアクセス権限があります。そのため、IAM ポリシーによって、暗号化オペレーションに CMK を使用するアクセス許可をユーザーとロールに付与することもできます。

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

    注記

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

  18. [次へ] を選択します。

  19. 選択した内容で作成されたキーポリシードキュメントを確認します。これを編集することもできます。

  20. [Finish] を選択し、CMK を作成します。

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

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

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

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

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

$ aws kms create-key --customer-master-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", "CustomerMasterKeySpec": "ECC_NIST_P521", "KeyManager": "CUSTOMER", "Description": "", "Enabled": true, "KeyUsage": "SIGN_VERIFY" } }