カスタムキーストアのトラブルシューティング - AWS Key Management Service

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

カスタムキーストアのトラブルシューティング

カスタムキーストアは、有用で優れた復元力を持つように設計されています。ただし、カスタムキーストアを操作可能にするために修復する必要のあるエラー条件がいくつかあります。

使用できない CMK を修正する方法

カスタムキーストアのカスタマーマスターキー (CMK) の キーの状態 は、通常は Enabled です。すべての CMK と同様に、カスタムキーストアで CMK を無効にするか、削除するようスケジュールすると、キーの状態が変更されます。ただし、他の CMK とは異なり、カスタムキーストアの CMK には、キーの状態Unavailable

Unavailable のキーの状態は、CMK が AWS CloudHSM クラスターから意図的に切断されたカスタムキーストアにあり、再接続を試みて失敗しました。CMK は使用できませんが、CMK を表示および管理することはできます。ただし、暗号化オペレーションで使用することはできません。

CMK のキーの状態を確認するには、[Customer managed keys (カスタマー管理型のキー)] ページで、CMK の [Status (ステータス)] フィールドを表示します。または、 DescribeKey 操作を使用して、レスポンスの KeyState 要素を表示します。詳細については、「キーの表示」を参照してください。

切断されたカスタムキーストアの CMK には、Unavailable または PendingDeletion のキーの状態があります。カスタムキーストアが AWS CloudHSM クラスターから切断されている場合でも、カスタムキーストアからの削除がスケジュールされている CMK には Pending Deletion キーの状態があります。これにより、カスタムキーストアに再接続することなく、スケジュールされたキーの削除をキャンセルできます。

使用できない CMK を修正するには、カスタムキーストアを再接続します。カスタムキーストアを再接続すると、カスタムキーストア内の CMK のキーの状態は、EnabledDisabled などの以前の状態に自動的に復元されます。削除が保留中の CMK は PendingDeletion 状態のままです。ただし、問題が解決しない場合は、使用できない CMK を有効または無効にする は、キーの状態を変更しません。有効または無効のアクションは、キーが使用可能になったときにのみ適用されます。

接続の失敗に関するヘルプについては、を参照してください 接続障害の修復方法

失敗した CMK を修正する方法

カスタムキーストアで CMK を作成して使用する際の問題は、カスタムキーストア、関連する AWS CloudHSM クラスター、CMK、またはそのキーマテリアルの問題によって発生する可能性があります。

カスタムキーストアが AWS CloudHSM クラスターから切断されると、カスタムキーストア内の CMK のキー状態はUnavailable です。切断されたカスタムキーストアに CMK を作成するすべてのリクエストは、CustomKeyStoreInvalidStateException 例外を返します。データキーを暗号化、復号化、再暗号化、または生成するすべてのリクエストは、KMSInvalidStateException 例外を返します。問題を修正するには、カスタムキーストアを再接続します

ただし、カスタムキーストア CMK を暗号化オペレーションは、キーの状態がEnabledカスタムキーストアの接続ステータスはConnected。これは、以下のいずれかの条件によって発生する可能性があります。

接続障害の修復方法

カスタムキーストアを AWS CloudHSM クラスター接続しようとしたが、オペレーションが失敗した場合、カスタムキーストアの接続ステータスは FAILED に変わります。カスタムキーストアのステータスを確認するには、カスタムキーストアのステータスを確認するには、ステータスカスタムキーストアのAWS Management ConsoleまたはConnectionState要素DescribeCustomKeyStoresレスポンス。

また、簡単に検出できるクラスター設定エラーが原因で接続の試行がすぐに失敗することがあります。この場合、 [ステータス] または ConnectionStateDISCONNECTED のままになります。これらのエラーは、試行が失敗した理由を説明するエラーメッセージまたは 例外 を返します。例外の説明とクラスターの要件を確認して問題を修正し、カスタムキーストアを更新し、必要に応じて接続を再試行してください。

接続ステータスがの場合 FAILED, 、 DescribeCustomKeyStor es 操作を実行し、応答の ConnectionErrorCode 要素を確認します。

注記

