カスタムキーストアで KMS キーを作成する - AWS Key Management Service

カスタムキーストアで KMS キーを作成する

カスタムキーストアの作成後、キーストアで AWS KMS keys を作成することができます。これらは、AWS KMS が生成するキーマテリアルを持つ対称暗号化 KMS キーである必要があります。カスタムキーストアで非対称 KMS キーHMAC KMS キー、またはインポートされたキーマテリアルを持つ KMS キーを作成することはできません。カスタムキーストア内の対称暗号化 KMS キーを使用して、非対称データキーペアを生成することもできません。

AWS KMS で任意の KMS キーを使用および管理するのと同じ方法で、カスタムキーストア内の KMS キーを使用および管理します。例えば、次のいずれかを実行できます。

  • 暗号化オペレーションで KMS キーを使用します。

  • KMS キーに IAM ポリシーとキーポリシーを設定します。

  • エイリアスの作成は KMS キーに関連付けられます。

  • KMS キーにタグをアタッチします。

  • KMS キーを有効および無効にします。

  • KMS キーの削除をスケジュールします。

カスタムキーストアで KMS キーを作成するには、カスタムキーストアが関連する AWS CloudHSM クラスターに接続され、2 つ以上のアクティブな HSM が異なるアベイラビリティーゾーンに含まれている必要があります。接続ステータスと HSM の数を確認するには、AWS Management Console でカスタムキーストアページを表示します。API オペレーションを使用する場合は、 DescribeCustomKey Stores オペレーションを使用して、カスタムキーストアが接続されていることを確認します。AWS CloudHSM DescribeClusters オペレーションを使用して、クラスター内のアクティブな HSM の数とそのアベイラビリティーゾーンを取得します。

カスタムキーストアで KMS キーを作成すると、AWS KMS は AWS KMS で KMS キーを作成します。ただし、関連付けられた AWS CloudHSM クラスターで KMS キーのキーマテリアルが作成されます。具体的には、AWS KMS が作成した kmsuser CU としてクラスターにサインインします。次に、クラスター内に永続的で抽出不可能な 256 ビットの Advanced Encryption Standard (AES) 対称キーが作成され、AWS KMS がキーラベルの属性値を設定します。これはクラスター内で、KMS キーの Amazon リソースネーム (ARN) にのみ表示されます。 

コマンドが成功すると、新しいKMS キーのキーステータスEnabled になり、そのオリジンは AWS_CLOUDHSM になります。作成後に KMS キーのオリジンを変更することはできません。コンソールでカスタムキーストア内の KMS キーを表示するか、DescribeKey オペレーションを使用すると、キー ID、キーステータス、作成日などの典型的なプロパティを表示できます。カスタムキーストア ID と AWS CloudHSM クラスター ID (オプション) を確認することもできます。詳細については、「カスタムキーストアで KMS キーを表示する」を参照してください。

カスタムキーストアで KMS キーの作成を試みて失敗した場合は、エラーメッセージを使用して原因を特定します。カスタムキーストアが接続されていない (CustomKeyStoreInvalidStateException)、または関連する AWS CloudHSM クラスターに、このオペレーションに必要な 2 つのアクティブな HSM がないこと (CloudHsmClusterInvalidConfigurationException) を示している可能性があります。ヘルプについては、を参照してください カスタムキーストアのトラブルシューティング

カスタムキーストアで KMS キーを作成するオペレーションの AWS CloudTrail ログの例については、「CreateKey」を参照してください。

カスタムキーストアで 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. [対称] を選択します。

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

  7. [Advanced options (詳細オプション)] を選択します。

  8. [キーマテリアルのオリジン] に [Custom key store (CloudHSM) (カスタムキーストア (CloudHSM))] を選択します。

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

  10. 新しい KMS キーのカスタムキーストアを選択します。新しいカスタムキーストアを作成するには、[Create custom key store (カスタムキーストアの作成)] を選択します。

    選択したカスタムキーストアは、[CONNECTED (接続)] のステータスが割り当てられている必要があります。関連付けられた AWS CloudHSM クラスターがアクティブで、異なるアベイラビリティーゾーンに少なくとも 2 つのアクティブな HSM が含まれている必要があります。

    カスタムキーストアの接続に関するヘルプについては、「カスタムキーストアの接続および切断」を参照してください。HSM の追加については、AWS CloudHSM ユーザーガイドHSM の追加を参照してください。

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

  12. KMS キーのエイリアスおよびオプションの説明を入力します。

  13. (オプション)。[Add Tags] (タグの追加) ページで、KMS キーを識別または分類するタグを追加します。

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

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

  15. [Key administrators] (キー管理者) セクションで、KMS キーを管理できる IAM ユーザーとロールを選択します。詳細については、キー管理者による KMS キー管理の許可を参照してください。

    注記

    IAM ポリシーでは、KMS キーを使用するアクセス許可を他の IAM ユーザーおよびロールに付与できます。

  16. (オプション) これらのキー管理者がこの KMS キーを削除できないようにするには、ページの下部にある [Allow key administrators to delete this key] (キー管理者がこのキーを削除できるようにする) チェックボックスをオフにします。

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

  18. [This account] (このアカウント) セクションで、KMS キーを暗号化オペレーションで使用できる、この AWS アカウント の IAM ユーザーとロールを選択します。詳細については、キーユーザーに KMS キーの使用を許可するを参照してください。

    注記

    IAM ポリシーでは、KMS キーを使用するアクセス許可を他の IAM ユーザーおよびロールに付与できます。

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

    注記

    ユーザーが IAM ポリシーを作成して KMS キーにアクセスすることを、他の AWS アカウント 管理者が許可する必要もあります。詳細については、「他のアカウントのユーザーに KMS キーの使用を許可する」を参照してください。

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

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

  22. 終了したら、[Finish] (完了) を選択し、キーを作成します。

