AWS CloudHSM クライアント SDK 5 キーのレプリケートの失敗 - AWS CloudHSM

AWS CloudHSM クライアント SDK 5 キーのレプリケートの失敗

CloudHSM CLI の key replicate コマンドは、ソース AWS CloudHSM クラスターから宛先 AWS CloudHSM クラスターにキーをレプリケートします。このガイドでは、ソースクラスター内部、またはソースクラスターと宛先クラスター間の不整合によって発生する障害への対処方法を説明します。

問題: 選択したキーがクラスター全体で同期されない。

キーレプリケーションプロセスでは、ソースクラスター全体でキーの同期状態を確認します。キー情報またはキー属性のいずれかが、"inconsistent" という値になっている場合、そのキーがクラスター内で同期されていないことを意味します。キーレプリケーションは次のエラーメッセージとともに失敗します。

{ "error_code": 1, "data": "The selected key is not synchronized throughout the cluster" }

ソースクラスター内のキーの非同期を確認するには、次の手順を実行します。

  1. CloudHSM CLI で、key list コマンドを実行します。

  2. --filter フラグを使用してキーを指定します。

  3. --verbose フラグを追加して、キーのカバレッジ情報を含む詳細な出力を表示します。

aws-cloudhsm > key list --filter attr.label=example-desynchronized-key-label --verbose { "error_code": 0, "data": { "matched_keys": [ { "key-reference": "0x000000000048000f", "key-info": { "key-owners": [ { "username": "cu1", "key-coverage": "full" } ], "shared-users": [], "key-quorum-values": { "manage-key-quorum-value": 0, "use-key-quorum-value": 0 }, "cluster-coverage": "full" }, "attributes": { "key-type": "aes", "label": "example-desynchronized-key-label", "id": "0x", "check-value": "0xbe79db", "class": "secret-key", "encrypt": false, "decrypt": false, "token": true, "always-sensitive": true, "derive": false, "destroyable": true, "extractable": true, "local": true, "modifiable": true, "never-extractable": false, "private": true, "sensitive": true, "sign": "inconsistent", "trusted": false, "unwrap": false, "verify": true, "wrap": false, "wrap-with-trusted": false, "key-length-bytes": 16 } } ], "total_key_count": 1, "returned_key_count": 1 } }
解決策: ソースクラスター全体でキー情報と属性を同期する

ソースクラスター全体でキー情報と属性を同期させるには、次の手順を実行します。

  1. キー属性の不一致がある場合: 該当するキーに対して key set-attribute コマンドを使用し、目的の属性に設定します。

  2. 共有ユーザー範囲の不一致がある場合: key share または key unshare コマンドを使用して、対象のユーザーとのキー共有状況を調整します。

問題: 同じリファレンスのキーが、宛先クラスターに存在するが、情報または属性が異なる

宛先クラスターに、同じキー参照を持つキーがすでに存在し、そのキー情報または属性が異なる場合、次のエラーが発生する可能性があります。

{ "error_code": 1, "data": "Key replicate failed on 1 of 3 connections" }
解決方法
  1. どちらのキー情報または属性を保持すべきか判断します。

  2. 不要なキーのバージョンを、該当クラスターで key delete コマンドを使用して削除します。

  3. 正しいバージョンを保持しているクラスターからキーをレプリケートします。