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

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

外部キーストアのトラブルシューティング

外部キーストアのほとんどの問題の解決は、各例外で AWS KMS 表示されるエラーメッセージ、または外部キーストアを外部キーストアプロキシに接続しようとしたときに が AWS KMS 返す接続エラーコードによって示されます。ただし、一部の問題はもう少し複雑です。

外部キーストアの問題を診断する際は、最初に原因を特定します。これにより、対処法の範囲が狭まり、トラブルシューティングがより効率的になります。

  • AWS KMS — 外部キーストア設定 の値が正しくないなど AWS KMS、問題が 内にある可能性があります。

  • 外部 — この問題は、外部キーストアプロキシ AWS KMS、外部キーマネージャー、外部キー、または VPC エンドポイントサービスの設定または操作に関する問題など、 の外部で発生する可能性があります。

  • ネットワーク — プロキシエンドポイント、ポート、プライベート DNS、ドメインの問題など、接続またはネットワークに問題がある可能性があります。

注記

外部キーストアで管理オペレーションが失敗すると、複数の異なる例外が生成されます。ただし AWS KMS 、暗号化オペレーションは、外部キーストアの外部設定または接続状態に関連するすべての障害KMSInvalidStateExceptionに対して を返します。問題を特定するには、添付のエラーメッセージテキストを使用します。

ConnectCustomKeyStore オペレーションは、接続プロセスが完了する前に迅速に成功します。接続プロセスが成功したかどうかを判断するには、外部キーストアの接続状態を表示します。接続プロセスが失敗した場合、 AWS KMS は原因を説明し、対処方法を提案する接続エラーコードを返します。

外部キーストアのトラブルシューティングツール

AWS KMS には、外部キーストアとそのキーに関する問題を特定して解決するのに役立つツールがいくつか用意されています。これらのツールは、外部キーストアプロキシおよび外部キーマネージャーに付属するツールと組み合わせて使用します。

注記

外部キーストアプロキシと外部キーマネージャーを使用すると、外部キーストアとその KMS キーを簡単に作成し、維持できます。詳細については、外部ツールのドキュメントを参照してください。

AWS KMS 例外とエラーメッセージ

AWS KMS は、発生した問題に関する詳細なエラーメッセージを提供します。 AWS KMS 例外に関する追加情報は、AWS Key Management Service 「 API リファレンス」および AWS SDKs」を参照してください。 AWS KMS コンソールを使用している場合でも、これらのリファレンスが役立つ場合があります。例えば、CreateCustomKeyStores オペレーションの場合は、エラーリストを参照してください。

外部キーストアプロキシのパフォーマンスを最適化するために、 AWS KMS は、5 分間の特定の集約期間内のプロキシの信頼性に基づいて例外を返します。500 Internal Server Error、503 Service Unavailable、または接続タイムアウトが発生した場合、信頼性の高いプロキシは KMSInternalExceptionを返し、自動再試行をトリガーして、最終的にリクエストが成功するようにします。ただし、信頼性の低いプロキシは を返しますKMSInvalidStateException。詳細については、「外部キーストアのモニタリング」を参照してください。

外部キーストアの KMS キーを使用して別の AWS サービスのリソースを保護する場合など、別の AWS サービスで問題が発生した場合、 AWS そのサービスは問題の特定に役立つ追加情報を提供することがあります。 AWS サービスがメッセージを提供しない場合は、KMS キーの使用を記録するCloudTrail ログにエラーメッセージを表示できます。

CloudTrail ログ

AWS KMS コンソールのアクションを含むすべての AWS KMS API オペレーションは、 AWS CloudTrail logs. AWS KMS records に記録され、オペレーションの成功と失敗のログエントリが記録されます。オペレーションが失敗した場合、ログエントリには AWS KMS の例外名 (errorCode) とエラーメッセージ (errorMessage) が含まれます。この情報を使用してエラーを特定し、解決できます。例については、外部キーストアの KMS キーを使用した復号の失敗を参照してください。

ログエントリにはリクエスト ID も含まれます。リクエストが外部キーストアプロキシに到達した場合は、ログエントリのリクエスト ID を使用して、プロキシログで対応するリクエストを検索できます (プロキシが提供している場合)。

CloudWatch メトリクス

AWS KMS は、レイテンシー、スロットリング、プロキシエラー、外部キーマネージャーのステータス、TLS 証明書の有効期限が切れるまでの日数、プロキシ認証情報の報告された経過時間など、外部キーストアのオペレーションとパフォーマンスに関する詳細な Amazon CloudWatch メトリクスを記録します。これらのメトリクスを使用して、外部キーストアのオペレーション用のデータモデルと、差し迫った問題が発生する前に警告する CloudWatch アラームを開発できます。

重要

AWS KMS では、外部キーストアメトリクスをモニタリングする CloudWatch アラームを作成することをお勧めします。これらのアラームは、問題が発生する前に問題の初期兆候を警告します。

モニタリンググラフ

AWS KMS は、 AWS KMS コンソールの各外部キーストアの詳細ページに外部キーストア CloudWatch メトリクスのグラフを表示します。グラフ内のデータを使用して、エラーの原因の特定、差し迫った問題の検出、ベースラインの確立、 CloudWatch アラームのしきい値の絞り込みを行うことができます。モニタリンググラフの解釈とデータ使用方法の詳細については、「外部キーストアのモニタリング」を参照してください。

外部キーストアと KMS キーの表示

AWS KMS は、 AWS KMS コンソールの外部キーストア、および DescribeCustomKeyStoresおよび DescribeKeyオペレーションへのレスポンスで、外部キーストアと KMS キーに関する詳細情報を表示します。これらの表示には、外部キーストアの接続状態や KMS キーに関連付けられている外部キーの ID など、トラブルシューティングに使用できる情報を含む、外部キーストアと KMS キーの特別なフィールドが含まれています。詳細については、「外部キーストアを表示する」および「外部キーストアで KMS キーを表示する」を参照してください。

XKS プロキシテストクライアント

AWS KMS は、外部キーストアプロキシがAWS KMS 外部キーストアプロキシ API 仕様 に準拠していることを検証するオープンソースのテストクライアントを提供します。このテストクライアントを使用して、外部キーストアプロキシの問題を特定し、解決できます。