手順が成功すると、選択したカスタムキーストアに新しい KMS キーが表示されます。新しい KMS キーの名前やエイリアスを選択すると、その詳細ページに KMS キー (CloudHSM) のオリジン、カスタムキーストアの名前と ID、AWS CloudHSM クラスターの ID が表示されます。手順が失敗すると、失敗を説明するエラーメッセージが表示されます。

ヒント

カスタムキーストアで KMS キーをより簡単に識別できるようにするには、[Customer managed keys (カスタマーマネージドキー)] ページで、[Custom key store ID (カスタムキーストア ID)] 列を表示に追加します。右上隅にある歯車アイコンをクリックし、[Custom key store ID (カスタムキーストア ID)] を選択します。

カスタムキーストアで KMS キーを作成する (API)

カスタムキーストアで新しい AWS KMS key (KMS キー) を作成するには、CreateKey オペレーションを使用します。CustomKeyStoreId パラメータを使用してカスタムキーストアを識別し、AWS_CLOUDHSMOrigin 値を指定します。

また、キーポリシーを指定するために Policy パラメータが必要になる場合もあります。キーポリシー (PutKeyPolicy) を変更したり、 説明タグ などのオプション要素をいつでも追加したりできます。

このセクションの例では AWS Command Line Interface (AWS CLI) を使用しますが、サポートされている任意のプログラミング言語を使用することができます。

次の例では、 DescribeCustomKeyStores オペレーションの呼び出しから始めて、カスタムキーストアが、関連付けられた AWS CloudHSM クラスターに接続されていることを確認します。デフォルトでは、このオペレーションは、アカウントとリージョンのすべてのカスタムキーストアを返します。特定のカスタムキーストアのみを記述するには、CustomKeyStoreId または CustomKeyStoreName パラメータ (一方のみ) を使用します。

このコマンドを実行する前に、例のカスタムキーストア ID を有効な ID に置き換えます。

$ aws kms describe-custom-key-stores --custom-key-store-id cks-1234567890abcdef0 { "CustomKeyStores": [ "CustomKeyStoreId": "cks-1234567890abcdef0", "CustomKeyStoreName": "ExampleKeyStore", "CloudHsmClusterId": "cluster-1a23b4cdefg", "TrustAnchorCertificate": "<certificate string appears here>", "CreationDate": "1.499288695918E9", "ConnectionState": "CONNECTED" ], }

次のコマンド例では、DescribeClusters オペレーションを使用して、ExampleKeyStore (cluster-1a23b4cdefg) に関連付けられている AWS CloudHSM クラスターに 2 つ以上のアクティブな HSM があることを確認します。クラスターにある HSM が 2 つに満たない場合、CreateKey オペレーションは失敗します。

$ aws cloudhsmv2 describe-clusters { "Clusters": [ { "SubnetMapping": { ... }, "CreateTimestamp": 1507133412.351, "ClusterId": "cluster-1a23b4cdefg", "SecurityGroup": "sg-865af2fb", "HsmType": "hsm1.medium", "VpcId": "vpc-1a2b3c4d", "BackupPolicy": "DEFAULT", "Certificates": { "ClusterCertificate": "-----BEGIN CERTIFICATE-----\...\n-----END CERTIFICATE-----\n" }, "Hsms": [ { "AvailabilityZone": "us-west-2a", "EniIp": "10.0.1.11", "ClusterId": "cluster-1a23b4cdefg", "EniId": "eni-ea8647e1", "StateMessage": "HSM created.", "SubnetId": "subnet-a6b10bd1", "HsmId": "hsm-abcdefghijk", "State": "ACTIVE" }, { "AvailabilityZone": "us-west-2b", "EniIp": "10.0.0.2", "ClusterId": "cluster-1a23b4cdefg", "EniId": "eni-ea8647e1", "StateMessage": "HSM created.", "SubnetId": "subnet-b6b10bd2", "HsmId": "hsm-zyxwvutsrqp", "State": "ACTIVE" }, ], "State": "ACTIVE" } ] }

この例では、CreateKey オペレーションを使用して、カスタムキーストアで KMS キーを作成します。カスタムキーストアで KMS キーを作成するには、カスタムキーストア名の ID を指定し、AWS_CLOUDHSMOrigin 値を指定する必要があります。

応答には、カスタムキーストアと AWS CloudHSM クラスターの ID が含まれています。

このコマンドを実行する前に、例のカスタムキーストア ID を有効な ID に置き換えます。

$ aws kms create-key --origin AWS_CLOUDHSM --custom-key-store-id cks-1234567890abcdef0 { "KeyMetadata": { "AWSAccountId": "111122223333", "Arn": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "CreationDate": 1.499288695918E9, "Description": "Example key", "Enabled": true, "MultiRegion": false, "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "KeyManager": "CUSTOMER", "KeyState": "Enabled", "KeyUsage": "ENCRYPT_DECRYPT", "Origin": "AWS_CLOUDHSM" "CloudHsmClusterId": "cluster-1a23b4cdefg", "CustomKeyStoreId": "cks-1234567890abcdef0" "KeySpec": "SYMMETRIC_DEFAULT", "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT", "EncryptionAlgorithms": [ "SYMMETRIC_DEFAULT" ] } }