外部キーストアで KMS キーを作成する - AWS Key Management Service

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

外部キーストアで KMS キーを作成する

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

外部キーストアの KMS キーは AWS の外部にあるコンポーネントに依存するため、標準 KMS キーよりも遅延、耐久性、可用性に劣る可能性があります。外部キーストアで KMS キーを作成または使用する前に、外部キーストアプロパティをもつキーが必要であることを確認してください。

注記

一部の外部キーマネージャーは、外部キーストアに KMS キーを作成する簡単な方法を提供しています。詳細については外部キーマネージャーのドキュメントを参照してください。

外部キーストアで KMS キーを作成するには、以下を指定します。

  • 外部キーストアの ID。

  • 外部キーストア (EXTERNAL_KEY_STORE) のキーマテリアルオリジン

  • 外部キーストアに関連付けられた外部キーマネージャー内の既存の外部キー ID。この外部キーは、KMS キーのキーマテリアルとして機能します。KMS キーの作成後は、外部キー ID を変更できません。

    AWS KMS は、暗号化および復号化オペレーションのリクエストで外部キーストアプロキシに外部キー ID を提供します。AWS KMS は、外部キーマネージャーやその暗号化キーに直接アクセスすることはできません。

外部キーに加えて、外部キーストアの KMS キーにも AWS KMS キーマテリアルがあります。KMS キーで暗号化されたすべてのデータは、最初にキーの AWS KMS キーマテリアルを使用して AWS KMS で暗号化され、次に外部キーを使用して外部キーマネージャーによって暗号化されます。この二重暗号化プロセスにより、外部キーストアの KMS キーで保護された暗号文は、少なくとも AWS KMS のみで保護されている暗号文と同等の強度を持つことが保証されます。詳細については、「外部キーストアの仕組み」を参照してください。

CreateKey オペレーションが成功すると、新しい KMS キーのキーステータスEnabled になります。外部キーストアで KMS キーを表示すると、キー ID、キースペックキーの使用方法キーの状態、作成日などの一般的なプロパティが表示されます。また、外部キーストアの ID と接続状態、および外部キーの ID も表示されます。

外部キーストアで KMS キーの作成を試みて失敗した場合は、エラーメッセージを使用して原因を特定します。外部キーストアが接続されていない可能性(CustomKeyStoreInvalidStateException)、外部キーストアプロキシが指定された外部キー ID(XksKeyNotFoundException)の外部キーを検出できない可能性、または外部キーが同じ外部キーストア XksKeyAlreadyInUseException 内の KMS キーにすでに関連付けられている可能性があります。

.

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

外部キーストアの KMS キーの要件

外部キーストアに KMS キーを作成するには、外部キーストア、KMS キー、および KMS キーの外部暗号化キーマテリアルとなる外部キーの次のプロパティが必要です。

外部キーストアの要件

KMS キーの要件

KMS キーの作成後にこれらのプロパティを変更することはできません。

  • キースペック: SYMMETRIC_DEFAULT

  • キーの使用方法: ENCRYPT_DECRYPT

  • キーマテリアルのオリジン: EXTERNAL_KEY_STORE

  • マルチリージョン: FALSE

外部キーの要件

  • 256 ビット AES 暗号化キー (256 ランダムビット)。外部キーの KeySpecAES_256 である必要があります。

  • 有効かつ使用可能です。外部キーの StatusENABLED である必要があります。

  • 暗号化および複合化用に設定されています。外部キーの KeyUsage には ENCRYPTDECRYPT を含める必要があります。

  • この KMS キーでのみ使用されます。外部キーストアの各 KMS key は、異なる外部キーに関連付けられている必要があります。

    AWS KMS は、外部キーを外部キーストア専用に使用することをお勧めします。この制限により、キーに関する問題の特定と解決が容易になります。

  • 外部キーストアの外部キーストアプロキシからアクセスできます。

    外部キーストアプロキシが指定された外部キー ID を使用してキーを検出できない場合、CreateKey オペレーションは失敗します。

  • AWS のサービス を使用することで生成される予想トラフィックを処理できます。AWS KMS は、外部キーを毎秒最大 1,800 のリクエストを処理できるように準備することをお勧めします。