カスタムキーストアの接続ステータスが FAILED の場合は、再接続を試みる前に カスタムキーストアを切断する必要があります。FAILED 接続ステータスでカスタムキーストアに接続することはできません。

  • CLUSTER_NOT_FOUND は、AWS KMS が指定のクラスター ID を持つ AWS CloudHSM クラスターを見つけられないことを示します。これは、誤ったクラスター ID が API オペレーションに提供されたか、クラスターが削除されて置き換えられなかったために発生する可能性があります。このエラーを解決するには、AWS CloudHSM コンソールまたは DescribeClusters オペレーションを使用するなどして、クラスター ID を確認してください。クラスタが削除された場合は、元の バックアップからクラスタを作成します 。次に、カスタムキーストアを切断しカスタムキーストアクラスター ID 設定を編集して、カスタムキーストアをクラスターに再接続します

  • INSUFFICIENT_CLOUDHSM_HSMS は、関連付けられた AWS CloudHSM クラスターに HSM が含まれていないことを示します。クラスターに接続するには、少なくとも 1 つの HSM を持っている必要があります。クラスター内の HSM の数を調べるには、 DescribeClusters 操作を使用します。このエラーを解決するには、クラスターに 少なくとも 1 つの HSM を追加します 。複数の HSM を追加する場合は、別のアベイラビリティーゾーンでそれらを作成することをお勧めします。

  • INTERNAL_ERROR は、内部エラーのために AWS KMS がリクエストを完了できなかったことを示します。リクエストを再実行してください。ConnectCustomKeyStore リクエストの場合、カスタムキーストアの接続を切断してから接続を再実行します。

  • INVALID_CREDENTIALSは、適切な kmsuser アカウントのパスワードがないため、AWS KMS が関連付けられた AWS CloudHSM クラスターにログインできないことを示します。このエラーのヘルプについては、「」を参照してください 無効な kmsuser 認証情報の修正方法

  • NETWORK_ERRORS は通常、一時的なネットワークの問題を示します。カスタムキーストアを切断し、数分待ってから、もう一度接続してください。

  • SUBNET_NOT_FOUND は、AWS CloudHSM クラスター設定のサブネットが少なくとも 1 つ削除されたことを示します。AWS KMS がクラスター構成内ですべてのサブネットを見つけることができない場合、カスタムキーストアを AWS CloudHSM クラスターに接続しようとすると失敗します。

    このエラーを修正するには、次の手順を実行します最近のバックアップからクラスターを作成するには同じのAWS CloudHSMクラスタークラスター (このプロセスでは、VPC とプライベートサブネットを持つ新しいクラスター設定が作成されます)。新しいクラスターが カスタムキーストアの要件を満たしていることを確認し、新しいクラスター ID を書き留めます。次に、新しいクラスターをカスタムキーストアに関連付けるには、 カスタムキーストアの接続を切断し、カスタムキーストアのクラスター ID を新しいクラスターの ID に変更して、もう一度接続を試みます。

    ヒント

    kmsuser パスワードをリセットしないようにするには、AWS CloudHSM クラスターの最新のバックアップを使用します。

  • USER_LOCKED_OUT は、失敗したパスワードの試行回数が多すぎるため、kmsuser Crypto User (CU) アカウントが関連付けられた AWS CloudHSM クラスターからロックアウトされたことを示します。このエラーのヘルプについては、「」を参照してください 無効な kmsuser 認証情報の修正方法

    このエラーを修正するには、 カスタムキーストアを切断 し、cloudhsm_mgmt_util の changePSwd コマンドを使用して kmsuser アカウントのパスワードを変更します。次に、カスタムキーストアの kmsuser のパスワード設定を編集し、接続し直してみてください。ヘルプについては、「」の 無効な kmsuser 認証情報の修正方法 トピックで説明されている手順を参照してください。

  • USER_LOGGED_IN は、kmsuser CU アカウントが関連付けられた AWS CloudHSM クラスターにログインしていることを示します。これにより、AWS KMS が kmsuser アカウントパスワードをローテーションしてクラスターにログインするのを防ぐことができます。このエラーを修正するには、クラスターから kmsuser CU をログアウトします。クラスターにログインするために kmsuser パスワードを変更した場合は、カスタムキーストアのキーストアパスワード値も更新する必要があります。ヘルプについては、「ログアウトして再接続する方法」を参照してください。

  • USER_NOT_FOUND は、AWS KMS が関連付けられた AWS CloudHSM クラスターで kmsuser CU アカウントを見つけられないことを示します。このエラーを修正するには、クラスターで kmsuser CU アカウントを作成し、カスタムキーストアのキーストアのキーストアのパスワード値を更新します。ヘルプについては、「無効な kmsuser 認証情報の修正方法」を参照してください。

暗号化操作の失敗に応答する方法

カスタムキーストアで CMK を使用する暗号化オペレーションは、次のようなエラーで失敗することがあります。

KMSInvalidStateException: KMS cannot communicate with your CloudHSM cluster

