

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

# 外部キーストアのトラブルシューティング
<a name="xks-troubleshooting"></a>

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

外部キーストアの問題を診断する際は、最初に原因を特定します。これにより、対処法の範囲が狭まり、トラブルシューティングがより効率的になります。
+ AWS KMS — [外部キーストア設定](create-xks-keystore.md#xks-requirements)の値が正しくないなど AWS KMS、問題が 内にある可能性があります。
+ 外部 — この問題は AWS KMS、外部キーストアプロキシ、外部キーマネージャー、外部キー、または VPC エンドポイントサービスの設定または操作に関する問題など、 の外部で発生する可能性があります。
+ ネットワーク — 接続またはネットワーク (プロキシエンドポイント、ポート、IP スタック、プライベート DNS、ドメインの問題など) に問題がある可能性があります。

**注記**  
外部キーストアで管理オペレーションが失敗すると、複数の異なる例外が生成されます。ただし、 AWS KMS 暗号化オペレーションは、外部キーストアの外部設定または接続状態に関連するすべての障害`KMSInvalidStateException`に対して返されます。問題を特定するには、添付のエラーメッセージテキストを使用します。  
[ConnectCustomKeyStore](xks-connect-disconnect.md) オペレーションは、接続プロセスが完了する前に、直ちに成功します。接続プロセスが成功したかどうかを判断するには、外部キーストアの[接続状態](xks-connect-disconnect.md#xks-connection-state)を表示します。接続プロセスが失敗した場合、 AWS KMS は原因を説明し、対処方法を提案する[接続エラーコード](#xks-connection-error-codes)を返します。

**Topics**
+ [外部キーストアのトラブルシューティングツール](#xks-troubleshooting-tools)
+ [設定エラー](#fix-xks-configuration)
+ [外部キーストア接続エラー](#fix-xks-connection)
+ [レイテンシーとタイムアウトエラー](#fix-xks-latency)
+ [認証情報エラー](#fix-xks-credentials)
+ [キーステータスエラー](#fix-unavailable-xks-keys)
+ [復号エラー](#fix-xks-decrypt)
+ [外部キーエラー](#fix-external-key)
+ [プロキシの問題](#fix-xks-proxy)
+ [プロキシの承認に関する問題](#fix-xks-authorization)

## 外部キーストアのトラブルシューティングツール
<a name="xks-troubleshooting-tools"></a>

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

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

**AWS KMS 例外とエラーメッセージ**  
AWS KMS は、発生した問題に関する詳細なエラーメッセージを提供します。 AWS KMS 例外の詳細については、 [https://docs.aws.amazon.com/kms/latest/APIReference/](https://docs.aws.amazon.com/kms/latest/APIReference/)および AWS SDKsを参照してください。 AWS KMS コンソールを使用している場合でも、これらのリファレンスが役立つ場合があります。例えば、`CreateCustomKeyStores` オペレーションの場合は、[エラー](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateCustomKeyStore.html#API_CreateCustomKeyStore_Errors)リストを参照してください。  
外部キーストアプロキシのパフォーマンスを最適化するため、 AWS KMS は、5 分間の集約時間内に、お使いのプロキシの信頼性に基づく例外を返します。500 Internal Server Error、503 Service Unavailable、または接続タイムアウトが発生した場合、信頼性の高いプロキシであれば `KMSInternalException` を返し、自動再試行をトリガーして、リクエストが最終的に成功するようにします。一方で、信頼性の低いプロキシは `KMSInvalidStateException` を返します。詳細については、「[外部キーストアのモニタリング](https://docs.aws.amazon.com/kms/latest/developerguide/xks-monitoring.html)」を参照してください。  
外部キーストアの KMS キーを使用して別の AWS サービスのリソースを保護するなど、別の AWS サービスで問題が発生した場合、 AWS そのサービスは問題の特定に役立つ追加情報を提供することがあります。 AWS サービスがメッセージを提供していない場合は、KMS キーの使用を記録する [CloudTrail ログ](logging-using-cloudtrail.md)にエラーメッセージを表示できます。

**[CloudTrail ログ](logging-using-cloudtrail.md)**  
 AWS KMS コンソールのアクションを含むすべての AWS KMS API オペレーションは、 AWS CloudTrail logs に記録されます。 は、成功したオペレーションと失敗したオペレーションのログエントリ AWS KMS を記録します。オペレーションが失敗した場合、ログエントリには AWS KMS の例外名 (`errorCode`) とエラーメッセージ (`errorMessage`) が含まれます。この情報を使用してエラーを特定し、解決できます。例については、[外部キーストアの KMS キーを使用した復号の失敗](ct-decrypt.md#ct-decrypt-xks-fail)を参照してください。  
ログエントリにはリクエスト ID も含まれます。リクエストが外部キーストアプロキシに到達した場合は、ログエントリのリクエスト ID を使用して、プロキシログで対応するリクエストを検索できます (プロキシが提供している場合)。

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

**[モニタリンググラフ](xks-monitoring.md)**  
AWS KMS は、 AWS KMS コンソールの各外部キーストアの詳細ページに外部キーストア CloudWatch メトリクスのグラフを表示します。グラフのデータは、エラー原因の特定、差し迫った問題の検出、ベースラインの確立、CloudWatch アラームのしきい値の調整に役立ちます。モニタリンググラフの解釈とデータ使用方法の詳細については、「[外部キーストアをモニタリングする](xks-monitoring.md)」を参照してください。

**外部キーストアと KMS キーの表示**  
AWS KMS は、 AWS KMS コンソールの外部キーストアと [DescribeCustomKeyStores](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeCustomKeyStores.html) および DescribeKey オペレーションへのレスポンスで、外部キーストアと [DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html)KMS キーに関する詳細情報を表示します。これらの表示には、外部キーストアの[接続状態](xks-connect-disconnect.md#xks-connection-state)や KMS キーに関連付けられている外部キーの ID など、トラブルシューティングに使用できる情報を含む、外部キーストアと KMS キーの特別なフィールドが含まれています。詳細については、「[外部キーストアを表示する](view-xks-keystore.md)」を参照してください。

**[XKS プロキシテストクライアント](https://github.com/aws-samples/aws-kms-xksproxy-test-client)**  
AWS KMS は、外部キーストアプロキシが[AWS KMS 外部キーストアプロキシ API 仕様](https://github.com/aws/aws-kms-xksproxy-api-spec/)に準拠していることを検証するオープンソースのテストクライアントを提供します。このテストクライアントを使用して、外部キーストアプロキシの問題を特定し、解決できます。

## 設定エラー
<a name="fix-xks-configuration"></a>

外部キーストアを作成するときは、外部キーストアの設定を構成するプロパティ値 ([プロキシ認証情報](create-xks-keystore.md#require-credential)、[プロキシ URI エンドポイント](create-xks-keystore.md#require-endpoint)、[プロキシ URI パス](create-xks-keystore.md#require-path)、[VPC エンドポイントサービス名](create-xks-keystore.md#require-vpc-service-name)など) を指定します。がプロパティ値のエラー AWS KMS を検出すると、オペレーションは失敗し、障害値を示すエラーを返します。

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

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

### 一般的な設定エラー
<a name="fix-xks-gen-configuration"></a>

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

[**接続エラーコード**](#xks-connection-error-codes): `XKS_PROXY_INVALID_CONFIGURATION`、`XKS_PROXY_INVALID_TLS_CONFIGURATION`

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

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

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


|  | 
| --- |
| URI パスが無効なため、外部キーストアプロキシがリクエストを拒否しました。外部キーストアの URI パスを検証し、必要に応じて更新します。 | 
+ [プロキシ URI パス](create-xks-keystore.md#require-path)は、プロキシ API への AWS KMS リクエストの基本パスです。 APIs このパスが間違っていると、プロキシへのリクエストはすべて失敗します。外部キーストアの[現在のプロキシ URI パスを表示する](view-xks-keystore.md)には、 AWS KMS コンソールまたは `DescribeCustomKeyStores` オペレーションを使用します。正しいプロキシ URI パスを検出するには、外部キーストアプロキシのドキュメントを参照してください。プロキシ URI パス値の修正については、「[外部キーストアプロパティを編集する](update-xks-keystore.md)」を参照してください。
+ 外部キーストアプロキシのプロキシ URI パスは、外部キーストアプロキシまたは外部キーマネージャーの更新によって変更される可能性があります。これらの変更については、外部キーストアプロキシまたは外部キーマネージャーのドキュメントを参照してください。


|  | 
| --- |
| `XKS_PROXY_INVALID_TLS_CONFIGURATION`AWS KMS が、外部キーストアプロキシへの TLS 接続を確立できません。証明書を含む、TLS 設定を検証します。 | 
+ すべての外部キーストアプロキシには TLS 証明書が必要です。TLS 証明書は、外部キーストアでサポートされている公開認証機関 (CA) によって発行される必要があります。サポートされている CA のリストについては、「 AWS KMS 外部キーストアプロキシ API 仕様」の、「[信頼できる認証機関](https://github.com/aws/aws-kms-xksproxy-api-spec/blob/main/TrustedCertificateAuthorities)」を参照してください。
+ パブリックエンドポイント接続の場合、TLS 証明書のサブジェクト共通名 (CN) が、外部キーストアプロキシの[プロキシ URI エンドポイント](create-xks-keystore.md#require-endpoint)のドメイン名と一致する必要があります。例えば、パブリックエンドポイントが https://myproxy.xks.example.com の場合、TLS、TLS 証明書の CN は、`myproxy.xks.example.com` または `*.xks.example.com` である必要があります。
+ VPC エンドポイントサービス接続の場合、TLS 証明書のサブジェクト共通名 (CN) が、[VPC エンドポイントサービス](create-xks-keystore.md#require-vpc-service-name)のプライベート DNS 名と一致する必要があります。例えば、プライベート DNS 名が myproxy-private.xks.example.com の場合、TLS 証明書の CN は、`myproxy-private.xks.example.com` または `*.xks.example.com` である必要があります。
+ TLS 証明書を有効期限切れにすることはできません。TLS 証明書の有効期限を取得するには、[OpenSSL](https://www.openssl.org/) などの SSL ツールを使用します。外部キーストアに関連付けられた TLS 証明書の有効期限をモニタリングするには、[XksProxyCertificateDaysToExpire](monitoring-cloudwatch.md#metric-xks-proxy-certificate-days-to-expire) CloudWatch メトリクスを使用します。TLS 証明書の有効期限が切れるまでの日数は、 AWS KMS コンソール[**のモニタリング**セクション](xks-monitoring.md)にも表示されます。
+ [パブリックエンドポイント接続](choose-xks-connectivity.md#xks-connectivity-public-endpoint)を使用している場合は、SSL テストツールを使用して SSL 設定をテストします。TLS 接続エラーは、証明書チェーンが間違っていることが原因である可能性があります。

### VPC エンドポイントサービス接続設定のエラー
<a name="fix-xks-vpc-configuration"></a>

**例外**: `XksProxyVpcEndpointServiceNotFoundException`、`XksProxyVpcEndpointServiceInvalidConfigurationException`

一般的な接続の問題に加えて、VPC エンドポイントサービス接続を使用して外部キーストアを作成、接続、または更新するときに、次の問題が発生することがあります。 は、外部キーストア[を作成](create-xks-keystore.md)、[接続](xks-connect-disconnect.md)、および[更新](update-xks-keystore.md)するときに、VPC エンドポイントサービス接続を使用して外部キーストアのプロパティ値を AWS KMS テストします。設定エラーが原因で管理オペレーションが失敗すると、次の例外が生成されます。


|  | 
| --- |
| XksProxyVpcEndpointServiceNotFoundException | 

原因は、次のいずれかである可能性があります。
+ VPC エンドポイントのサービス名が間違っています。外部キーストアの VPC エンドポイントサービス名が正しく、外部キーストアのプロキシ URI エンドポイント値と一致していることを検証します。VPC エンドポイントサービス名を検出するには、[Amazon VPC コンソール](https://console.aws.amazon.com/vpc)または [DescribeVpcEndpointServices](https://docs.aws.amazon.com/AmazonVPC/latest/APIReference/DescribeVpcEndpointServices.html) オペレーションを使用します。既存の外部キーストアの VPC エンドポイントサービス名とプロキシ URI エンドポイントを検索するには、 AWS KMS コンソールまたは [DescribeCustomKeyStores](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeCustomKeyStores.html) オペレーションを使用します。詳細については、「[外部キーストアを表示する](view-xks-keystore.md)」を参照してください。
+ VPC エンドポイントサービスは、外部キーストア AWS リージョン とは異なる にある可能性があります。VPC エンドポイントサービスと外部キーストアが同じリージョンにあることを検証します。(リージョン名の外部名 (`us-east-1` など) は、com.amazonaws.vpce.us-east-1.vpce-svc-example などの VPC エンドポイントサービス名の一部です)。外部キーストアの VPC エンドポイントサービス要件のリストについては、「[VPC エンドポイントサービス](create-xks-keystore.md#require-vpc-service-name)」を参照してください。VPC エンドポイントサービスまたは外部キーストアを別のリージョンに移動することはできません。ただし、VPC エンドポイントサービスと同じリージョンに新しい外部キーストアを作成できます。詳細については、「[VPC エンドポイントサービス接続を設定する](vpc-connectivity.md)」および「[外部キーストアを作成する](create-xks-keystore.md)」を参照してください。
+ AWS KMS は、VPC エンドポイントサービスの許可されたプリンシパルではありません。VPC エンドポイントサービスの **[Allow principals]** (許可プリンシパル) リストには、`cks.kms.eu-west-3.amazonaws.com` のような `cks.kms.<region>.amazonaws.com` 値を含める必要があります。この値を追加する手順については、「AWS PrivateLink ガイド」の「[Manage permissions](https://docs.aws.amazon.com/vpc/latest/privatelink/configure-endpoint-service.html#add-remove-permissions)」を参照してください。


|  | 
| --- |
| XksProxyVpcEndpointServiceInvalidConfigurationException | 

このエラーは、VPC エンドポイントサービスが次の要件のいずれかを満たしていない場合に発生します。
+ VPC には、それぞれが異なるアベイラビリティーゾーンに存在する 2 つ以上のプライベートサブネットが必要です。VPC へのサブネットの追加の詳細については、「Amazon VPC ユーザーガイド」の「[Create a subnet in your VPC](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-subnets.html#create-subnets)」を参照してください。
+ [VPC エンドポイントのサービスタイプ](https://docs.aws.amazon.com/vpc/latest/privatelink/create-endpoint-service.html)には、ゲートウェイロードバランサーではなく、Network Load Balancer を使用する必要があります。
+ VPC エンドポイントサービスに承認は不要です (**承認が必要**は誤りです)。各接続リクエストの手動承認が必要な場合は、VPC エンドポイントサービスを使用して外部キーストアプロキシに接続 AWS KMS することはできません。詳細については、「AWS PrivateLink ガイド」の「[Accept or reject connection requests](https://docs.aws.amazon.com/vpc/latest/privatelink/configure-endpoint-service.html#accept-reject-connection-requests)」を参照してください。
+ VPC エンドポイントサービスには、パブリックドメインのサブドメインであるプライベート DNS 名が必要です。例えば、プライベート DNS 名が `https://myproxy-private.xks.example.com` の場合、`xks.example.com` または `example.com` ドメインにはパブリック DNS サーバーが必要です。VPC エンドポイントサービスのプライベート DNS 名を表示または変更するには、「AWS PrivateLink ガイド」の「[Manage DNS names for VPC endpoint services](https://docs.aws.amazon.com/vpc/latest/privatelink/manage-dns-names.html)」を参照してください。
+ プライベート DNS 名ドメインの**ドメイン検証ステータス**は、`verified` である必要があります プライベート DNS 名ドメインの検証ステータスを表示、更新するには、「[ステップ 5: プライベート DNS 名ドメインを検証する](vpc-connectivity.md#xks-private-dns)」を参照して下さい。必要なテキストレコードを追加した後、更新された検証ステータが表示されるまでに数分かかる場合があります。
**注記**  
プライベート DNS ドメインは、パブリックドメインのサブドメインである場合にのみ検証できます。サブドメインでない場合は、必要な TXT レコードを追加後も、プライベート DNS ドメインの検証ステータスは変わりません。
+  AWS KMS と外部キーストアプロキシ間のファイアウォールで、プロキシのポート 443 との間のトラフィックが許可されていることを確認します。IPv4 経由でポート 443 で AWS KMS 通信します。この値は設定できません。
+ VPC エンドポイントサービスのプライベート DNS 名は、外部キーストアの[プロキシ URI エンドポイント](create-xks-keystore.md#require-endpoint)値と一致する必要があります。VPC エンドポイントサービス接続を備えた外部キーストアの場合、プロキシ URI エンドポイントは `https://` で、その後に VPC エンドポイントサービスのプライベート DNS 名が続く必要があります。プロキシ URI エンドポイント値を表示するには、「[外部キーストアを表示する](view-xks-keystore.md)」を参照してください。プロキシ URI エンドポイント値を変更するには、「[外部キーストアプロパティを編集する](update-xks-keystore.md)」を参照してください。

## 外部キーストア接続エラー
<a name="fix-xks-connection"></a>

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

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

外部キーストアの接続状態を表示するには:
+ [DescribeCustomKeyStores](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeCustomKeyStores.html) レスポンスで、`ConnectionState` 要素の値を表示します。
+  AWS KMS コンソールでは、**接続状態**が外部キーストアテーブルに表示されます。また、各外部キーストアの詳細ページの **[General configuration]** (一般設定) セクションに、**[Connection state]** (接続状態) が表示されます。

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

接続エラーコードを表示するには:
+ [DescribeCustomKeyStores](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeCustomKeyStores.html) レスポンスで、`ConnectionErrorCode` 要素の値を表示します。この要素は、`ConnectionState` が `FAILED` の場合にのみ、`DescribeCustomKeyStores` レスポンスに表示されます。
+  AWS KMS コンソールで接続エラーコードを表示するには、外部キーストアの詳細ページで **Failed **値にカーソルを合わせます。  
![\[カスタムキーストアの詳細ページの接続エラーコード\]](http://docs.aws.amazon.com/ja_jp/kms/latest/developerguide/images/connection-error-code.png)

### 外部キーストアの接続エラーコード
<a name="xks-connection-error-codes"></a>

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

`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` 値のホスト名と一致していること、[信頼できる認証機関](https://github.com/aws/aws-kms-xksproxy-api-spec/blob/main/TrustedCertificateAuthorities)リストに含まれる信頼できる認証機関によって署名されていることを検証します。

`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.<region>.amazonaws.com`などのリージョン AWS KMS のサービスプリンシパルが含まれている必要があります`cks.kms.us-east-1.amazonaws.com`。
+ 接続リクエストの[承認](https://docs.aws.amazon.com/vpc/latest/privatelink/create-endpoint-service.html)を要求しないこと。
+ プライベート DNS 名を付ける必要があります。`VPC_ENDPOINT_SERVICE` 接続の外部キーストアのプライベート DNS 名は、その AWS リージョン内で一意である必要があります。
+ プライベート DNS 名のドメインの[検証ステータス](https://docs.aws.amazon.com/vpc/latest/privatelink/verify-domains.html)は、`verified` である必要があります。
+ [TLS 証明書](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-tls-listener.html)は、エンドポイントにアクセス可能なプライベート DNS ホスト名を指定します。

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

## レイテンシーとタイムアウトエラー
<a name="fix-xks-latency"></a>

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

[**接続エラーコード**](#xks-connection-error-codes): `XKS_PROXY_NOT_REACHABLE`、`XKS_PROXY_TIMED_OUT`

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

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

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


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

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


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

このエラーは、次の原因によって発生する可能性があります。
+ 外部キーストアプロキシがアクティブでないか、ネットワークに接続されていない。
+ 外部キーストア設定の[プロキシ URI エンドポイント](create-xks-keystore.md#require-endpoint)、[プロキシ URI パス](create-xks-keystore.md#require-path)、または [VPC エンドポイントのサービス名](create-xks-keystore.md#require-vpc-service-name) (該当する場合) の値にエラーがある。外部キーストアの設定を表示するには、[DescribeCustomKeyStores](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeCustomKeyStores.html) オペレーションを使用するか[、コンソールで外部キーストアの詳細ページを表示します](view-xks-keystore.md)。 AWS KMS 
+  AWS KMS と外部キーストアプロキシとの間のネットワークパスに、ポートエラーなどのネットワーク設定エラーが発生する可能性があります。 はIPv4 経由でポート 443 の外部キーストアプロキシと AWS KMS 通信します。この値は設定できません。
+ ([GetHealthStatus](keystore-external.md#concept-proxy-apis) レスポンスで) 外部キーストアプロキシが、すべての外部キーマネージャーインスタンスが `UNAVAILABLE` であると報告すると、[ConnectCustomKeyStore](https://docs.aws.amazon.com/kms/latest/APIReference/API_ConnectCustomKeyStore.html) オペレーションは `XKS_PROXY_NOT_REACHABLE` の`ConnectionErrorCode` で失敗します。ヘルプについては、外部キーマネージャーのドキュメントを参照してください。
+ このエラーは、外部キーマネージャーと外部キーストア 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 と外部キーマネージャーが効果的に通信できることを確認します。問題の解決方法については、「 Direct Connect ユーザーガイド」の[「トラブルシューティング AWS Direct Connect](https://docs.aws.amazon.com/directconnect/latest/UserGuide/Troubleshooting.html)」を参照してください。


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

## 認証情報エラー
<a name="fix-xks-credentials"></a>

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

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

外部キーストアプロキシが、外部キーストアの[プロキシ認証情報](keystore-external.md#concept-xks-credential)で署名されたリクエストを認証しない場合、その影響はリクエストによって異なります。
+ `CreateCustomKeyStore` および `UpdateCustomKeyStore` は `XksProxyIncorrectAuthenticationCredentialException` で失敗します。
+ `ConnectCustomKeyStore` は成功するが接続は失敗します。接続状態は `FAILED` で、接続エラーコードは `INVALID_CREDENTIALS` です。詳細については、「[外部キーストア接続エラー](#fix-xks-connection)」を参照してください。
+ 外部キーストアのすべての外部設定エラーと接続状態エラーに対して、暗号化オペレーションは `KMSInvalidStateException` を返します。添付のエラーメッセージは問題を説明しています。


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

このエラーは、次の原因によって発生する可能性があります。
+ 外部キーストアのアクセスキー ID またはシークレットアクセスキーが、外部キーストアプロキシに設定された値と一致しない。

  このエラーを修正するには、外部キーストアの[プロキシ認証情報を更新します](update-xks-keystore.md#xks-edit-name)。この変更は、外部キーストアを切断せずに行うことができます。
+  AWS KMS と外部キーストアプロキシ間のリバースプロキシは、SigV4 署名を無効にする方法で HTTP ヘッダーを操作する可能性があります。このエラーを修正するには、プロキシ管理者に通知してください。

## キーステータスエラー
<a name="fix-unavailable-xks-keys"></a>

**例外**: `KMSInvalidStateException`

`KMSInvalidStateException` は、カスタムキーストアの KMS キーに、2 つの異なる目的で使用されます。
+ `CancelKeyDeletion` などの管理オペレーションが失敗してこの例外が返された場合は、KMS キーの[キーステータス](key-state.md)にオペレーションとの互換性がないことを示します。
+ カスタムキーストアの KMS キーに対する[暗号化オペレーション](kms-cryptography.md#cryptographic-operations)が `KMSInvalidStateException` で失敗した場合、KMS キーのキーステータスに問題がある可能性があります。ただし、 AWS KMS 暗号化オペレーション`KMSInvalidStateException`は、外部キーストアのすべての外部設定エラーと接続状態エラーに対して を返します。問題を特定するには、例外に付随するエラーメッセージを使用します。

 AWS KMS API オペレーションに必要なキーの状態を確認するには、「」を参照してください[キーの AWS KMS キーステータス](key-state.md)。KMS キーのキーステータスを確認するには、[**Customer managed keys**] (カスタマーマネージドキー) ページで、KMS キーの [**Status**] (ステータス) フィールドを表示します。または、 [DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html) オペレーションを使用して、レスポンスの `KeyState` 要素を表示します。詳細については、「[キーの特定と表示](viewing-keys.md)」を参照してください。

**注記**  
外部キーストアの KMS キーのキーステータスは、関連付けられている[外部キー](keystore-external.md#concept-external-key)のステータスを示すものではありません。外部キーステータスに関する情報は、外部キーマネージャーと外部キーストアプロキシツールを参照してください。  
`CustomKeyStoreInvalidStateException` は、KMS キーの[キーステータス](key-state.md)ではなく、外部キーストアの[接続状態](xks-connect-disconnect.md#xks-connection-state)を参照します。

KMS キーのキーステータスが `Unavailable` または `PendingDeletion` の場合、カスタムストアの KMS キーの暗号化オペレーションは失敗する可能性があります。(無効化されたキーは `DisabledException` を返します)。
+ KMS キーは、 AWS KMS コンソールで意図的に KMS キーを無効にするか、[DisableKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DisableKey.html) オペレーションを使用する場合にのみキー`Disabled`状態になります。KMS キーが無効になっている間、キーを表示および管理することはできますが、暗号化オペレーションで使用することはできません。この問題を解決するには、キーを有効にします。詳細については、「[キーの有効化と無効化](enabling-keys.md)」を参照してください。
+ KMS キーは、外部キーストアが外部キーストアプロキシから切断されたときに `Unavailable` キーステータスになります。使用できない KMS キーを修正するには、[外部キーストアを再接続します](xks-connect-disconnect.md)。外部キーストアを再接続すると、外部キーストア内の KMS キーのキーステータスは、`Enabled` や `Disabled` などの以前のステータスに自動的に復元されます。

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

## 復号エラー
<a name="fix-xks-decrypt"></a>

**例外**: `KMSInvalidStateException`

外部キーストアの KMS キーを使用した[復号](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html)オペレーションが失敗すると、 は、外部キーストアのすべての外部設定エラーと接続状態エラーに暗号化オペレーション`KMSInvalidStateException`が使用する標準 AWS KMS を返します。問題を示すエラーメッセージ。

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

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


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

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


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

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

## 外部キーエラー
<a name="fix-external-key"></a>

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

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

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

### 外部キーの CreateKey エラー
<a name="fix-external-key-create"></a>

**例外**: `XksKeyAlreadyInUseException`、`XksKeyNotFoundException`、`XksKeyInvalidConfigurationException`

[CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html) オペレーションは、**[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 キーの要件](create-xks-keys.md#xks-key-requirements)」を参照してください。

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

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


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


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


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

### 外部キーの暗号化オペレーションエラー
<a name="fix-external-key-crypto"></a>

**例外**: `KMSInvalidStateException`

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

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

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

**外部キーを検出できない**

外部キーストアプロキシが、KMS キーの外部キー ID (XksKeyId) を使用して外部キーを検出できないことを報告すると、暗号化オペレーションは次のエラーメッセージを含む `KMSInvalidStateException` を返します。


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

このエラーは、次の原因によって発生する可能性があります。
+ KMS キーの外部キー (`XksKeyId`) ID が無効になりました。

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

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

  KMS キーを使用してデータを暗号化していない場合は、有効な外部キー ID を使用して新しい KMS キーを作成できます。ただし、KMS キーを使用して暗号文を生成した場合は、同じ外部キーを使用しても、他の KMS キーを使用して暗号文を復号することはできません。
+ 外部キーが外部キーマネージャーから削除された可能性があります。調査するには、外部キーマネージャーツールを使用します。可能な場合は、外部キーマネージャーのコピーまたはバックアップから、[キーマテリアルの復元](fix-keystore.md#fix-keystore-recover-backing-key)を試みてください。外部キーが完全に削除された場合、関連する KMS キーで暗号化された暗号文は回復できません。

**外部キー設定エラー**

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


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


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

## プロキシの問題
<a name="fix-xks-proxy"></a>

**例外:** 

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

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

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

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


|  | 
| --- |
| `CustomKeyStoreInvalidStateException`、`KMSInvalidStateException`、または `XksProxyUriUnreachableException`外部キーストアプロキシが異常な状態です。このメッセージが繰り返し表示される場合は、外部キーストアプロキシ管理者に通知してください。 | 
+ このエラーは、外部キーストアプロキシの運用上の問題またはソフトウェアエラーを示している可能性があります。各エラーを生成した AWS KMS API オペレーションの CloudTrail ログエントリを見つけることができます。このエラーは、オペレーションを再試行することで解決する場合があります。ただし、それでも解決しない場合は、外部キーストアプロキシ管理者に通知してください。
+ 外部キーストアプロキシが、([GetHealthStatus](keystore-external.md#concept-proxy-apis) 応答で) すべての外部キーマネージャーインスタンスが `UNAVAILABLE` であると報告した場合、外部キーストアを作成または更新しようとすると、この例外が発生して失敗します。このエラーが解決されない場合は、外部キーマネージャーのドキュメントを参照してください。


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


|  | 
| --- |
|  `CustomKeyStoreInvalidStateException`、`KMSInvalidStateException`、または `UnsupportedOperationException` リクエストされた暗号化オペレーションをサポートしていないため、外部キーストアプロキシはリクエストを拒否しました。 | 
+ 外部キーストアプロキシは、[AWS KMS 外部キーストアプロキシ API 仕様](https://github.com/aws/aws-kms-xksproxy-api-spec/)で定義されているすべての[プロキシ API](keystore-external.md#concept-proxy-apis) をサポートしている必要があります。このエラーは、プロキシがリクエストに関連するオペレーションをサポートしていないことを示します。外部キーストア管理者またはベンダーに通知してください。

## プロキシの承認に関する問題
<a name="fix-xks-authorization"></a>

**例外**: `CustomKeyStoreInvalidStateException`、`KMSInvalidStateException`

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

プロキシ認可は、プロキシへのリクエストに 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ではこのエラーを解決できません。