カスタムキーストアの接続と切断
新しい外部キーストアが接続されていません。外部キーストアの AWS KMS keys を作成し使用するときは、外部キーストアを外部キーストアプロキシに接続する必要があります。外部キーストアはいつでも接続と切断ができ、その接続ステータスを表示できます。
外部キーストアが切断されている間は、AWS KMS は外部キーストアプロキシと通信できません。それにより、外部キーストアと既存の KMS キーの表示と管理が行えます。ただし、外部キーストアに KMS キーを作成したり、その KMS キーを暗号化オペレーションに使用したりすることはできません。プロパティを編集するときなど外部キーストアの切断が必要になる場合があります。状況に応じて適切に計画を立てます。キーストアを切断すると、その KMS キーを使用する AWS サービスのオペレーションが中断することがあります。
外部キーストアを自分で接続する必要はありません。外部キーストアは、無期限に切断状態のままにし、使用の必要がある場合のみ接続することができます。ただし、定期的に接続をテストして、接続が正しく接続できることを確認するとよいでしょう。
カスタムキーストアを切断すると、そのキーストアの KMS キーはただちに使用できなくなります (結果整合性の影響を受ける)。ただし、KMS キーで保護されたデータキーにより暗号化されたリソースは、KMS キーがデータキーの復号化などで再び使用されるまでは影響を受けません。この問題は AWS のサービス に影響します。その多くが、リソースを保護するためにデータキーを使用しています。詳細については、「使用できない KMS キーがデータキーに及ぼす影響」を参照してください。
注記
外部キーストアは、一度も接続されたことがないか明示的に切断した場合のみ DISCONNECTED
ステータスになります。CONNECTED
ステータスは、外部キーストアやそのサポートコンポーネントが効率的に機能していることを示すものではありません。外部キーストアコンポーネントのパフォーマンスについては、各外部キーストアの詳細ページにある [Monitoring] (モニタリング) セクションのグラフを参照してください。詳細については、「外部キーストアのモニタリング」を参照してください。
外部キーマネージャには、AWS KMS 外部キーストアと外部キーストアプロキシ間、または外部キーストアプロキシと外部キーマネージャー間の通信を、停止および再開するその他の方法が用意されている場合があります。詳細については外部キーマネージャーのドキュメントを参照してください。
トピック
外部キーストアの接続
外部カスタムキーストアを外部キーストアプロキシに接続しているときは、外部キーストアに KMS キーを作成し、その既存の KMS キーをを暗号化オペレーションに使用できます。
外部キーストアを外部キーストアプロキシに接続するプロセスは、外部キーストアの接続性に応じて異なります。
-
外部キーストアをパブリックエンドポイント接続で接続すると、AWS KMS は、GetHealthStatus リクエストを外部キーストアプロキシに送信して、プロキシ URI エンドポイント、プロキシ URI パス、プロキシ認証の認証情報を検証します。プロキシからのレスポンスにより、プロキシ URI エンドポイントとプロキシ URI パスが正確かつアクセス可能であること、および、外部キーストアのプロキシ認証の認証情報で署名されたリクエストをプロキシが認証したことが確定します。
-
VPC エンドポイントサービス接続を使用して外部キーストアを外部キーストアプロキシに接続すると、AWS KMS が次の処理を実行します。
-
プロキシ URI エンドポイントで指定されたプライベート DNS 名のドメインが検証済みであることを確認する。
-
AWS KMS VPC から VPC エンドポイントサービスへのインターフェイスエンドポイントを作成する。
-
プロキシ URI エンドポイントで指定された、プライベート DNS 名のプライベートホストゾーンを作成する。
-
GetHealthStatus リクエストを外部キーストアプロキシに送信する。プロキシからのレスポンスにより、プロキシ URI エンドポイントとプロキシ URI パスが正確かつアクセス可能であること、および、外部キーストアのプロキシ認証の認証情報で署名されたリクエストをプロキシが認証したことが確定します。
-
接続オペレーションによりカスタムキーストアを接続するプロセスが開始しますが、外部キーストアが外部プロキシに接続されるまでに約 5 分かかります。接続オペレーションからのレスポンスは、外部キーストアが接続されたことを示すものではありません。接続が成功したことを確認するには、AWS KMS コンソールまたは DescribeCustomKeyStores オペレーションを使って外部キーストアの接続ステータスを表示します。
接続ステータスが FAILED
である場合、接続エラーコードは AWS KMS コンソールに表示されて、DescribeCustomKeyStore
レスポンスに追加されます。接続エラーコードの解釈については、「外部キーストアの接続エラーコード」を参照してください。
外部キーストアの切断
VPC エンドポイントサービスに接続している外部キーストアを、外部キーストアプロキシから切断すると、AWS KMS は、VPC エンドポイントサービスとのインターフェイスエンドポイントを削除し、接続をサポートするために作成されたネットワークインフラストラクチャを削除します。パブリックエンドポイントに接続している外部キーストアには、同等のプロセスは必要ありません。このアクションは、VPC エンドポイントサービスやそのサポートコンポーネントには影響せず、外部キーストアプロキシや外部コンポーネントにも影響しません。
外部キーストアが切断されている間は、AWS KMS は外部キーストアプロキシにリクエストを送信しません。外部キーストアの接続状ステータスは DISCONNECTED
です。切断された外部キーストアの KMS キーは、(削除が保留されている場合を除き) UNAVAILABLE のキーステータスになります。つまり、暗号化オペレーションには使用できません。しかし、外部キーストアと既存の KMS キーの表示および管理は引き続き行えます。
切断状態は一時的なものとして、また元に戻せるように設計されています。外部キーストアはいつでも再接続できます。通常、再度設定する必要はありません。ただし、関連付けられた外部キーストアプロキシのプロパティが、プロキシ認証の認証情報のローテーションなどにより変更されている場合は、再度接続する前に、外部キーストアの設定を編集する必要があります。
注記
カスタムキーストアが切断されている間は、カスタムキーストアで KMS キーを作成したり、暗号化オペレーションで既存の KMS キーを使用したりする試みはすべて失敗します。このオペレーションにより、ユーザーが機密データを保存したりアクセスしたりすることを防ぐことができます。
外部キーストアの切断による影響を、より正確に予測するには、外部キーストアで KMS キーを識別して過去の使用状況を特定します。
外部キーストアを切断する理由としては、次のようなものが挙げられます。
-
プロパティを編集するには。外部キーストアが接続されている間は、カスタムキーストア名、プロキシ URI パス、プロキシ認証の認証情報の編集が行えます。ただし、プロキシの接続タイプ、プロキシ URI エンドポイント、VPC エンドポイントのサービス名を編集するには、先に外部キーストアを切断しておく必要があります。詳細については、「外部キーストアのプロパティの編集」を参照してください。
-
AWS KMS と外部キーストアプロキシとの通信をすべて停止するには。エンドポイントまたは VPC エンドポイントサービスを無効にすれば、AWS KMS とプロキシとの通信を停止することもできます。さらに、外部キーストアプロキシまたはキー管理ソフトウェアには、AWS KMS とプロキシとの通信を防いだり、プロキシと外部キーマネージャーとのアクセスを防いだりする追加の機能が用意されている場合があります。
-
外部キーストアですべての KMS キーを無効にするには。AWS KMS または DisableKey オペレーションを使用すると、外部キーストアで KMS キーを無効および再度有効にすることができます。これらのオペレーションはすぐに完了します (結果整合性の影響を受ける) が、一度に 1 つの KMS キーしか処理されません。外部キーストアを切断すると外部キーストアのすべての KMS キーのキーステータスが
Unavailable
に変更され、暗号化オペレーションに使用できなくなります。 -
失敗した接続試行を修復するには。外部キーストアを接続する試みに失敗した場合 (カスタムキーストアの接続ステータスが
FAILED
になる) は、再度接続を試みる前に外部キーストアを切断する必要があります。
接続状態
接続と切断により、カスタムキーストアの接続ステータスが変更されます。接続ステータスの値は、AWS CloudHSM キーストアと外部キーストアで同じです。
カスタムキーストアの接続ステータスを確認するときは、DescribeCustomKeyStores か AWS KMS コンソールを使用します。[Connection state] (接続ステータス) は、各カスタムキーストアテーブルに表示され、各カスタムキーストアの詳細ページ内の [General configuration] (一般設定) のセクション、およびカスタムキーストアの KMS キーの [Cryptographic configuration] (暗号化設定) タブに表示されます。詳細については、「AWS CloudHSM キーストアの表示」および「外部キーストアを表示する」を参照してください。
カスタムキーストアの接続ステータスは、次のいずれかになります。
-
CONNECTED
: カスタムキーストアはバッキングキーストアに接続された状態です。ユーザーは、カスタムキーストアで KMS キーを作成し使用することができます。AWS CloudHSM キーストアのバッキングキーストアは、関連付けられた AWS CloudHSM クラスターです。外部キーストアのバッキングキーストアは、外部キーストアプロキシと、それがサポートしている外部キーマネージャーです。
CONNECTED ステータスは、接続に成功し、カスタムキーストアが意図的に切断されていない状態を示します。接続が正常に機能していることを示すものではありません。AWS CloudHSM キーストアに関連付けられた AWS CloudHSM クラスターのステータスについては、「AWS CloudHSM ユーザーガイド」の「AWS CloudHSM の CloudWatch メトリクスを取得する」を参照してください。外部キーストアのステータスとオペレーションについては、各外部キーストアの詳細ページにある [Monitoring] (モニタリング) セクションのグラフを参照してください。詳細については、「外部キーストアのモニタリング」を参照してください。
-
CONNECTING
: カスタムキーストアの接続処理が進行している状態です。これは過渡的な状態です。 -
DISCONNECTED
: カスタムキーストアがバッキングに接続されていない、または、AWS KMS コンソールか DisconnectCustomKeyStore オペレーションを使用して意図的に接続されている状態です。 -
DISCONNECTING
: カスタムキーストアを接続する処理が進行中です。これは過渡的な状態です。 -
FAILED
: カスタムキーストアを接続しようとして失敗した状態です。DescribeCustomKeyStores レスポンスのConnectionErrorCode
は問題を示します。
カスタムキーストアを接続するには、接続ステータスが DISCONNECTED
担っていなければなりません。接続ステータスが FAILED
である場合、ConnectionErrorCode
を使用して問題を特定し、解決します。カスタムキーストアを切断し、再度接続を試みます。接続障害については、外部キーストア接続エラー を参照してください。接続エラーコードの対処方法については「外部キーストアの接続エラーコード」を参照してください。
接続エラーコードを表示するには:
-
DescribeCustomKeyStores レスポンスで、
ConnectionErrorCode
要素の値を表示します。この要素は、ConnectionState
がFAILED
の場合にのみ、DescribeCustomKeyStores
レスポンスに表示されます。 -
AWS KMS コンソールに接続エラーコードを表示するには、外部キーストアの詳細ページで、[Failed] (失敗) 値にカーソルを合わせます。
外部キーストアを接続する (コンソール)
外部キーストアを外部キーストアプロキシに接続するには、AWS KMS コンソールを使用します。
-
AWS Management Console にサインインし、AWS Key Management Service (AWS KMS) コンソール (https://console.aws.amazon.com/kms
) を開きます。 -
AWS リージョン を変更するには、ページの右上隅にあるリージョンセレクターを使用します。
ナビゲーションペインで、[Custom key stores] (カスタムキーストア)、[External key stores] (外部キーストア) の順に選択します。
-
接続する外部キーストアの行を選択します。
外部キーストアの接続ステータスが FAILED である場合、外部キーストアを切断してから接続します。
-
[Key store actions] (キーストアアクション) メニューから [Connect] (接続) を選択します。
通常、接続プロセスが完了するまでに約 5 分かかります。オペレーションが完了すると、接続ステータスは CONNECTED に変わります。
接続状態が Failed になった場合は、接続ステータスにカーソルを合わせると、エラーの原因を示す接続エラーコードが表示されます。接続エラーコードの対処方法については「外部キーストアの接続エラーコード」を参照してください。接続ステータスが Failed である外部キーストアに接続するには、先にカスタムキーストアを切断します。
外部キーストアを接続する (API)
切断された外部キーストアを接続するには、ConnectCustomKeyStore オペレーションを使用します。
接続する前、外部キーストアの接続ステータスは DISCONNECTED
になっているはずです。接続ステータスが FAILED
である場合は、外部キーストアを切断してから接続します。
この接続処理は、約 5 分で完了します。すぐに失敗しない限り、ConnectCustomKeyStore
は、HTTP 200 レスポンスと、プロパティを含まない JSON オブジェクトを返します。ただし、この初期レスポンスは接続に成功したことを示していません。外部キーストアが接続されているかどうかを確認するには、DescribeCustomKeyStores のレスポンスの接続ステータスを確認します。
このセクションの例では AWS Command Line Interface (AWS CLI)
外部キーストアを識別するには、カスタムキーストア ID を使用します。ID はコンソールの [カスタムキーストア] ページまたは DescribeCustomKeyStores オペレーションを使用して見つけることができます。この例を実行する前に、例の ID を有効な ID に置き換えます。
$
aws kms connect-custom-key-store --custom-key-store-id
cks-1234567890abcdef0
ConnectCustomKeyStore
オペレーションは、そのレスポンスで ConnectionState
を返しません。外部キーストアが接続されていることを確認するには、DescribeCustomKeyStores オペレーションを使用します。デフォルトでは、このオペレーションは、アカウントとリージョンのすべてのカスタムキーストアを返します。ただし、CustomKeyStoreId
または CustomKeyStoreName
パラメータのどちらかを使用して (両方は使用できません) レスポンスを特定のカスタムキーストアに制限できます。CONNECTED
の ConnectionState
値は、外部キーストアが外部キーストアプロキシに接続されていることを示します。
$
aws kms describe-custom-key-stores --custom-key-store-name
ExampleXksVpc
{ "CustomKeyStores": [ { "CustomKeyStoreId": "cks-9876543210fedcba9", "CustomKeyStoreName": "ExampleXksVpc", "ConnectionState": "CONNECTED", "CreationDate": "2022-12-13T18:34:10.675000+00:00", "CustomKeyStoreType": "EXTERNAL_KEY_STORE", "XksProxyConfiguration": { "AccessKeyId": "ABCDE98765432EXAMPLE", "Connectivity": "VPC_ENDPOINT_SERVICE", "UriEndpoint": "https://example-proxy-uri-endpoint-vpc", "UriPath": "/example/prefix/kms/xks/v1", "VpcEndpointServiceName": "com.amazonaws.vpce.us-east-1.vpce-svc-example" } } ] }
DescribeCustomKeyStores
の ConnectionState
値が FAILED
である場合、ConnectionErrorCode
要素に失敗した原因が示されます。
次の例では、ConnectionErrorCode
の XKS_VPC_ENDPOINT_SERVICE_NOT_FOUND
値は、AWS KMS が、外部キーストアプロキシとの通信に使用する VPC エンドポイントサービスを特定できないことを示します。XksProxyVpcEndpointServiceName
が正しいこと、AWS KMS サービスプリンシパルが Amazon VPC エンドポイントサービスで許可されたプリンシパルであること、VPC エンドポイントサービスで接続リクエストを受け入れる必要がないことを確認します。接続エラーコードの対処方法については「外部キーストアの接続エラーコード」を参照してください。
$
aws kms describe-custom-key-stores --custom-key-store-name
ExampleXksVpc
{ "CustomKeyStores": [ { "CustomKeyStoreId": "cks-9876543210fedcba9", "CustomKeyStoreName": "ExampleXksVpc", "ConnectionState": "FAILED", "ConnectionErrorCode": "XKS_VPC_ENDPOINT_SERVICE_NOT_FOUND", "CreationDate": "2022-12-13T18:34:10.675000+00:00", "CustomKeyStoreType": "EXTERNAL_KEY_STORE", "XksProxyConfiguration": { "AccessKeyId": "ABCDE98765432EXAMPLE", "Connectivity": "VPC_ENDPOINT_SERVICE", "UriEndpoint": "https://example-proxy-uri-endpoint-vpc", "UriPath": "/example/prefix/kms/xks/v1", "VpcEndpointServiceName": "com.amazonaws.vpce.us-east-1.vpce-svc-example" } } ] }
外部キーストアを切断する (コンソール)
外部キーストアを外部キーストアプロキシに接続するには、AWS KMS コンソールを使用します。この処理は約 5 分で完了します。
-
AWS Management Console にサインインし、AWS Key Management Service (AWS KMS) コンソール (https://console.aws.amazon.com/kms
) を開きます。 -
AWS リージョン を変更するには、ページの右上隅にあるリージョンセレクターを使用します。
ナビゲーションペインで、[Custom key stores] (カスタムキーストア)、[External key stores] (外部キーストア) の順に選択します。
-
切断する外部キーストアの行を選択します。
-
[Key store actions] (キーストアアクション) メニューから [Disconnect] (切断) を選択します。
オペレーションが完了すると、接続状態が [DISCONNECTING] から [DISCONNECTED] に変わります。オペレーションが失敗した場合は、問題を説明し、修正方法を示すエラーメッセージが表示されます。さらにヘルプが必要な場合は、「外部キーストア接続エラー」を参照してください。
外部キーストアを切断する (API)
接続している外部キーストアを切断するには、DisconnectCustomKeyStore オペレーションを使用します。オペレーションが成功すると、AWS KMS は HTTP 200 レスポンスおよびプロパティなしの JSON オブジェクトを返します。この処理は約 5 分で完了します。外部キーストアの接続ステータスを確認するときは、DescribeCustomKeyStores オペレーションを使用します。
このセクションの例では AWS Command Line Interface (AWS CLI)
こちらの例では、VPC エンドポイントサービスに接続した外部キーストアを切断します。このコマンドを実行する前に、例にあるカスタムキーストア ID を有効な ID に置き換えます。
$
aws kms disconnect-custom-key-store --custom-key-store-id
cks-1234567890abcdef0
外部キーストアが切断されていることを確認するには、DescribeCustomKeyStores オペレーションを使用します。デフォルトでは、このオペレーションは、アカウントとリージョンのすべてのカスタムキーストアを返します。ただし、CustomKeyStoreId
または CustomKeyStoreName
パラメータ のどちらかを使用して (両方は使用できません) レスポンスを特定のカスタムキーストアに制限できます。DISCONNECTED
の ConnectionState
値は、例にある外部キーストアが、外部キーストアプロキシに接続されていないことを示します。
$
aws kms describe-custom-key-stores --custom-key-store-name
ExampleXksVpc
{ "CustomKeyStores": [ { "CustomKeyStoreId": "cks-9876543210fedcba9", "CustomKeyStoreName": "ExampleXksVpc", "ConnectionState": "DISCONNECTED", "CreationDate": "2022-12-13T18:34:10.675000+00:00", "CustomKeyStoreType": "EXTERNAL_KEY_STORE", "XksProxyConfiguration": { "AccessKeyId": "ABCDE98765432EXAMPLE", "Connectivity": "VPC_ENDPOINT_SERVICE", "UriEndpoint": "https://example-proxy-uri-endpoint-vpc", "UriPath": "/example/prefix/kms/xks/v1", "VpcEndpointServiceName": "com.amazonaws.vpce.us-east-1.vpce-svc-example" } } ] }