これは HTTPS 400 エラーですが、一時的なネットワークの問題が原因である可能性があります。応答するには、まずリクエストを再試行します。ただし、それでも失敗する場合は、ネットワークコンポーネントの設定を調べます。このエラーは、発信トラフィックをブロックしているファイアウォールルールや VPC セキュリティグループルールなど、ネットワークコンポーネントの誤った設定が原因である可能性が高いです。

無効な kmsuser 認証情報の修正方法

カスタムキーストアを接続すると、AWS KMS は関連付けられた AWS CloudHSM クラスターに kmsuser暗号化ユーザー (CU) としてログインします。カスタムキーストアが切断されるまで、ログインしたままになります。 DescribeCustomKeyStor es 応答は ConnectionState INVALID_CREDENTIALS, 、次の例に示すように、の FAILED および ConnectionErrorCode の値を示しています。

カスタムキーストアを切断して kmsuser パスワードを変更すると、AWS KMS は kmsuser CU アカウントの認証情報で AWS CloudHSM クラスターにログインできなくなります。その結果、カスタムキーストアへの接続はすべて失敗します。DescribeCustomKeyStores レスポンスは、次の例に示すように、INVALID_CREDENTIALSFAILEDConnectionErrorCode の値の ConnectionState を示します。

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

また、誤ったパスワードでクラスターにログインしようとして 5 回失敗すると、AWS CloudHSM はユーザーアカウントをロックします。このクラスターにログインするには、アカウントのパスワードを変更する必要があります。

AWS KMS が kmsuser CU としてクラスターにログインしようとしたときにロックアウトレスポンスを受け取ると、カスタムキーストアの接続リクエストは失敗します。 DescribeCustomKeyStor es レスポンスには USER_LOCKED_OUT, 、次の例に示すように、の FAILED および ConnectionErrorCode の値が含まれます。 ConnectionState

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

これらの条件を修復するには、次の手順を実行します。

  1. カスタムキーストアを切断します

  2. DescribeCustomKeyStor es オペレーションを実行し、レスポンスの ConnectionErrorCode 要素の値を表示します。

    • ConnectionErrorCode の値が INVALID_CREDENTIALS の場合は、kmsuser アカウントの現在のパスワードを特定します。必要に応じて、cloudhsm_mgmt_util で changePSwd コマンドを使用して、パスワードを既知の値に設定します。

    • ConnectionErrorCode 値がの場合 USER_LOCKED_OUT, 、cloudhsm_mgmt_util で changePSwd コマンドを使用して kmsuser パスワードを変更する必要があります。

  3. kmsuser パスワード設定を編集して、クラスター内の現在の kmsuser パスワードと一致させます。このアクションは、AWS KMS にクラスターにログインするために使用するパスワードを指示します。クラスターの kmsuser パスワードは変更されません。

  4. カスタムキーストアを接続します

孤立したキーマテリアルを削除する方法

カスタムキーストアから CMK の削除をスケジュールした後、対応するキーマテリアルを関連するクラスターから手動で削除する必要が生じる場合があります。

カスタムキーストアで CMK を作成すると、AWS KMS は AWS KMS に CMK メタデータを作成し、関連付けられた AWS CloudHSM クラスターにキーマテリアルを生成します。カスタムキーストアで CMK の削除をスケジュールすると、待機期間の後、AWS KMS は CMK メタデータを削除します。次に、AWS KMS は、できる限り対応するキーマテリアルをクラスターから削除します。AWS KMS はクラスターバックアップからキーマテリアルを削除しようとしません。

もしAWS KMSカスタムキーストアが切断された場合など、がキーマテリアルを削除できない場合、AWS KMSはエントリをあなたのAWS CloudTrailログ。このエントリには、CMK ID、AWS CloudHSM クラスター ID、およびキーマテリアルのキーハンドルが含まれます。

関連する AWS CloudHSM クラスターからキーマテリアルを削除するには、次のような手順を使用します。この例では、AWS CLI および AWS CloudHSM コマンドラインツールを使用していますが、CLI の代わりに AWS Management Console を使用することもできます。

  1. カスタムキーストアを切断していない場合は、切断してから key_mgmt_util にログインします(を参照) 切断してログインする方法

  2. クラスタ内の HSM から キーを削除するには、key_mgmt_util の Delete Key コマンドを使用します。

    たとえば、このコマンドは、クラスターの HSM 262162 からキーを削除します。キーハンドルは CloudTrail ログエントリにリストされます。

    Command: deleteKey -k 262162 Cfm3DeleteKey returned: 0x00 : HSM Return: SUCCESS Cluster Error Status Node id 0 and err state 0x00000000 : HSM Return: SUCCESS Node id 1 and err state 0x00000000 : HSM Return: SUCCESS Node id 2 and err state 0x00000000 : HSM Return: SUCCESS
  3. key_mgmt_util からログアウトし、の説明に従ってカスタムキーストアを再接続 ログアウトして再接続する方法します。