設定エラー

外部キーストアを作成するときは、プロキシ認証情報プロキシ URI エンドポイントプロキシ URI パスVPC エンドポイントサービス名など、外部キーストアの設定を構成するプロパティ値を指定します。がプロパティ値のエラー AWS KMS を検出すると、オペレーションは失敗し、障害のある値を示すエラーを返します。

設定に関する問題の多くは、誤った値を修正することで解決できます。無効なプロキシ URI パスやプロキシ認証情報は、外部キーストアを切断せずに修正できます。一意性の要件を含む、これらの値の定義については「前提条件を構成する」を参照してください。これらの値を更新する手順については、「外部キーストアのプロパティの編集」を参照してください。

プロキシ URI パスとプロキシ認証情報値のエラーを避けるために、外部キーストアを作成または更新するときは、プロキシ設定ファイルを AWS KMS コンソールにアップロードします。これは、外部キーストアプロキシまたは外部キーマネージャーから提供される、プロキシ URI パスとプロキシ認証情報値を含む JSON ベースのファイルです。 AWS KMS API オペレーションでプロキシ設定ファイルは使用できませんが、 ファイル内の値を使用して、プロキシ内の値と一致する API リクエストのパラメータ値を提供するのに役立ちます。

一般的な設定エラー

例外: CustomKeyStoreInvalidStateException (CreateKey)、KMSInvalidStateException (暗号化オペレーション)、XksProxyInvalidConfigurationException (管理オペレーション、CreateKey を除く)

接続エラーコード: XKS_PROXY_INVALID_CONFIGURATIONXKS_PROXY_INVALID_TLS_CONFIGURATION

パブリックエンドポイント接続を持つ外部キーストアの場合、 は外部キーストアを作成および更新するときにプロパティ値を AWS KMS テストします。VPC エンドポイントサービス接続を備えた外部キーストアの場合、 AWS KMS は、外部キーストアの接続および更新時にプロパティ値をテストします。

注記

外部キーストアをその外部キーストアのプロキシに接続する試みが失敗しても、非同期の ConnectCustomKeyStore オペレーションは成功する場合があります。この場合、例外はありませんが、外部キーストアの接続状態は「失敗」で、エラーメッセージを説明する接続エラーコードが表示されます。詳細については、「外部キーストア接続エラー」を参照してください。

がプロパティ値のエラー AWS KMS を検出すると、オペレーションは失敗し、次のいずれかのエラーメッセージXksProxyInvalidConfigurationExceptionとともに を返します。

URI パスが無効なため、外部キーストアプロキシがリクエストを拒否しました。外部キーストアの URI パスを検証し、必要に応じて更新します。
  • プロキシ URI パスは、プロキシ API への AWS KMS リクエストのベースパスです。 APIs このパスが間違っていると、プロキシへのリクエストはすべて失敗します。外部キーストアの現在のプロキシ URI パスを表示するには、 AWS KMS コンソールまたは DescribeCustomKeyStores オペレーションを使用します。正しいプロキシ URI パスを検出するには、外部キーストアプロキシのドキュメントを参照してください。プロキシ URI パス値の修正については、「外部キーストアのプロパティの編集」を参照してください。

  • 外部キーストアプロキシのプロキシ URI パスは、外部キーストアプロキシまたは外部キーマネージャーの更新によって変更される可能性があります。これらの変更については、外部キーストアプロキシまたは外部キーマネージャーのドキュメントを参照してください。

XKS_PROXY_INVALID_TLS_CONFIGURATION

AWS KMS が、外部キーストアプロキシへの TLS 接続を確立できません。証明書を含む、TLS 設定を検証します。
  • すべての外部キーストアプロキシには TLS 証明書が必要です。TLS 証明書は、外部キーストアでサポートされている公開認証機関 (CA) によって発行される必要があります。サポートされている CA のリストについては、「 AWS KMS 外部キーストアプロキシ API 仕様」の、「信頼できる認証機関」を参照してください。

  • パブリックエンドポイント接続の場合、TLS 証明書のサブジェクト共通名 (CN) が、外部キーストアプロキシのプロキシ URI エンドポイントのドメイン名と一致する必要があります。例えば、パブリックエンドポイントが https://myproxy.xks.example.com の場合、TLS、TLS 証明書の CN は、myproxy.xks.example.com または *.xks.example.com である必要があります。

  • VPC エンドポイントサービス接続の場合、TLS 証明書のサブジェクト共通名 (CN) が、VPC エンドポイントサービスのプライベート DNS 名と一致する必要があります。例えば、プライベート DNS 名が myproxy-private.xks.example.com の場合、TLS 証明書の CN は、myproxy-private.xks.example.com または *.xks.example.com である必要があります。

  • TLS 証明書を有効期限切れにすることはできません。TLS 証明書の有効期限を取得するには、OpenSSL などの SSL ツールを使用します。外部キーストアに関連付けられた TLS 証明書の有効期限をモニタリングするには、 XksProxyCertificateDaysToExpire CloudWatch メトリクスを使用します。TLS 証明書の有効期限が切れるまでの日数は、 AWS KMS コンソールのモニタリングセクションにも表示されます。

  • パブリックエンドポイント接続を使用している場合は、SSL テストツールを使用して SSL 設定をテストします。TLS 接続エラーは、証明書チェーンが間違っていることが原因である可能性があります。

VPC エンドポイントサービス接続設定のエラー

例外: XksProxyVpcEndpointServiceNotFoundExceptionXksProxyVpcEndpointServiceInvalidConfigurationException

一般的な接続の問題に加えて、VPC エンドポイントサービス接続を使用して外部キーストアを作成、接続、または更新するときに、次の問題が発生する場合があります。 は、 の作成、 の接続、および外部キーストアの更新中に、VPC エンドポイントサービス接続を使用して外部キーストアのプロパティ値を AWS KMS テストします。 カスタムキーストアの接続と切断 外部キーストアのプロパティの編集設定エラーが原因で管理オペレーションが失敗すると、次の例外が生成されます。

XksProxyVpcEndpointServiceNotFoundException

