HCP Vault Dedicated の required index state not present エラーの原因と対策
HCP Vault Dedicated を利用しているときに required index state not present というエラーメッセージが出たので、原因と対策をまとめます。 何が起きたか HCP Vault Dedicated では KV シークレットエンジンなどのシークレット管理サービスや Transit シークレットエンジンを使った暗号化サービスを提供しています。 クライアントアプリケーションから HCP Vault Dedicated の暗号化サービスに対して復号リクエストしたときに、まれに required index state not present というエラーが返ってくることがありました。 原因 HCP Vault Dedicated のノード間のインデックス同期よりもクライアント側の Write リクエストと Read リクエストの間隔が短いことが原因でした。 少し踏み込んでみます。 HCP Vault Dedicated は内部的に Active ノードと Performance Standby ノードを持っていて、Vault クラスタに対する Write/Read リクエストは各ノードに振り分けられます。 リクエストが Active ノードに送られた場合は特に影響ないため割愛。 Write リクエストが Performance Standby ノードに送られると Active ノードに転送されます。 ドキュメントを読むと、厳密には認証や動的シークレットのリクエストのときには RPC を使って Active ノードにトークンなどの情報を書き込み、それ以外の Write リクエストは Active ノードに転送するようです。 Write リクエストが処理されると Vault の内部でインデックスが更新されます。 ...