CMK の削除されたキーマテリアルの復旧方法

カスタマーマスターキーのキーマテリアルが削除された場合は、CMK は使用できず、CMK で暗号化されたすべての暗号テキストを復号化することはできません。これは、カスタムキーストアの CMK のキーマテリアルが関連する AWS CloudHSM クラスターから削除された場合に発生します。ただし、キーマテリアルを復元することは可能な場合もあります。

カスタムキーストアでカスタマーマスターキー (CMK) を作成すると、AWS KMS は関連する AWS CloudHSM クラスターにログインし、CMK のキーマテリアルを作成します。また、それだけが知っている値にパスワードを変更し、カスタムキーストアが接続されている間だけ、ログインしたままになります。キー所有者、つまりキーを作成した CU のみがキーを削除できるため、誤って HSM からキーが削除されることはありません。

ただし、CMK のキーマテリアルがクラスター内の HSM から削除されると、CMK キーの状態は最終的に UNAVAILABLE に変わります。暗号化オペレーションに CMK を使用しようとすると、KMSInvalidStateException 例外が発生してオペレーションが失敗します。最も重要なことは、CMK で暗号化されたデータは復号化できないことです。

特定の状況では、キーマテリアルを含む バックアップからクラスターを作成することで、 削除されたキーマテリアルを回復できます。この戦略は、キーが存在していて削除される前に少なくとも 1 つのバックアップが作成された場合にのみ機能します。

キーマテリアルを復旧するには、次の手順を実行します。

  1. キーマテリアルが格納されているクラスターバックアップを見つけます。バックアップには、クラスターとその暗号化されたデータをサポートするために必要なすべてのユーザーとキーも含まれている必要があります。

    DescribeBackup s 操作を使用して、クラスタのバックアップを一覧表示します。バックアップのタイムスタンプを使用すると、バックアップの選択に役立ちます。カスタムキーストアに関連付けられているクラスターへの出力を制限するには、次の例のように Filters パラメータを使用します。

    $ aws cloudhsmv2 describe-backups --filters clusterIds=<cluster ID> { "Backups": [ { "ClusterId": "cluster-1a23b4cdefg", "BackupId": "backup-9g87f6edcba", "CreateTimestamp": 1536667238.328, "BackupState": "READY" }, ... ] }
  2. 選択したバックアップからクラスタを作成します。バックアップに削除されたキーおよびクラスターに必要な他のユーザーとキーが含まれていることを確認します。

  3. カスタムキーストアを切断して、そのプロパティを編集できます。

  4. カスタムキーストアのクラスター ID を編集します。バックアップから作成したクラスターのクラスター ID を入力します。クラスターは元のクラスターとバックアップ履歴を共有するため、新しいクラスター ID が有効である必要があります。

  5. カスタムキーストアを再接続します。

kmsuser としてログインする方法

カスタムキーストアの AWS CloudHSM クラスターにキーマテリアルを作成して管理するために、AWS KMS は kmsuser 暗号化ユーザー (CU) アカウントを使用します。クラスターに kmsuser CU アカウントを作成し、カスタムキーストアを作成するときにそのパスワードを AWS KMS に入力します。

一般的に、AWS KMS は kmsuser アカウントを管理します。ただし、カスタムキーストアを切断し、kmsuser CU としてクラスターにログインして、cloudhsm_mgmt_util および key_mgmt_util コマンドラインツールを使用する必要があるタスクもあります。

注記

カスタムキーストアが切断されているときは、カスタムキーストアでカスタマーマスターキー (CMK) を作成したり、既存の CMK を暗号化オペレーションに使用しようとすると、すべて失敗します。この操作により、ユーザーが機密データを保存したりアクセスしたりすることを防ぐことができます。

このトピックではカスタムキーストアを切断してログインするとしてkmsuserを実行するには、次の手順を実行しますAWS CloudHSMコマンドラインツールとカスタムキーストアをログアウトして再接続します

切断してログインする方法