原因は、次のいずれかである可能性があります。

  • VPC エンドポイントのサービス名が間違っています。外部キーストアの VPC エンドポイントサービス名が正しく、外部キーストアのプロキシ URI エンドポイント値と一致していることを検証します。VPC エンドポイントサービス名を検索するには、Amazon VPC コンソールまたは DescribeVpcEndpointServicesオペレーションを使用します。既存の外部キーストアの VPC エンドポイントサービス名とプロキシ URI エンドポイントを検索するには、 AWS KMS コンソールまたは DescribeCustomKeyStoresオペレーションを使用します。詳細については、「外部キーストアを表示する」を参照してください。

  • VPC エンドポイントサービスは、外部キーストア AWS リージョン とは異なる にある可能性があります。VPC エンドポイントサービスと外部キーストアが同じリージョンにあることを検証します。( などのリージョン名の外部名はus-east-1、com.amazonaws.vpce.us-east-1 などの VPC エンドポイントサービス名の一部ですvpce-svc-example。) 外部キーストアの VPC エンドポイントサービス要件のリストについては、「VPC エンドポイントサービス」を参照してください。VPC エンドポイントサービスまたは外部キーストアを別のリージョンに移動することはできません。ただし、VPC エンドポイントサービスと同じリージョンに新しい外部キーストアを作成できます。詳細については、「VPC エンドポイントサービス接続の設定」および「外部キーストアの作成」を参照してください。

  • AWS KMS は、VPC エンドポイントサービスの許可されたプリンシパルではありません。VPC エンドポイントサービスの [Allow principals] (許可プリンシパル) リストには、cks.kms.eu-west-3.amazonaws.com のような cks.kms.<region>.amazonaws.com 値を含める必要があります。この値を追加する手順については、『AWS PrivateLink ガイド』の「許可の管理」を参照してください。

XksProxyVpcEndpointServiceInvalidConfigurationException

このエラーは、VPC エンドポイントサービスが次の要件のいずれかを満たしていない場合に発生します。

  • VPC には、それぞれが異なるアベイラビリティーゾーンに存在する 2 つ以上のプライベートサブネットが必要です。VPC へのサブネットの追加の詳細については、『Amazon VPC ユーザーガイド』の「VPC でのサブネットの作成」を参照してください。

  • VPC エンドポイントのサービスタイプには、ゲートウェイロードバランサーではなく、Network Load Balancer を使用する必要があります。

  • VPC エンドポイントサービスに承認は不要です (承認が必要は誤りです)。各接続リクエストを手動で承諾する必要がある場合、VPC エンドポイントサービスを使用して外部キーストアプロキシに接続 AWS KMS することはできません。詳細については、『AWS PrivateLink ガイド』の「接続リクエストの承認または拒否」を参照してください。

  • VPC エンドポイントサービスには、パブリックドメインのサブドメインであるプライベート DNS 名が必要です。例えば、プライベート DNS 名が https://myproxy-private.xks.example.com の場合、xks.example.com または example.com ドメインにはパブリック DNS サーバーが必要です。VPC エンドポイントサービスのプライベート DNS 名を表示または変更するには、『AWS PrivateLink ガイド』の「VPC エンドポイントサービスの DNS 名の管理」を参照してください。

  • プライベート DNS 名ドメインのドメイン検証ステータスは、verified である必要があります プライベート DNS 名ドメインの検証ステータスを表示、更新するには、「プライベート DNS 名ドメインの検証」を参照して下さい。必要なテキストレコードを追加した後、更新された検証ステータが表示されるまでに数分かかる場合があります。

    注記

    プライベート DNS ドメインは、パブリックドメインのサブドメインである場合にのみ検証できます。サブドメインでない場合は、必要な TXT レコードを追加後も、プライベート DNS ドメインの検証ステータスは変わりません。

  • VPC エンドポイントサービスのプライベート DNS 名は、外部キーストアのプロキシ URI エンドポイント値と一致する必要があります。VPC エンドポイントサービス接続を備えた外部キーストアの場合、プロキシ URI エンドポイントは https:// で、その後に VPC エンドポイントサービスのプライベート DNS 名が続く必要があります。プロキシ URI エンドポイント値を表示するには、「外部キーストアを表示する」を参照してください。プロキシ URI エンドポイント値を変更するには、「外部キーストアのプロパティの編集」を参照してください。

外部キーストア接続エラー

外部キーストアを外部キーストアプロキシに接続するプロセスは、完了までに約 5 分かかります。すぐに失敗しない限り、ConnectCustomKeyStore オペレーションは HTTP 200 レスポンスと、プロパティを含まない JSON オブジェクトを返します。ただし、この初期レスポンスは接続に成功したことを示していません。外部キーストアが接続されているかどうかを判断するには、その接続状態を参照してください。接続が失敗すると、外部キーストアの接続状態が FAILEDに変わり、失敗の原因を説明する接続エラーコード AWS KMS が返されます。

注記

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

外部キーストアの接続状態を表示するには:

  • DescribeCustomKeyStores レスポンスで、 ConnectionState要素の値を表示します。

  • AWS KMS コンソールでは、接続状態が外部キーストアテーブルに表示されます。また、各外部キーストアの詳細ページの [General configuration] (一般設定) セクションに、[Connection state] (接続状態) が表示されます。

接続状態が FAILED の場合、接続エラーコードがエラーを説明します。

接続エラーコードを表示するには:

  • DescribeCustomKeyStores レスポンスで、 ConnectionErrorCode要素の値を表示します。この要素は、ConnectionStateFAILED の場合にのみ、DescribeCustomKeyStores レスポンスに表示されます。

  • AWS KMS コンソールで接続エラーコードを表示するには、外部キーストアの詳細ページで「失敗」値にカーソルを合わせます。

    カスタムキーストアの詳細ページの接続エラーコード

外部キーストアの接続エラーコード

次の接続エラーコードは、外部キーストアに適用されます

INTERNAL_ERROR

AWS KMS は内部エラーのためリクエストを完了できませんでした。リクエストを再試行します。ConnectCustomKeyStore リクエストの場合、カスタムキーストアの接続を切断してから接続を再実行します。

INVALID_CREDENTIALS

指定された外部キーストアプロキシでは、XksProxyAuthenticationCredential 値の一方または両方が無効です。

