翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
外部キーストアのトラブルシューティング
外部キーストアに関するほとんどの問題の解決方法は、例外が発生するたびに AWS KMS が表示するエラーメッセージ、または外部キーストアを外部キーストアプロキシに接続しようとして失敗したときに AWS KMS が返す接続エラーコードによって示されます。ただし、一部の問題はもう少し複雑です。
外部キーストアの問題を診断する際は、最初に原因を特定します。これにより、対処法の範囲が狭まり、トラブルシューティングがより効率的になります。
-
AWS KMS — 外部キーストア設定の値が正しくないなど、AWS KMS 内部に問題がある可能性があります。
-
外部 — 外部キーストアプロキシ、外部キーマネージャー、外部キー、VPC エンドポイントサービスの設定やオペレーションに関する問題など、AWS KMS の外部に問題がある可能性があります。
-
ネットワーク — プロキシエンドポイント、ポート、プライベート DNS、ドメインの問題など、接続またはネットワークに問題がある可能性があります。
注記
外部キーストアで管理オペレーションが失敗すると、複数の異なる例外が生成されます。ただし、AWS KMS 暗号化オペレーションでは、外部キーストアの外部設定または接続状態に関連するすべての障害に対して KMSInvalidStateException
が返されます 問題を特定するには、添付のエラーメッセージテキストを使用します。
ConnectCustomKeyStore オペレーションは、接続プロセスが完了する前に、直ちに成功します。接続プロセスが成功したかどうかを判断するには、外部キーストアの接続状態を表示します。接続プロセスが失敗した場合、AWS KMS は原因を説明し、対処方法を提案する接続エラーコードを返します。
トピック
外部キーストアのトラブルシューティングツール
AWS KMS では、外部キーストアとそのキーに関する問題を特定し、解決するのに役立ついくつかのツールをご用意しています。これらのツールは、外部キーストアプロキシおよび外部キーマネージャーに付属するツールと組み合わせて使用します。
注記
外部キーストアプロキシと外部キーマネージャーを使用すると、外部キーストアとその KMS キーを簡単に作成し、維持できます。詳細については、外部ツールのドキュメントを参照してください。
- AWS KMS の例外とエラーメッセージ
-
AWS KMS では、発生した問題に関する詳細なエラーメッセージが表示されます。AWS KMS の例外に関する追加情報は、「AWS Key Management Service API リファレンス」および「AWS SDK」を参照してください。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 ログに記録されます。AWS KMS は、成功および失敗したオペレーションのログエントリを記録します。オペレーションが失敗した場合、ログエントリには 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 は、外部キーストアと外部キーストア内の KMS キーに関する詳細情報を、AWS KMS コンソール、DescribeCustomKeyStores オペレーションおよび DescribeKey オペレーションへの応答に表示します。これらの表示には、外部キーストアの接続状態や KMS キーに関連付けられている外部キーの ID など、トラブルシューティングに使用できる情報を含む、外部キーストアと 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_CONFIGURATION
、XKS_PROXY_INVALID_TLS_CONFIGURATION
パブリックエンドポイント接続を備えた外部キーストアの場合、AWS KMS は、外部キーストアの作成および更新時にプロパティ値をテストします。VPC エンドポイントサービス接続を備えた外部キーストアの場合、AWS KMS は、外部キーストアの接続および更新時にプロパティ値をテストします。
注記
外部キーストアをその外部キーストアのプロキシに接続する試みが失敗しても、非同期の ConnectCustomKeyStore
オペレーションは成功する場合があります。この場合、例外はありませんが、外部キーストアの接続状態は「失敗」で、エラーメッセージを説明する接続エラーコードが表示されます。詳細については、「外部キーストア接続エラー」を参照してください。
AWS KMS がプロパティ値でエラーを検出すると、オペレーションは失敗し、次のいずれかのエラーメッセージとともに XksProxyInvalidConfigurationException
が返されます。
URI パスが無効なため、外部キーストアプロキシがリクエストを拒否しました。外部キーストアの URI パスを検証し、必要に応じて更新します。 |
-
プロキシ URI パスは、プロキシ API への AWS KMS リクエストのベースパスです。このパスが間違っていると、プロキシへのリクエストはすべて失敗します。外部キーストアの現在のプロキシ URI パスを表示するには、AWS KMS コンソールまたは
DescribeCustomKeyStores
オペレーションを使用します。正しいプロキシ URI パスを検出するには、外部キーストアプロキシのドキュメントを参照してください。プロキシ URI パス値の修正については、「外部キーストアプロパティの編集」を参照してください。 -
外部キーストアプロキシのプロキシ URI パスは、外部キーストアプロキシまたは外部キーマネージャーの更新によって変更される可能性があります。これらの変更については、外部キーストアプロキシまたは外部キーマネージャーのドキュメントを参照してください。
|
-
すべての外部キーストアプロキシには 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 エンドポイントサービス接続設定のエラー
例外: XksProxyVpcEndpointServiceNotFoundException
、XksProxyVpcEndpointServiceInvalidConfigurationException
一般的な接続の問題に加えて、VPC エンドポイントサービス接続を使用して外部キーストアを作成、接続、更新する際に、次の問題が発生する可能性があります。AWS KMS は、外部キーストアの作成、接続、更新中に、VPC エンドポイントサービス接続を使用して、外部キーストアのプロパティ値をテストします。設定エラーが原因で管理オペレーションが失敗すると、次の例外が生成されます。
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.vpce-svc-example などの VPC エンドポイントサービス名の一部です)。外部キーストアの VPC エンドポイントサービス要件のリストについては、「VPC エンドポイントサービス」を参照してください。VPC エンドポイントサービスまたは外部キーストアを別のリージョンに移動することはできません。ただし、VPC エンドポイントサービスと同じリージョンに新しい外部キーストアを作成できます。詳細については、「VPC エンドポイントサービス接続を設定する」および「外部キーストアを作成する」を参照してください。 -
AWS KMS は、VPC エンドポイントサービスのプリンシパルとして許可されていません。VPC エンドポイントサービスの [Allow principals] (許可プリンシパル) リストには、
cks.kms.
のようなeu-west-3
.amazonaws.com.rproxy.goskope.comcks.kms.
値を含める必要があります。この値を追加する手順については、『AWS PrivateLink ガイド』の「許可の管理」を参照してください。<region>
.amazonaws.com
XksProxyVpcEndpointServiceInvalidConfigurationException |
このエラーは、VPC エンドポイントサービスが次の要件のいずれかを満たしていない場合に発生します。
-
VPC には、それぞれが異なるアベイラビリティーゾーンに存在する 2 つ以上のプライベートサブネットが必要です。VPC へのサブネットの追加の詳細については、『Amazon VPC ユーザーガイド』の「VPC でのサブネットの作成」を参照してください。
-
VPC エンドポイントのサービスタイプには、ゲートウェイロードバランサーではなく、Network Load Balancer を使用する必要があります。
-
VPC エンドポイントサービスに承認は不要です (承認が必要は誤りです)。各接続リクエストを手動で承認する必要がある場合、AWS KMS では、VPC エンドポイントサービスを使用して外部キーストアプロキシに接続することはできません。詳細については、『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 名ドメインの検証ステータスを表示、更新するには、「ステップ 5: プライベート 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 コンソールの外部キーストアテーブルに [Connection state] (接続状態) が表示されます。また、各外部キーストアの詳細ページの [General configuration] (一般設定) セクションに、[Connection state] (接続状態) が表示されます。
接続状態が FAILED
の場合、接続エラーコードがエラーを説明します。
接続エラーコードを表示するには:
-
DescribeCustomKeyStores レスポンスで、
ConnectionErrorCode
要素の値を表示します。この要素は、ConnectionState
がFAILED
の場合にのみ、DescribeCustomKeyStores
レスポンスに表示されます。 -
AWS KMS コンソールに接続エラーコードを表示するには、外部キーストアの詳細ページで、[Failed] (失敗) 値にカーソルを合わせます。
外部キーストアの接続エラーコード
次の接続エラーコードは、外部キーストアに適用されます
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
-
TLS 設定が無効なため、AWS KMS は外部キーストアプロキシに接続できません。外部キーストアプロキシが TLS 1.2 または 1.3 をサポートしていることを検証します。また、TLS 証明書の有効期限が切れていないこと、
XksProxyUriEndpoint
値のホスト名と一致していること、信頼できる認証機関リストに含まれる信頼できる認証機関によって署名されていることを検証します。 XKS_PROXY_NOT_REACHABLE
-
AWS KMS は、外部キーストアプロキシと通信できません。
XksProxyUriEndpoint
とXksProxyUriPath
が正しいことを検証します。外部キーストアプロキシのツールを使用して、プロキシがアクティブで、ネットワーク上で使用可能であることを検証します。また、外部キーマネージャーインスタンスが正しく動作していることを検証します。外部キーマネージャーインスタンスがすべて使用できないとプロキシが報告した場合、接続試行はこの接続エラーコードで失敗します。 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.us-east-1.amazonaws.com
のような、リージョンの AWS KMS サービスプリンシパルであるcks.kms.<region>.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_REACHABLE
、XKS_PROXY_TIMED_OUT
AWS KMS が250 ミリ秒のタイムアウト間隔内にプロキシに接続できない場合、例外がスローされ、CreateCustomKeyStore
および UpdateCustomKeyStore
は XksProxyUriUnreachableException
を返します。暗号化オペレーションは、問題を説明するエラーメッセージとともに標準 KMSInvalidStateException
を返します。ConnectCustomKeyStore
が失敗した場合、AWS KMS は問題を説明する接続エラーコードを返します。
タイムアウトエラーは一時的な問題のため、リクエストを再試行することで解決できる場合があります。問題が解決しない場合は、外部キーストアプロキシがアクティブでネットワークに接続されていること、そのプロキシ URI エンドポイント、プロキシ URI パス、 VPC エンドポイントのサービス名 (存在する場合) が外部キーストアで正しいことを検証します。また、外部キーマネージャーが外部キーストアの AWS リージョン の近くにあることを確認します。これらの値のいずれかを更新する必要がある場合は、「外部キーストアプロパティの編集」を参照して下さい。
レイテンシーパターンを追跡するには、AWS KMS コンソールの [Monitoring] (モニタリング) セクションにある XksProxyLatency CloudWatch メトリクスと (そのメトリクスに基づく) [Average latency] (平均レイテンシー) グラフを使用します。外部キーストアプロキシは、レイテンシーとタイムアウトを追跡するログやメトリクスも生成する場合があります。
|
-
外部キーストアプロキシが、250 ミリ秒のタイムアウト間隔内に AWS KMS プロキシ API リクエストに応答しません。これは、一時的なネットワークの問題か、プロキシのオペレーションまたはパフォーマンスの問題である可能性があります。再試行しても問題が解決しない場合は、外部キーストアプロキシ管理者に通知してください。
多くの場合、レイテンシーやタイムアウトエラーは接続障害として表示されます。ConnectCustomKeyStore オペレーションが失敗すると、外部キーストアの接続状態が FAILED
に変わり、AWS KMS はエラーを説明する接続エラーコードを返します。接続エラーコードのリストとエラー解決方法については、「外部キーストアの接続エラーコード」を参照してください。[All custom key stores] (すべてのカスタムキーストア) と [External key stores] (外部キーストア) の接続コードリストは、外部キーストアに適用されます。次の接続エラーは、レイテンシーとタイムアウトに関連しています。
-または-
|
このエラーは、次の原因によって発生する可能性があります。
-
外部キーストアプロキシがアクティブでないか、ネットワークに接続されていない。
-
外部キーストア設定のプロキシ URI エンドポイント、プロキシ URI パス、または VPC エンドポイントのサービス名 (該当する場合) の値にエラーがある。外部キーストアの設定を表示するには、DescribeCustomKeyStores オペレーションを使用するか、AWS KMS コンソールで外部キーストアの詳細ページを表示します。
-
AWS KMS と外部キーストアプロキシ間のネットワークパスにポートエラーなどのネットワーク設定エラーがある可能性があります。AWS KMS はポート 443 で外部キーストアプロキシと通信します。この値は設定できません。
-
(GetHealthStatus レスポンスで) 外部キーストアプロキシが、すべての外部キーマネージャーインスタンスが
UNAVAILABLE
であると報告すると、ConnectCustomKeyStore オペレーションはXKS_PROXY_NOT_REACHABLE
のConnectionErrorCode
で失敗します。ヘルプについては、外部キーマネージャーのドキュメントを参照してください。 -
このエラーは、外部キーマネージャーと外部キーストアの AWS リージョン 間の物理的な距離が長いために発生する可能性があります。AWS リージョン と外部キーマネージャー間の ping レイテンシー (ネットワークラウンドトリップ時間 (RTT)) は、35 ミリ秒未満である必要があります。場合により、外部キーマネージャー付近の AWS リージョン に外部キーストアを作成するか、AWS リージョン 付近のデータセンターに外部キーマネージャーを移動する必要があります。
-または-
|
このエラーは、次の原因によって発生する可能性があります。
-
このエラーは、外部キーマネージャーと外部キーストアプロキシ間の物理的な距離が長いために発生する可能性があります。可能な場合は、外部キーストアプロキシを外部キーマネージャーの近くに移動します。
-
タイムアウトエラーは、プロキシが AWS KMS からのリクエストのボリュームや頻度を処理するよう設計されていない場合に発生する可能性があります。CloudWatch メトリクスが持続的な問題を示している場合は、外部キーストアプロキシ管理者に通知してください。
-
タイムアウトエラーは、外部キーマネージャーと外部キーストアの Amazon VPC 間の接続が正しく機能していない場合に発生する可能性があります。AWS Direct Connect を使用している場合は、VPC と外部キーマネージャーが効果的に通信できることを検証します。問題を解決するには、『AWS Direct Connect ユーザーガイド』の「AWS Direct Connect のトラブルシューティング」を参照してください。
-または-
|
-
このエラーは、外部キーマネージャーと外部キーストアプロキシ間の物理的な距離が長いために発生する可能性があります。可能な場合は、外部キーストアプロキシを外部キーマネージャーの近くに移動します。
認証情報エラー
例外: CustomKeyStoreInvalidStateException
(CreateKey
)、KMSInvalidStateException
(暗号化オペレーション)、XksProxyIncorrectAuthenticationCredentialException
(CreateKey
以外の管理オペレーション)
外部キーストアプロキシのAWS KMS の認証情報を確立して維持します。次に、外部キーストアの作成時に、AWS KMS で認証情報の値を指定します。認証情報を変更する場合は、外部キーストアプロキシで変更します。次に、外部キーストアの認証情報を更新します。プロキシが認証情報をローテーションする場合は、外部キーストアの認証情報を更新する必要があります。
外部キーストアプロキシが、外部キーストアのプロキシ認証情報で署名されたリクエストを認証しない場合、その影響はリクエストによって異なります。
-
CreateCustomKeyStore
およびUpdateCustomKeyStore
はXksProxyIncorrectAuthenticationCredentialException
で失敗します。 -
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 キーのキーステータスが Unavailable
または PendingDeletion
の場合、カスタムストアの KMS キーの暗号化オペレーションは失敗する可能性があります。(無効化されたキーは DisabledException
を返します)。
-
KMS キーが
Disabled
キーステータスになるのは、AWS KMS コンソールで KMS キーを意図的に無効にした場合、または DisableKey オペレーションを使用した場合のみです。KMS キーが無効になっている間、キーを表示および管理することはできますが、暗号化オペレーションで使用することはできません。この問題を解決するには、キーを有効にします。詳細については、「キーの有効化と無効化」を参照してください。 -
KMS キーは、外部キーストアが外部キーストアプロキシから切断されたときに
Unavailable
キーステータスになります。使用できない KMS キーを修正するには、外部キーストアを再接続します。外部キーストアを再接続すると、外部キーストア内の KMS キーのキーステータスは、Enabled
やDisabled
などの以前のステータスに自動的に復元されます。KMS キーは、削除予定の待機期間中、
PendingDeletion
キーステータスになります。削除保留中の KMS キーのキーステータスエラーは、そのキーが暗号化に使用されているか、復号に必要であるため、キーを削除するべきではないことを示します。KMS キーを再度有効にするには、スケジュールされた削除をキャンセルしてから、キーを有効にします。詳細については、「キー削除をスケジュールする」を参照してください。
復号エラー
例外: KMSInvalidStateException
外部キーストアの KMS キーを使用した複合オペレーションが失敗すると、AWS KMS は、外部キーストアでのすべての外部設定エラーと接続状態エラーに関して、暗号化オペレーションが使用する標準 KMSInvalidStateException
を返します。問題を示すエラーメッセージ。
外部キーマネージャーは、二重暗号化を使用して暗号化された暗号文を復号するために、最初に外部キーを使用して暗号文の外側のレイヤーを復号します。次に、AWS KMS は KMS キー内の AWS KMS キーマテリアルを使用して、暗号文の内層を復号します。無効、または破損した暗号文は、外部キーマネージャーまたは AWS KMS によって拒否される可能性があります。
復号に失敗すると、次のエラーメッセージが KMSInvalidStateException
に付随します。このエラーメッセージは、リクエスト内の暗号文またはオプションの暗号化コンテキストに問題があることを示します。
指定された暗号文または追加の認証データが破損している、欠損している、または無効であるため、外部キーストアプロキシはリクエストを拒否しました。 |
-
外部キーストアプロキシまたは外部キーマネージャーが、暗号文またはその暗号化コンテキストが無効であると報告した場合、通常は、AWS KMS に送信される
Decrypt
リクエストの暗号文または暗号化コンテキストに問題があることを示します。Decrypt
オペレーションの場合、AWS KMS は、Decrypt
リクエストで受信したものと同じ暗号文と暗号化コンテキストをプロキシに送信します。このエラーは、ビットの反転など、転送中のネットワークの問題が原因である可能性があります。
Decrypt
リクエストを再試行します。問題が解決しない場合は、暗号文が変更されていないこと、または破損していないことを検証します。また、AWS KMS へのDecrypt
リクエストの暗号化コンテキストが、データを暗号化したリクエストの暗号化コンテキストと一致することを検証します。
外部キーストアプロキシが復号のために送信した暗号文、または暗号化コンテキストが、破損しているか、欠損しているか、無効になっています。 |
-
AWS KMS がプロキシから受信した暗号文を拒否した場合は、外部キーマネージャーまたはプロキシが、無効な、または破損した暗号文を AWS KMS に返したことを示します。
このエラーは、ビットの反転など、転送中のネットワークの問題が原因である可能性があります。
Decrypt
リクエストを再試行します。問題が解決しない場合は、外部キーマネージャーが正しく動作していること、外部キーストアプロキシが外部キーマネージャーから受信した暗号文を AWS KMS に返す前に変更していないことを検証します。
外部キーエラー
外部キーは、KMS キーの外部キーマテリアルとして機能する外部キーマネージャーの暗号化キーです。AWS KMS は外部キーには直接アクセスできません。外部キーマネージャーに、(外部キーストアプロキシ経由で) 外部キーを使用してデータを暗号化するか、暗号文を復号するように要求する必要があります。
外部キーストアで KMS キーを作成する際に、外部キーマネージャーで外部キーの ID を指定します。KMS キー作成後に外部キー ID を変更することはできません。KMS キーに関する問題を防ぐために、CreateKey
オペレーションは外部キーストアプロキシに、外部キーの ID と設定の検証を要求します。外部キーが KMS キーでの使用要件を満たしていない場合、CreateKey
オペレーションは失敗し、問題を特定する例外とエラーメッセージが表示されます。
ただし、KMS キー作成後に問題が発生する可能性があります。外部キーの問題によって暗号化オペレーションが失敗すると、オペレーションは失敗し、問題を示すエラーメッセージとともに KMSInvalidStateException
が返されます。
外部キーの CreateKey エラー
例外: XksKeyAlreadyInUseException
、XksKeyNotFoundException
、XksKeyInvalidConfigurationException
CreateKey オペレーションは、[External key ID] (外部キー 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 キーで生成された暗号文は、キーメタデータや AWS KMS キーマテリアルが異なるため、外部キーが同じであっても他の 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
(暗号化オペレーション)、UnsupportedOperationException
、XksProxyUriUnreachableException
、XksProxyInvalidResponseException
(CreateKey
以外の管理オペレーション)
外部キーストアプロキシは、AWS KMS と外部キーマネージャー間のすべての通信を仲介します。外部キーストアプロキシは、一般的な AWS KMS リクエストを外部キーマネージャーが理解できる形式に変換します。外部キーストアプロキシが AWS KMS 外部キーストアプロキシ API 仕様
外部キーストアプロキシは外部キーストアアーキテクチャで重要な役割を果たすため、多くのエラーに外部キーストアプロキシが記載されますが、これらの問題は、外部キーマネージャーまたは外部キーに起因する可能性があります。
このセクションの問題は、外部キーストアプロキシの設計または運用に関する問題と関連しています。これらの問題を解決するには、プロキシソフトウェアを変更する必要がある場合があります。プロキシ管理者に相談してください。AWS KMS は、プロキシの問題の診断に役立つように、外部キーストアプロキシが AWS KMS 外部キーストアプロキシ API 仕様
|
-
このエラーは、外部キーストアプロキシの運用上の問題またはソフトウェアエラーを示している可能性があります。各エラーを生成した AWS KMS API オペレーションの CloudTrail ログエントリを検出できます。このエラーは、オペレーションを再試行することで解決する場合があります。ただし、それでも解決しない場合は、外部キーストアプロキシ管理者に通知してください。
-
外部キーストアプロキシが、(GetHealthStatus 応答で) すべての外部キーマネージャーインスタンスが
UNAVAILABLE
であると報告した場合、外部キーストアを作成または更新しようとすると、この例外が発生して失敗します。このエラーが解決されない場合は、外部キーマネージャーのドキュメントを参照してください。
|
-
AWS KMS が解析または解釈できない未定義の応答をプロキシが返すと、AWS KMS オペレーションでこの例外が生成されます。このエラーは、一時的な外部の問題や散発的なネットワークエラーが原因で発生することがあります。ただし、問題が解決しない場合は、外部キーストアプロキシが、AWS KMS 外部キーストアプロキシ API 仕様
に準拠していない可能性があります。外部キーストア管理者またはベンダーに通知してください。
リクエストされた暗号化オペレーションをサポートしていないため、外部キーストアプロキシはリクエストを拒否しました。 |
-
外部キーストアプロキシは、AWS KMS 外部キーストアプロキシ API 仕様
で定義されているすべてのプロキシ API をサポートしている必要があります。このエラーは、プロキシがリクエストに関連するオペレーションをサポートしていないことを示します。外部キーストア管理者またはベンダーに通知してください。
プロキシの承認に関する問題
例外: CustomKeyStoreInvalidStateException
、KMSInvalidStateException
外部キーストアプロキシの中には、外部キーを使用するための認可要件を実装しているものがあります。外部キーストアプロキシーは、特定のユーザーが任意の条件下で任意のオペレーションをリクエストすることを許可する承認スキームを設計および実装することを許可されていますが、必須ではありません。例えば、プロキシでは、ユーザーに任意の外部キーによる暗号化を許可しても、その外部キーによる復号は許可しない場合があります。詳細については、「外部キーストアプロキシ認可 (オプション)」を参照してください。
プロキシの承認は、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 ではこのエラーを解決できません。