関連するクラスターに kmsuser CU としてログインする必要があるたびに、次の手順を実行します。

  1. カスタムキーストアがまだ切断されていない場合は、切断します。AWS Management Console または AWS KMS API を使用できます。

    カスタムキーが接続されている間、AWS KMS は kmsuser としてログインします。これにより、kmsuser としてログインしたり、kmsuser パスワードを変更することができなくなります。

    たとえば、このコマンドは、 DisconnectCustomKeyStore を使用して、サンプルキーストアを切断します。カスタムキーストア ID 例を有効な ID と置き換えます。

    $ aws kms disconnect-custom-key-store --custom-key-store-id cks-1234567890abcdef0
  2. cloudhsm_mgmt_util を起動します。で説明されているプロシージャcloudhsm_mgmt_util を実行する準備の セクションAWS CloudHSMユーザーガイド

  3. cloudhsm_mgmt_util にログインします。AWS CloudHSMクラスターを暗号オフィサー(CO) である。

    たとえば、このコマンドは admin という名前の CO としてログインします。CO ユーザー名とパスワードの例を有効な値に置き換えます。

    aws-cloudhsm>loginHSM CO admin <password> loginHSM success on server 0(10.0.2.9) loginHSM success on server 1(10.0.3.11) loginHSM success on server 2(10.0.1.12)
  4. changePswd コマンドを使用して、kmsuser アカウントのパスワードを知っているものに変更します (AWS KMS は、カスタムキーストアに接続するときにパスワードをローテーションします)。パスワードは 7〜32 の英数字で構成する必要があります。大文字と小文字が区別され、特殊文字を含めることはできません。

    たとえば、このコマンドは、kmsuser パスワードを tempPassword に変更します。

    aws-cloudhsm>changePswd CU kmsuser tempPassword *************************CAUTION******************************** This is a CRITICAL operation, should be done on all nodes in the cluster. Cav server does NOT synchronize these changes with the nodes on which this operation is not executed or failed, please ensure this operation is executed on all nodes in the cluster. **************************************************************** Do you want to continue(y/n)?y Changing password for kmsuser(CU) on 3 nodes
  5. 設定したパスワードを使用して、key_mgmt_util または cloudhsm_mgmt_util に kmsuser としてログインします。詳細な手順については、「 cloudhsm_mgmt_util の使用開始」および「key_mgmt_utilの使用開始」を参照してください。使用するツールは、タスクによって異なります。

    たとえば、このコマンドは key_mgmt_util にログインします。

    Command: loginHSM -u CU -s kmsuser -p tempPassword Cfm3LoginHSM returned: 0x00 : HSM Return: SUCCESS Cluster Error Status Node id 0 and err state 0x00000000 : HSM Return: SUCCESS Node id 1 and err state 0x00000000 : HSM Return: SUCCESS Node id 2 and err state 0x00000000 : HSM Return: SUCCESS

ログアウトして再接続する方法

  1. タスクを実行し、コマンドラインツールからログアウトします。ログアウトしないと、カスタムキーストアへの再接続が失敗します。

    Command: logoutHSM Cfm3LogoutHSM returned: 0x00 : HSM Return: SUCCESS Cluster Error Status Node id 0 and err state 0x00000000 : HSM Return: SUCCESS Node id 1 and err state 0x00000000 : HSM Return: SUCCESS
  2. カスタムキーストアの kmsuser パスワード設定を編集します

    これにより、クラスターの kmsuser の現在のパスワードが AWS KMS に通知されます。このステップを省略すると、AWS KMS は kmsuser としてクラスターにログインできなくなり、カスタムキーストアの再接続がすべて失敗します。「」AWS Management ConsoleまたはKeyStorePasswordのパラメータUpdateCustomKeyStoreオペレーション.

    たとえば、このコマンドは現在のパスワードが tempPassword あることを AWS KMS に通知します。例のパスワードを実際のパスワードに置き換えます。

    $ aws kms update-custom-key-store --custom-key-store-id cks-1234567890abcdef0 --key-store-password tempPassword
  3. カスタムキーストアを AWS KMS に再接続します。カスタムキーストア ID 例を有効な ID と置き換えます。接続処理中に、AWS KMS は kmsuser パスワードを、それだけが知っている値に変更します。

    ConnectCustomKeyStore 操作はすばやく返されますが、接続プロセスに長時間かかる場合があります。最初のレスポンスは、接続プロセスの成功を示していません。

    $ aws kms connect-custom-key-store --custom-key-store-id cks-1234567890abcdef0
  4. DescribeCustomKey Stores 操作を使用して、カスタムキーストアが接続されていることを確認します。カスタムキーストア 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" ], }