NETWORK_ERRORS

ネットワークエラーにより、カスタムキーストアをバッキングキーストアに接続 AWS KMS できません。

XKS_PROXY_ACCESS_DENIED

AWS KMS リクエストは、外部キーストアプロキシへのアクセスを拒否されます。外部キーストアプロキシに承認ルールがある場合は、そのルールがユーザーに代わって、 AWS KMS とプロキシの通信を許可していることを検証します。

XKS_PROXY_INVALID_CONFIGURATION

設定エラーにより、外部キーストアはプロキシに接続できません。XksProxyUriPath の値を検証します。

XKS_PROXY_INVALID_RESPONSE

AWS KMS は、外部キーストアプロキシからのレスポンスを解釈できません。この接続エラーコードが繰り返し表示される場合は、外部キーストアプロキシベンダーに通知してください。

XKS_PROXY_INVALID_TLS_CONFIGURATION

AWS KMS TLS 設定が無効であるため、 は外部キーストアプロキシに接続できません。外部キーストアプロキシが TLS 1.2 または 1.3 をサポートしていることを検証します。また、TLS 証明書の有効期限が切れていないこと、XksProxyUriEndpoint 値のホスト名と一致していること、信頼できる認証機関リストに含まれる信頼できる認証機関によって署名されていることを検証します。

XKS_PROXY_NOT_REACHABLE

AWS KMS は外部キーストアプロキシと通信できません。XksProxyUriEndpointXksProxyUriPath が正しいことを検証します。外部キーストアプロキシのツールを使用して、プロキシがアクティブで、ネットワーク上で使用可能であることを検証します。また、外部キーマネージャーインスタンスが正しく動作していることを検証します。外部キーマネージャーインスタンスがすべて使用できないとプロキシが報告した場合、接続試行はこの接続エラーコードで失敗します。

XKS_PROXY_TIMED_OUT

AWS KMS は外部キーストアプロキシに接続できますが、プロキシは割り当てられた時間 AWS KMS 内に に応答しません。この接続エラーコードが繰り返し表示される場合は、外部キーストアプロキシベンダーに通知してください。

XKS_VPC_ENDPOINT_SERVICE_INVALID_CONFIGURATION

Amazon VPC エンドポイントサービスの設定が、 AWS KMS 外部キーストアの要件に準拠していません。

  • VPC エンドポイントサービスは、呼び出し元の AWS アカウントのインターフェイスエンドポイント用のエンドポイントサービスである必要があります。

  • Network Load Balancer (NLB) は、それぞれが異なるアベイラビリティーゾーンに存在する 2 つ以上のサブネットに接続されていること。

  • Allow principals リストには、 cks.kms.<region>.amazonaws.comなどのリージョン AWS KMS のサービスプリンシパルが含まれている必要がありますcks.kms.us-east-1.amazonaws.com

  • 接続リクエストの承認を要求しないでください。

  • プライベート DNS 名を付ける必要があります。VPC_ENDPOINT_SERVICE 接続の外部キーストアのプライベート DNS 名は、その AWS リージョン内で一意である必要があります。

  • プライベート DNS 名のドメインの検証ステータスは、verified である必要があります。

  • TLS 証明書は、エンドポイントにアクセス可能なプライベート DNS ホスト名を指定します。

XKS_VPC_ENDPOINT_SERVICE_NOT_FOUND

AWS KMS は、外部キーストアプロキシとの通信に使用する VPC エンドポイントサービスを見つけることができません。XksProxyVpcEndpointServiceName が正しく、 AWS KMS サービスプリンシパルに、Amazon VPC エンドポイントサービスに対するサービスコンシューマー許可があることを検証します。

レイテンシーとタイムアウトエラー

例外: CustomKeyStoreInvalidStateException (CreateKey)、KMSInvalidStateException (暗号化オペレーション)、XksProxyUriUnreachableException (管理オペレーション)

接続エラーコード: XKS_PROXY_NOT_REACHABLEXKS_PROXY_TIMED_OUT

AWS KMS が 250 ミリ秒のタイムアウト間隔内にプロキシに接続できない場合、 例外が返されます。 CreateCustomKeyStoreおよび は UpdateCustomKeyStoreを返しますXksProxyUriUnreachableException暗号化オペレーションにより、問題を説明するエラーメッセージとともに標準 KMSInvalidStateException が返されます。失敗ConnectCustomKeyStoreした場合、 は問題を説明する接続エラーコード AWS KMS を返します。

タイムアウトエラーは一時的な問題のため、リクエストを再試行することで解決できる場合があります。問題が解決しない場合は、外部キーストアプロキシがアクティブでネットワークに接続されていること、そのプロキシ URI エンドポイント、プロキシ URI パス、 VPC エンドポイントのサービス名 (存在する場合) が外部キーストアで正しいことを検証します。また、外部キーマネージャーが外部キーストア AWS リージョン の に近いことを確認します。これらの値のいずれかを更新する必要がある場合は、「外部キーストアのプロパティの編集」を参照して下さい。

レイテンシーパターンを追跡するには、コンソールのモニタリングセクションXksProxyLatency CloudWatch メトリクスと平均レイテンシーグラフ (そのメトリクスに基づく) AWS KMS を使用します。外部キーストアプロキシは、レイテンシーとタイムアウトを追跡するログやメトリクスも生成する場合があります。

XksProxyUriUnreachableException

AWS KMS は外部キーストアプロキシと通信できません。これは一時的なネットワークの問題である可能性があります。このエラーが繰り返し表示される場合は、外部キーストアプロキシがアクティブでネットワークに接続されていること、エンドポイント URI が外部キーストアで正しいことを検証します。
  • 外部キーストアプロキシは、250 ミリ秒のタイムアウト期間内に AWS KMS プロキシ API リクエストに応答しませんでした。これは、一時的なネットワークの問題か、プロキシのオペレーションまたはパフォーマンスの問題である可能性があります。再試行しても問題が解決しない場合は、外部キーストアプロキシ管理者に通知してください。