外部キーストアで KMS キーを作成する (コンソール)

外部キーストアで KMS キーを作成するには 2 つの方法があります。

  • 方法 1 (推奨): 外部キーストアを選択し、その外部キーストアに KMS キーを作成します。

  • 方法 2: KMS キーを作成し、それが外部キーストアにあることを示します。

キーを作成する前に外部キーストアを選択する方法 1 を使用する場合、AWS KMS は必要な KMS キープロパティをすべて選択し、外部キーストアの ID を入力します。この方法により、KMS キーの作成時に発生する可能性のあるエラーを回避できます。

注記

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

方法 1 (推奨): 外部キーストアで起動する

この方法を使用するには、外部キーストアを選択し、KMS キーを作成します。AWS KMS コンソールは必要なプロパティをすべて選択し、外部キーストアの ID を入力します。この方法により、KMS キーの作成時に発生する可能性のある多くのエラーを回避できます。

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

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

  3. ナビゲーションペインで、[Custom key stores] (カスタムキーストア)、[External key stores] (外部キーストア) の順に選択します。

  4. 外部キーストアの名前を選択します。

  5. 右上隅にある [Create a KMS key in this key store] (このキーストアのKMS キーを作成する) を選択します。

    外部キーストアが接続されていない場合は、接続するように求められます。接続に失敗した場合は、問題を解決し、外部キーストアに接続してから新しい KMS キーを作成する必要があります。

    外部キーストアが接続されている場合は、キーを作成するための [Customer managed keys] (カスタマーマネージドキー) ページにリダイレクトされます。必要な[Key configuration] (キー設定) 値は既に選択されています。また、外部キーストアのカスタムキーストア ID も入力されていますが、変更可能です。

  6. 外部キーマネージャー外部キーのキー ID を入力します。この外部キーは、KMS キーで使用するための要件を満たしている必要があります。キーの作成後にこの値を変更することはできません。

    外部キーに複数の ID がある場合は、外部キーストアプロキシが外部キーの識別に使用するキー ID を入力します。

  7. 指定された外部キーストアに KMS キーを作成する予定であることを確認します。

  8. [次へ] をクリックします。

    この手順の残りの部分は、標準の KMS キー作成と同じです。

  9. エイリアス (必須) と KMS キーの説明 (オプション) を入力します。

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

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

  11. [次へ] をクリックします。

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

    注記

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

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

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

    KMS キーの削除は破壊的で元に戻せないオペレーションであり、暗号文を回復不能にする可能性があります。外部キーマテリアルが存在しても、外部キーストアに対称 KMS キーを再作成することはできません。ただし、KMS キーを削除しても関連付けられた外部キーには影響しません。外部キーストアから KMS キーを削除する方法については、「外部キーストアの KMS キーの削除をスケジュールする」を参照してください。

  14. [次へ] をクリックします。

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

    注記

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

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

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

    注記

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

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

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

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

方法 2: カスタマーマネージドキーから開始する

