対称暗号化 KMS キーを作成する - AWS Key Management Service

対称暗号化 KMS キーを作成する

このトピックでは、基本的な KMS キーである対称暗号化 KMS キーを、AWS KMS からのキーマテリアルを使用して単一リージョン用に作成する方法を説明します。この KMS キーを使用して、AWS のサービス内のリソースを保護することができます。

AWS KMS コンソール操作で、または CreateKey API もしくは AWS::KMS::Key CloudFormation テンプレートを使用して、対称暗号化 KMS キーを作成できます。

デフォルトのキー仕様である SYMMETRIC_DEFAULT は、対称暗号化 KMS キー向けキー仕様です。AWS KMS コンソールでキーのタイプに [Symmetric] (対称)、キーの用途に [Encrypt and decrypt] (暗号化および復号) を選択すると、SYMMETRIC_DEFAULT キー仕様が選択されます。CreateKey オペレーションで、 KeySpec 値を指定しない場合、SYMMETRIC_DEFAULT が選択されます。別のキー仕様を使用する理由がない場合は、SYMMETRIC_DEFAULT を選択することをお勧めします。

KMS キーに適用されるクォータの詳細については、クォータ を参照してください。

AWS マネジメントコンソール を使用して AWS KMS keys (KMS キー) を作成します。

重要

エイリアス、説明、またはタグには、機密情報や重要情報を含めないでください。これらのフィールドは、CloudTrail ログやその他の出力にプレーンテキストで表示される場合があります。

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

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

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

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

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

  6. [Key usage] (キーの使用) では、[Encrypt and decrypt] (暗号化および復号) オプションがすでに選択されています。

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

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

    注記

    エイリアスを追加、削除、更新すると、KMS キーに対するアクセス許可が許可または拒否される可能性があります。詳細については、「AWS KMS の ABAC」および「エイリアスを使用して KMS キーへのアクセスを制御する」を参照してください。

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

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

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

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

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

    注記

    KMS キーのタグ付けまたはタグ解除により、KMS キーに対するアクセス許可が許可または拒否される可能性があります。詳細については、「AWS KMS の ABAC」および「タグを使用して KMS キーへのアクセスを制御する」を参照してください。

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

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

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

    メモ

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

    IAM ベストプラクティスでは、長期の認証情報を持つ IAM ユーザーの使用は推奨されていません。可能な限り、一時的な認証情報を提供する IAM ロールを使用してください。詳細については、「IAM ユーザーガイド」の「IAM でのセキュリティのベストプラクティス」を参照してください。

    AWS KMS コンソールは、ステートメント識別子 "Allow access for Key Administrators" のキーポリシーにキー管理者を追加します。このステートメント識別子を変更すると、コンソールでステートメントに加えた更新が表示される方法に影響する可能性があります。

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

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

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

    メモ

    IAM ベストプラクティスでは、長期の認証情報を持つ IAM ユーザーの使用は推奨されていません。可能な限り、一時的な認証情報を提供する IAM ロールを使用してください。詳細については、「IAM ユーザーガイド」の「IAM でのセキュリティのベストプラクティス」を参照してください。

    AWS KMS コンソールは、ステートメント識別子 "Allow use of the key" および "Allow attachment of persistent resources" のキーポリシーにキーユーザーを追加します。これらのステートメント識別子を変更すると、コンソールでステートメントに加えた更新が表示される方法に影響する可能性があります。

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

    注記

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

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

  18. キーのキーポリシーステートメントを確認します。キーポリシーに変更を加えるには、[編集] を選択します。

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

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

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

CreateKey オペレーションを使用して、すべてのタイプの AWS KMS keys を作成できます。これらの例では、AWS Command Line Interface (AWS CLI) を使用します。複数のプログラミング言語の例については、「AWS SDK または CLI で CreateKey を使用する」を参照してください。

重要

Description フィールドまたは Tags フィールドには、機密情報や重要情報を含めないでください。これらのフィールドは、CloudTrail ログやその他の出力にプレーンテキストで表示される場合があります。

次のオペレーションでは、AWS KMS で生成されるキーマテリアルにバックアップされた、単一リージョン内の対称暗号化キーを作成します。このオペレーションには必須パラメータはありません。ただし、キーポリシーを指定するために Policy パラメータが必要になる場合もあります。キーポリシー (PutKeyPolicy) を変更したり、 説明タグ などのオプション要素をいつでも追加したりできます。また、非対称キーマルチリージョンキーインポートされたキーマテリアルを含むキー、およびカスタムキーストア内のキーも作成できます。クライアント側暗号化用のデータキーを作成するには、GenerateDataKey オペレーションを使用します。

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

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

$ aws kms create-key { "KeyMetadata": { "Origin": "AWS_KMS", "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "Description": "", "KeyManager": "CUSTOMER", "Enabled": true, "KeySpec": "SYMMETRIC_DEFAULT", "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", "MultiRegion": false "EncryptionAlgorithms": [ "SYMMETRIC_DEFAULT" ], } }

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

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

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