多くの場合、レイテンシーやタイムアウトエラーは接続障害として表示されます。ConnectCustomKeyStore オペレーションが失敗すると、外部キーストアの接続状態が に変わり、エラーを説明する接続エラーコードFAILED AWS KMS が返されます。接続エラーコードのリストとエラー解決方法については、「外部キーストアの接続エラーコード」を参照してください。[All custom key stores] (すべてのカスタムキーストア) と [External key stores] (外部キーストア) の接続コードリストは、外部キーストアに適用されます。次の接続エラーは、レイテンシーとタイムアウトに関連しています。

XKS_PROXY_NOT_REACHABLE

-または-

CustomKeyStoreInvalidStateException, KMSInvalidStateException, XksProxyUriUnreachableException

AWS KMS は外部キーストアプロキシと通信できません。外部キーストアプロキシがアクティブでネットワークに接続されていること、外部キーストアの URI パスとエンドポイント URI または VPC サービス名が正しいことを検証します。

このエラーは、次の原因によって発生する可能性があります。

  • 外部キーストアプロキシがアクティブでないか、ネットワークに接続されていない。

  • 外部キーストア設定のプロキシ URI エンドポイントプロキシ URI パス、または VPC エンドポイントのサービス名 (該当する場合) の値にエラーがある。外部キーストアの設定を表示するには、 DescribeCustomKeyStoresオペレーションを使用するか、コンソールで外部キーストアの詳細ページを表示します。 AWS KMS

  • AWS KMS と外部キーストア proxy. AWS KMS communicates の間のネットワークパスに、ポートエラーなどのネットワーク設定エラーが発生する可能性があります。ポート 443 の外部キーストアプロキシと通信します。この値は設定できません。

  • 外部キーストアプロキシが (GetHealthStatusレスポンスで) すべての外部キーマネージャーインスタンスが であると報告した場合UNAVAILABLEConnectCustomKeyStoreオペレーションは ConnectionErrorCodeの で失敗しますXKS_PROXY_NOT_REACHABLE。ヘルプについては、外部キーマネージャーのドキュメントを参照してください。

  • このエラーは、外部キーマネージャーと外部キーストア AWS リージョン を持つ との間の物理的な距離が長いことが原因で発生する可能性があります。 AWS リージョン と外部キーマネージャー間の ping レイテンシー (ネットワークラウンドトリップタイム (RTT)) は 35 ミリ秒以下にする必要があります。外部キーマネージャー AWS リージョン に近い に外部キーストアを作成するか、外部キーマネージャーを に近いデータセンターに移動する必要がある場合があります AWS リージョン。

XKS_PROXY_TIMED_OUT

-または-

CustomKeyStoreInvalidStateException, KMSInvalidStateException, XksProxyUriUnreachableException

外部キーストアプロキシが時間内に応答しなかったため、AWS KMS はリクエストを拒否しました。リクエストを再試行します。このエラーが繰り返し表示される場合は、外部キーストアプロキシ管理者に報告してください。

このエラーは、次の原因によって発生する可能性があります。

  • このエラーは、外部キーマネージャーと外部キーストアプロキシ間の物理的な距離が長いために発生する可能性があります。可能な場合は、外部キーストアプロキシを外部キーマネージャーの近くに移動します。

  • タイムアウトエラーは、プロキシが からのリクエストの量と頻度を処理するように設計されていない場合に発生する可能性があります AWS KMS。 CloudWatch メトリクスが永続的な問題を示している場合は、外部キーストアプロキシ管理者に通知します。

  • タイムアウトエラーは、外部キーマネージャーと外部キーストアの Amazon VPC 間の接続が正しく機能していない場合に発生する可能性があります。を使用している場合は AWS Direct Connect、VPC と外部キーマネージャーが効果的に通信できることを確認します。問題の解決方法については、 ユーザーガイドの「トラブルシューティング AWS Direct Connect AWS Direct Connect 」を参照してください。

XKS_PROXY_TIMED_OUT

-または-

CustomKeyStoreInvalidStateException, KMSInvalidStateException, XksProxyUriUnreachableException

外部キーストアプロキシが割り当てられた時間内にリクエストに応答しません。リクエストを再試行します。このエラーが繰り返し表示される場合は、外部キーストアプロキシ管理者に報告してください。
  • このエラーは、外部キーマネージャーと外部キーストアプロキシ間の物理的な距離が長いために発生する可能性があります。可能な場合は、外部キーストアプロキシを外部キーマネージャーの近くに移動します。

認証情報エラー

例外: CustomKeyStoreInvalidStateException (CreateKey)、KMSInvalidStateException (暗号化オペレーション)、XksProxyIncorrectAuthenticationCredentialException (CreateKey 以外の管理オペレーション)

外部キーストアプロキシ AWS KMS で の認証情報を確立して維持します。次に AWS KMS 、外部キーストアを作成するときに認証情報値を指定します。認証情報を変更する場合は、外部キーストアプロキシで変更します。次に、外部キーストアの認証情報を更新します。プロキシが認証情報をローテーションする場合は、外部キーストアの認証情報を更新する必要があります。

外部キーストアプロキシが、外部キーストアのプロキシ認証情報で署名されたリクエストを認証しない場合、その影響はリクエストによって異なります。

  • CreateCustomKeyStore および UpdateCustomKeyStoreXksProxyIncorrectAuthenticationCredentialException で失敗します。

  • ConnectCustomKeyStore は成功するが接続は失敗します。接続状態は FAILED で、接続エラーコードは INVALID_CREDENTIALS です。詳細については、「外部キーストア接続エラー」を参照してください。

  • 暗号化オペレーションでは、外部キーストアのすべての外部設定エラーと接続状態エラーの KMSInvalidStateException が返されます。添付のエラーメッセージは問題を説明しています。

外部キーストアプロキシは AWS KMSを認証できなかったため、リクエストを拒否しました。外部キーストアの認証情報を検証し、必要に応じて更新します。

このエラーは、次の原因によって発生する可能性があります。

  • 外部キーストアのアクセスキー ID またはシークレットアクセスキーが、外部キーストアプロキシに設定された値と一致しない。

    このエラーを修正するには、外部キーストアのプロキシ認証情報を更新します。この変更は、外部キーストアを切断せずに行うことができます。

  • AWS KMS と外部キーストアプロキシ間のリバースプロキシは、SigV4 署名を無効にする方法で HTTP ヘッダーを操作している可能性があります。このエラーを修正するには、プロキシ管理者に通知してください。