この手順は、AWS KMS キーマテリアルを使用して対称暗号化キーを作成する手順と同じです。ただし、この手順では、外部キーストアのカスタムキーストア ID と外部キーのキー ID を指定します。また、外部キーストアの KMS キーに必要なプロパティ値 (キースペックやキーの使用法など) を指定する必要があります。

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

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

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

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

  5. [対称] を選択します。

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

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

  8. [Key material origin] (キーマテリアルのオリジン) で、[External key store] (外部キーストア) を選択します。

  9. 指定された外部キーストアに KMS キーを作成する予定であることを確認します。

  10. [次へ] をクリックします。

  11. 新しい KMS キーの外部キーストアを表す行を選択します。

    接続されていない外部キーストアは選択できません。切断されたキーストアを接続するには、キーストア名を選択し、[Key store actions] (キーストアアクション) で [Connect] (接続) を選択します。詳細については、「外部キーストアを接続する (コンソール)」を参照してください。

  12. 外部キーマネージャー外部キーのキー ID を入力します。この外部キーは、KMS キーで使用するための要件を満たしている必要があります。キーの作成後にこの値を変更することはできません。

    外部キーに複数の ID がある場合は、外部キーストアプロキシが外部キーの識別に使用するキー ID を入力します。

  13. [次へ] をクリックします。

    この手順の残りの部分は、標準の KMS キー作成と同じです。

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

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

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

  16. [次へ] をクリックします。

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

    注記

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

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

    KMS キーの削除は破壊的で元に戻せないオペレーションであり、暗号文を回復不能にする可能性があります。外部キーマテリアルが存在しても、外部キーストアに対称 KMS キーを再作成することはできません。ただし、KMS キーを削除しても関連付けられた外部キーには影響しません。外部キーストアから KMS キーを削除する方法については、「外部キーストアの KMS キーの削除をスケジュールする」を参照してください。

  19. [次へ] をクリックします。

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

    注記

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

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

    注記

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

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

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

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

手順が成功すると、選択した外部キーストアに新しい KMS キーが表示されます。新しい KMS キーの名前やエイリアスを選択すると、その詳細ページの [Cryptographic configuration] (暗号化設定) タブに、KMS キー ([External key store] (外部キーストア)) のオリジン、カスタムキーストアの名前、ID、タイプ、外部キーの ID、キー使用方法、ステータスが表示されます。手順が失敗すると、失敗を説明するエラーメッセージが表示されます。の場合は、「外部キーストアのトラブルシューティング」を参照してください。

ヒント

カスタムキーストアで KMS キーをより簡単に識別できるようにするには、[Customer managed keys] (カスタマーマネージドキー) ページで、[Origin] (オリジン) と [Custom key store ID] (カスタムキーストア ID) 列を表示に追加します。テーブルフィールドを変更するには、ページの右上隅にある歯車アイコンを選択します。詳細については、「KMS キーテーブルをカスタマイズする」を参照してください。

外部キーストアで KMS キーを作成する (AWS KMS API)

外部キーストアで新しい KMS キーを作成するには、 CreateKeyオペレーションを使用します。以下のパラメータは必須です。

  • Origin の値は EXTERNAL_KEY_STORE にする必要があります。

  • CustomKeyStoreId パラメータは外部キーストアを識別します。指定された外部キーストアの ConnectionState は、CONNECTED である必要があります。CustomKeyStoreIdConnectionState を検出するには、DescribeCustomKeyStores オペレーションを使用します。

  • XksKeyId パラメータは外部キーを識別します。この外部キーは、KMS キーとの関連付けの要件を満たしている必要があります。

Policy または タグパラメータを使用するなど、CreateKey オペレーションの任意のオプションパラメータを使用することもできます。

注記

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

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

このコマンド例では、 CreateKeyオペレーションを使用して、外部キーストアに KMS キーを作成します。応答には、KMS キーのプロパティ、外部キーストアの ID、外部キーの ID、使用方法、ステータスが含まれます。これらのフィールドの詳細については、「外部キーストアで KMS キーを表示する」を参照してください。

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

$ aws kms create-key --origin EXTERNAL_KEY_STORE --custom-key-store-id cks-1234567890abcdef0 --xks-key-id bb8562717f809024 { "KeyMetadata": { "Arn": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "AWSAccountId": "111122223333", "CreationDate": "2022-12-02T07:48:55-07:00", "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT", "CustomKeyStoreId": "cks-1234567890abcdef0", "Description": "", "Enabled": true, "EncryptionAlgorithms": [ "SYMMETRIC_DEFAULT" ], "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "KeyManager": "CUSTOMER", "KeySpec": "SYMMETRIC_DEFAULT", "KeyState": "Enabled", "KeyUsage": "ENCRYPT_DECRYPT", "MultiRegion": false, "Origin": "EXTERNAL_KEY_STORE", "XksKeyConfiguration": { "Id": "bb8562717f809024" } } }