この記事では、Azure Cloud HSM クラスター内の 1 つ以上のノードにユーザーまたはキーがない場合の同期の問題を特定して解決する方法について説明します。
概要
場合によっては、Azure Cloud HSM クラスター内のすべてのノードにユーザーまたはキーがレプリケートされない場合があります。 これは、自己復旧やアップグレードなどのサービス イベント中、または 1 つ以上のノードで作成が失敗した場合に発生する可能性があります。 断続的な認証エラーまたは暗号化操作エラーが発生している場合は、ユーザーまたはキーを同期する必要がある可能性があります。
Important
1 つのノードにのみ存在するユーザーまたはキーは、そのノードで障害が発生した場合、永続的で回復不能な損失のリスクがあります。 不足しているユーザーまたはキーを特定した場合は、すぐに同期し、現在のバックアップがあることを確認します。
[前提条件]
- Azure Cloud HSM SDK がインストールされている VM にAccessする
- このツール
- Azure Cloud HSM デプロイの暗号化責任者 (CO) 資格情報
ユーザー同期
Azure Cloud HSM のすべてのユーザーは、顧客によって完全に管理されます。 ユーザーの作成に失敗した場合、サービスはバックエンド ユーザー同期を実行しません。 1 つ以上のノードでユーザーの作成が失敗した場合は、不足しているノードにユーザーを手動で同期する必要があります。
Important
すべてのユーザーが一貫して作成され、クラスター内のすべてのノードに存在することを確認します。 ユーザーが見つからないか、ノードで作成に失敗した場合は、必要なコマンドを実行し、整合性を復元するための検証手順を実行する必要があります。
不足しているユーザーを特定する
管理ユーティリティを起動します。
./azcloudhsm_mgmt_util ./azcloudhsm_resource.cfgコマンドを実行して、各ノード (サーバー 0、1、2) の下にユーザー ID、ユーザーの種類、およびユーザー名を表示します。
listUsers各ノードで見つかったユーザーの数と、対応するユーザー名を確認します。 3 台すべてのサーバーの一覧を比較して、不足しているユーザーを特定します。
不足しているユーザーを同期する
暗号化責任者 (CO) としてサインインします。
loginHSM CO admin <adminPassword>3 つのノードすべてに正常にサインインしたことを確認します。
loginHSM success on server 0 loginHSM success on server 1 loginHSM success on server 2注
任意のノードでサインインが失敗した場合、同期操作が失敗する可能性があります。 続行する前に、すべてのノードに正常にサインインしていることを確認します。
ユーザーが存在するソース ノードを特定します。 この例では、サーバー 0 には、サーバー 1 とサーバー 2 では使用できないユーザーがいます。
server 0ユーザーが見つからないサーバーごとに コマンドを実行します。 を実際のユーザー ID に置き換えます。
syncUser <UserID> 1 syncUser <UserID> 2注
ユーザーが既に存在するノードに対して が実行されると、"ユーザーは既に作成済み、オブジェクトを挿入できません" というエラー メッセージが表示されます。 ユーザーが存在しない場合、操作は成功します。
ユーザー同期を検証する
現在のサーバー コンテキストを終了します。
exit実行して、すべてのユーザー ID、ユーザーの種類、ユーザー名が等しく、各ノード (サーバー 0、1、2) で使用できるようになったことを確認します。
listUsers
キー同期
キーを作成するときは、すべてのノードにキーが存在することを確認する必要があります。 Azure Cloud HSM ではサービス側のキーの同期と復元の操作がサポートされていますが、使用する前に、不足しているノードでキーが使用可能であることを確認する必要があります。
Important
キーが見つからないか、ノードで作成に失敗した場合は、適切なコマンドを実行し、検証手順を実行して一貫性を復元する必要があります。 1 つのノードにのみ存在するキーは、そのノードが失敗した場合に永続的な損失のリスクがあります。
不足しているキーを特定する
管理ユーティリティを起動します。
./azcloudhsm_mgmt_util ./azcloudhsm_resource.cfg暗号化責任者 (CO) としてサインインします。
loginHSM CO admin <adminPassword>3 つのノードすべてに正常にサインインしたことを確認します。
loginHSM success on server 0 loginHSM success on server 1 loginHSM success on server 2コマンドを実行して、各ノードのキーとキー ハンドル ID の数を表示します。
findAllKeys 0 0各ノードで検出されたキーの数と、対応するキー ハンドル ID を確認します。 3 台すべてのサーバーの結果を比較して、不足しているキーを特定します。
不足しているキーを同期する
キーを持つソース ノードを特定します。 この例では、サーバー 0 には、サーバー 1 とサーバー 2 では使用できないキー ハンドルがあります。
server 0キーがないサーバーごとに コマンドを実行します。 を実際のキー ハンドル ID に置き換えます:
syncKey <KeyHandle> 1 syncKey <KeyHandle> 2たとえば、キー ハンドル 262150 をサーバー 1 と 2 に同期するには、次のようにします。
syncKey 262150 1 syncKey 262150 2
キーの同期を検証する
現在のサーバー コンテキストを終了します。
exitを実行して、すべてのキー ハンドルと検出されたキーの数が等しく、各ノード (サーバー 0、1、2) で使用できるようになったことを確認します。
findAllKeys 0 0
ベスト プラクティス
同期の問題と潜在的なデータ損失を防ぐには、
- 作成後に確認する: ユーザーまたはキーを作成した後、すぐに 3 つのノードすべてに存在することを確認します。
- 定期的なバックアップを維持する: バックアップと復元 の機能を使用して、ノードの障害から保護します。
- 不一致を監視: 定期的にコマンドを実行して、ノード間の不整合を確認します。
- 障害に迅速に対処する: ユーザーまたはキーの作成エラーが発生した場合は、ノードの障害が発生する前に、不足しているノードに同期します。