キーステータスエラー

例外: KMSInvalidStateException

KMSInvalidStateException は、カスタムキーストアの KMS キーに、2 つの異なる目的で使用されます。

  • CancelKeyDeletion などの管理オペレーションが失敗してこの例外が返された場合は、KMS キーのキーステータスにオペレーションとの互換性がないことを示します。

  • カスタムキーストアの KMS キーに対する暗号化オペレーションKMSInvalidStateException で失敗した場合、KMS キーのキーステータスに問題がある可能性があります。ただし AWS KMS 、暗号化オペレーションはKMSInvalidStateException、外部キーストアのすべての外部設定エラーと接続状態エラーに対して を返します。問題を特定するには、例外に付随するエラーメッセージを使用します。

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

注記

外部キーストアの KMS キーのキーステータスは、関連付けられている外部キーのステータスを示すものではありません。外部キーステータスに関する情報は、外部キーマネージャーと外部キーストアプロキシツールを参照してください。

CustomKeyStoreInvalidStateException は、KMS キーのキーステータスではなく、外部キーストアの接続状態を参照します。

KMS キーのキーステータスが Unavailable または PendingDeletion の場合、カスタムストアの KMS キーの暗号化オペレーションは失敗する可能性があります。(無効化されたキーは DisabledException を返します)。

  • KMS キーは、 AWS KMS コンソールで KMS Disabledキーを意図的に無効にした場合、または DisableKeyオペレーションを使用してのみキー状態になります。KMS キーが無効になっている間、キーを表示および管理することはできますが、暗号化オペレーションで使用することはできません。この問題を解決するには、キーを有効にします。詳細については、「キーの有効化と無効化」を参照してください。

  • KMS キーは、外部キーストアが外部キーストアプロキシから切断されたときに Unavailable キーステータスになります。使用できない KMS キーを修正するには、外部キーストアを再接続します。外部キーストアを再接続すると、外部キーストア内の KMS キーのキーステータスは、EnabledDisabled などの以前のステータスに自動的に復元されます。

    KMS キーは、削除予定の待機期間中、PendingDeletion キーステータスになります。削除保留中の KMS キーのキーステータスエラーは、そのキーが暗号化に使用されているか、復号に必要であるため、キーを削除するべきではないことを示します。KMS キーを再度有効にするには、スケジュールされた削除をキャンセルしてから、キーを有効にします。詳細については、「キーの削除のスケジュールとキャンセル」を参照してください。

復号エラー

例外: KMSInvalidStateException

外部キーストアの KMS キーを使用した Decrypt オペレーションが失敗すると、 は、外部キーストアのすべての外部設定エラーと接続状態エラーに対して暗号化オペレーションKMSInvalidStateExceptionが使用する標準 AWS KMS を返します。問題を示すエラーメッセージ。

外部キーマネージャーは、二重暗号化を使用して暗号化された暗号文を復号するために、最初に外部キーを使用して暗号文の外側のレイヤーを復号します。次に AWS KMS 、KMS AWS KMS キーのキーマテリアルを使用して暗号文の内部層を復号します。無効、または破損した暗号文は、外部キーマネージャーまたは AWS KMSによって拒否される可能性があります。

復号に失敗すると、次のエラーメッセージが KMSInvalidStateException に付随します。このエラーメッセージは、リクエスト内の暗号文またはオプションの暗号化コンテキストに問題があることを示します。

指定された暗号文または追加の認証データが破損している、欠損している、または無効であるため、外部キーストアプロキシはリクエストを拒否しました。
  • 外部キーストアプロキシまたは外部キーマネージャーが暗号文またはその暗号化コンテキストが無効であると報告した場合、通常は に送信されたDecryptリクエストの暗号文または暗号化コンテキストに問題があることを示します AWS KMS。Decrypt オペレーションの場合、 AWS KMS はDecryptリクエストで受信したのと同じ暗号文と暗号化コンテキストをプロキシに送信します。

    このエラーは、ビットの反転など、転送中のネットワークの問題が原因である可能性があります。Decrypt リクエストを再試行します。問題が解決しない場合は、暗号文が変更されていないこと、または破損していないことを検証します。また、 へのDecryptリクエストの暗号化コンテキストが、データを暗号化したリクエストの暗号化コンテキスト AWS KMS と一致することを確認します。

外部キーストアプロキシが復号のために送信した暗号文、または暗号化コンテキストが、破損しているか、欠損しているか、無効になっています。
  • がプロキシから受信した暗号文 AWS KMS を拒否すると、外部キーマネージャーまたはプロキシが無効な暗号文または破損した暗号文を に返したことを示します AWS KMS。

    このエラーは、ビットの反転など、転送中のネットワークの問題が原因である可能性があります。Decrypt リクエストを再試行します。問題が解決しない場合は、外部キーマネージャーが正しく動作していること、および外部キーストアプロキシが に返す前に外部キーマネージャーから受信した暗号文を変更しないことを確認します AWS KMS。

外部キーエラー

外部キーは、KMS キーの外部キーマテリアルとして機能する外部キーマネージャーの暗号化キーです。 AWS KMS は外部キーには直接アクセスできません。外部キーマネージャーに、(外部キーストアプロキシ経由で) 外部キーを使用してデータを暗号化するか、暗号文を復号するように要求する必要があります。

外部キーストアで KMS キーを作成する際に、外部キーマネージャーで外部キーの ID を指定します。KMS キー作成後に外部キー ID を変更することはできません。KMS キーに関する問題を防ぐために、CreateKey オペレーションは外部キーストアプロキシに、外部キーの ID と設定の検証を要求します。外部キーが KMS キーでの使用要件を満たしていない場合、CreateKey オペレーションは失敗し、問題を特定する例外とエラーメッセージが表示されます。

ただし、KMS キー作成後に問題が発生する可能性があります。外部キーの問題によって暗号化オペレーションが失敗すると、オペレーションは失敗し、問題を示すエラーメッセージとともに KMSInvalidStateException が返されます。

CreateKey 外部キーの エラー

例外: XksKeyAlreadyInUseExceptionXksKeyNotFoundExceptionXksKeyInvalidConfigurationException

CreateKey オペレーションは、外部キー ID (コンソール) または XksKeyId (API) パラメータで指定した外部キーの ID とプロパティの検証を試みます。このプラクティスは、KMS キーで外部キーを使用する前にエラーを早期に検出することを目的としています。

外部キー使用中

外部キーストアの各 KMS キーは、異なる外部キーを使用する必要があります。CreateKey が KMS キーの外部キー ID (XksKeyId) が外部キーストアで一意ではないことを認識すると、 で失敗しますXksKeyAlreadyInUseException

同じ外部キーに複数の ID を使用する場合、CreateKey は重複しているものを認識しません。ただし、同じ外部キーを持つ KMS キーは、 AWS KMS キーマテリアルとメタデータが異なるため、相互運用できません。

外部キーを検出できない

外部キーストアプロキシが KMS キーの外部キー ID (XksKeyId) を使用して外部キーを見つけられないと報告した場合、CreateKeyオペレーションは失敗し、次のエラーメッセージXksKeyNotFoundExceptionとともに を返します。

外部キーを検出できなかったため、外部キーストアプロキシはリクエストを拒否しました。

このエラーは、次の原因によって発生する可能性があります。

  • KMS キーの外部キー (XksKeyId) ID が無効である可能性があります。外部キープロキシが外部キーを識別するために使用する ID を検出するには、外部キーストアプロキシまたは外部キーマネージャーのドキュメントを参照してください。

  • 外部キーが外部キーマネージャーから削除された可能性があります。調査するには、外部キーマネージャーツールを使用します。外部キーが完全に削除された場合は、KMS キーで別の外部キーを使用します。外部キーのリストまたは要件については、「外部キーストアの KMS キーの要件」を参照してください。

外部キー要件が満たされていない

外部キーストアプロキシが、外部キーが KMS キーでの使用要件を満たしていないことを報告すると、CreateKey オペレーションは失敗し、次のいずれかのエラーメッセージを含む XksKeyInvalidConfigurationException が返されます。

外部キーのキースペックは AES_256 である必要があります。指定された外部キーのキースペックは <key-spec> です。
  • 外部キーは、AES_256 のキースペックをもつ 256 ビット対称暗号化キーである必要があります。指定された外部キーが別のタイプである場合は、この要件を満たす外部キー ID を指定します。

外部キーのステータスは ENABLED である必要があります。指定された外部キーのステータスは <status> です。
  • 外部キーは、外部キーマネージャーで有効にする必要があります。指定した外部キーが有効になっていない場合は、外部キーマネージャーツールを使用して有効にするか、有効な外部キーを指定します。

外部キーのキー用途には、[ENCRYPT] と [DECRYPT] を含める必要があります。指定された外部キーのキー用途は <key-usage> です。
  • 外部キーは、外部キーマネージャーで暗号化と復号を行うように設定する必要があります。指定された外部キーにこれらのオペレーションが含まれていない場合は、外部キーマネージャーツールを使用してオペレーションを変更するか、別の外部キーを指定します。

外部キーの暗号化オペレーションエラー

例外: KMSInvalidStateException

外部キーストアプロキシが KMS キーに関連付けられた外部キーを検出できない場合、または外部キーが KMS キーでの使用要件を満たしていない場合、暗号化オペレーションは失敗します。

暗号化オペレーション中に検出された外部キーの問題は、KMS キー作成前に検出された外部キーの問題よりも解決が困難です。KMS キー作成後に外部キー ID を変更することはできません。KMS キーでまだデータが暗号化されていない場合は、KMS キーを削除し、別の外部キー ID を使用して新しい KMS キーを作成できます。ただし、KMS キーで生成された暗号文は、同じ外部キーを持つものであっても、他の KMS キーで復号することはできません。キーのメタデータとキー AWS KMS マテリアルが異なるためです。代わりに、外部キーマネージャーツールを使用して、可能な限り外部キーの問題を解決してください。

外部キーストアプロキシが外部キーに関する問題を報告すると、暗号化オペレーションは、問題を特定するエラーメッセージとともに KMSInvalidStateException を返します。

外部キーを検出できない

外部キーストアプロキシが KMS キーの外部キー ID (XksKeyId) を使用して外部キーを見つけられないと報告した場合、暗号化オペレーションは次のエラーメッセージKMSInvalidStateExceptionとともに を返します。

外部キーを検出できなかったため、外部キーストアプロキシはリクエストを拒否しました。

このエラーは、次の原因によって発生する可能性があります。

  • KMS キーの外部キー (XksKeyId) ID が無効になりました。

    KMS キーに関連付けられている外部キー ID を検出するには、KMS キーの詳細を参照してください。外部キープロキシが外部キーを識別するために使用する ID を検出するには、外部キーストアプロキシまたは外部キーマネージャーのドキュメントを参照してください。

    AWS KMS は、外部キーストアに KMS キーを作成するときに、外部キー ID を検証します。ただし、特に外部キー ID 値がエイリアスまたは可変名の場合は、ID が無効になる可能性があります。既存の KMS キーに関連付けられている外部キー ID を変更することはできません。KMS キーで暗号化された暗号文を復号するには、外部キーを既存の外部キー ID に再度、関連付ける必要があります。

    KMS キーを使用してデータを暗号化していない場合は、有効な外部キー ID を使用して新しい KMS キーを作成できます。ただし、KMS キーを使用して暗号文を生成した場合は、同じ外部キーを使用しても、他の KMS キーを使用して暗号文を復号することはできません。

  • 外部キーが外部キーマネージャーから削除された可能性があります。調査するには、外部キーマネージャーツールを使用します。可能な場合は、外部キーマネージャーのコピーまたはバックアップから、キーマテリアルの復元を試みてください。外部キーが完全に削除された場合、関連する KMS キーで暗号化された暗号文は回復できません。

外部キー設定エラー

外部キーストアプロキシが、外部キーが KMS キーでの使用要件を満たしていないことを報告すると、暗号化オペレーションは、次のいずれかのエラーメッセージを含む KMSInvalidStateException を返します。

外部キーがリクエストされたオペレーションをサポートしていないため、外部キーストアプロキシは要求を拒否しました。
  • 外部キーは、暗号化と復号の両方をサポートしている必要があります。キーの用途に暗号化と復号が含まれていない場合は、外部キーマネージャーツールを使用して、キーの用途を変更します。

外部キーが外部キーマネージャーで有効になっていないため、外部キーストアプロキシはリクエストを拒否しました。
  • 外部キーは、外部キーマネージャーで使用するために、有効にして使用可能にする必要があります。外部キーのステータスが [Enabled] でない場合は、外部キーマネージャーツールを使用して有効にします。

プロキシの問題

例外:

CustomKeyStoreInvalidStateException (CreateKey)、KMSInvalidStateException (暗号化オペレーション)、UnsupportedOperationExceptionXksProxyUriUnreachableExceptionXksProxyInvalidResponseException (CreateKey 以外の管理オペレーション)

外部キーストアプロキシは、 AWS KMS と外部キーマネージャー間のすべての通信を仲介します。一般的な AWS KMS リクエストを、外部キーマネージャーが理解できる形式に変換します。外部キーストアプロキシがAWS KMS 外部キーストアプロキシ API 仕様 に準拠していない場合、または が正しく動作していない場合、または と通信できない場合 AWS KMS、外部キーストアで KMS キーを作成または使用することはできません。

外部キーストアプロキシは外部キーストアアーキテクチャで重要な役割を果たすため、多くのエラーに外部キーストアプロキシが記載されますが、これらの問題は、外部キーマネージャーまたは外部キーに起因する可能性があります。

このセクションの問題は、外部キーストアプロキシの設計または運用に関する問題と関連しています。これらの問題を解決するには、プロキシソフトウェアを変更する必要がある場合があります。プロキシ管理者に相談してください。 AWS KMS は、プロキシの問題の診断に役立つように、外部キーストアプロキシが AWS KMS 外部キーストアプロキシ API 仕様に準拠していることを検証する、オープンソースのテストクライアントである XKS プロキシテキストクライアントを提供しています。

CustomKeyStoreInvalidStateExceptionKMSInvalidStateException、または XksProxyUriUnreachableException

外部キーストアプロキシが異常な状態です。このメッセージが繰り返し表示される場合は、外部キーストアプロキシ管理者に通知してください。
  • このエラーは、外部キーストアプロキシの運用上の問題またはソフトウェアエラーを示している可能性があります。各エラーを生成した AWS KMS API オペレーションの CloudTrail ログエントリを見つけることができます。このエラーは、オペレーションを再試行することで解決する場合があります。ただし、それでも解決しない場合は、外部キーストアプロキシ管理者に通知してください。

  • 外部キーストアプロキシが (GetHealthStatusレスポンスで) すべての外部キーマネージャーインスタンスが であると報告した場合UNAVAILABLE、外部キーストアの作成または更新の試行はこの例外で失敗します。このエラーが解決されない場合は、外部キーマネージャーのドキュメントを参照してください。

CustomKeyStoreInvalidStateExceptionKMSInvalidStateException、または XksProxyInvalidResponseException

AWS KMS は、外部キーストアプロキシからのレスポンスを解釈できません。このエラーが繰り返し表示される場合は、外部キーストアプロキシ管理者に相談してください。
  • AWS KMS オペレーションは、プロキシが解析または解釈 AWS KMS できない未定義のレスポンスを返すときに、この例外を生成します。このエラーは、一時的な外部の問題や散発的なネットワークエラーが原因で発生することがあります。ただし、問題が解決しない場合は、外部キーストアプロキシが、AWS KMS 外部キーストアプロキシ API 仕様に準拠していない可能性があります。外部キーストア管理者またはベンダーに通知してください。

CustomKeyStoreInvalidStateExceptionKMSInvalidStateException、または UnsupportedOperationException

リクエストされた暗号化オペレーションをサポートしていないため、外部キーストアプロキシはリクエストを拒否しました。

  • 外部キーストアプロキシは、AWS KMS 外部キーストアプロキシ API 仕様で定義されているすべてのプロキシ API をサポートしている必要があります。このエラーは、プロキシがリクエストに関連するオペレーションをサポートしていないことを示します。外部キーストア管理者またはベンダーに通知してください。

プロキシの承認に関する問題

例外: CustomKeyStoreInvalidStateExceptionKMSInvalidStateException

外部キーストアプロキシの中には、外部キーを使用するための認証要件を実装しているものがあります。外部キーストアプロキシーは、特定のユーザーが任意の条件下で任意のオペレーションをリクエストすることを許可する承認スキームを設計および実装することを許可されていますが、必須ではありません。例えば、プロキシでは、ユーザーに任意の外部キーによる暗号化を許可しても、その外部キーによる復号は許可しない場合があります。詳細については、「外部キーストアプロキシ認証 (オプション)」を参照してください。

プロキシ認証は、プロキシへのリクエストに AWS KMS が含まれるメタデータに基づいています。awsSourceVpc および awsSourceVpce フィールドは、リクエストが VPC エンドポイントからのものである場合と、呼び出し側が KMS キーと同じアカウントにある場合にのみ、メタデータに含まれます。

"requestMetadata": { "awsPrincipalArn": string, "awsSourceVpc": string, // optional "awsSourceVpce": string, // optional "kmsKeyArn": string, "kmsOperation": string, "kmsRequestId": string, "kmsViaService": string // optional }

認証の失敗によりプロキシがリクエストを拒否すると、関連する AWS KMS オペレーションは失敗します。 は CreateKeyを返しますCustomKeyStoreInvalidStateException。 AWS KMS 暗号化オペレーションは を返しますKMSInvalidStateException。どちらも以下のエラーメッセージを使用します。

外部キーストアプロキシはオペレーションへのアクセスを拒否しました。ユーザーと外部キーの両方がこのオペレーションを承認していることを検証し、リクエストを再試行します。
  • エラーを解決するには、外部キーマネージャーまたは外部キーストアプロキシツールを使用して、承認が失敗した理由を特定します。次に、未承認リクエストの原因となった手順を更新するか、外部キーストアプロキシツールを使用して、承認ポリシーを更新します。 AWS KMSではこのエラーを解決できません。