Vaultのレプリケーションは便利ですが、すべてを複製すべきとは限りません。コンプライアンスやデータ局所性の観点から、複製対象を意図的に絞り込む設計が求められます。
本稿では、Vault EnterpriseのFiltered Paths(パスベースのフィルタ)を中心に、パフォーマンスレプリケーションでの複製対象の制限手法、DRレプリケーションとの違い、ローカルマウントや名前空間と組み合わせた現実的なパターンを解説します。
Filtered Pathsは、Vault Enterpriseのパフォーマンスレプリケーションにおいて、複製対象をパス単位で絞り込むための仕組みです。インクルード(許可)/エクスクルード(拒否)ルールを定義し、セカンダリに送るデータの最小化を図れます。
重要なポイントは、Filtered Pathsはレプリケーション層の制御であり、クライアントへのアクセス制御(ポリシー)とは異なるという点です。ポリシーは読み書き可否を制御しますが、Filtered Pathsはセカンダリに『届くデータそのもの』を限定します。
また、ローカルマウント(local=true)を使うと、該当マウント配下のデータはパフォーマンス/DRの両方で複製対象外になります。より粗い粒度ですが、確実に除外できます。
Vaultのレプリケーションには主にパフォーマンスレプリケーションとDRレプリケーションがあります。Filtered Pathsはパフォーマンスレプリケーションで利用する考え方です。DRレプリケーションはフェイルオーバー目的であり、選別複製よりも完全性重視です。
複製対象を制限する手法は複数あり、要件に応じて使い分けます。細かく制御したい場合はFiltered Paths、マウント全体を除外したいならローカルマウント、テナントや組織単位で分けるなら名前空間スコープのセカンダリが適します。
| 方法 | 粒度 | 対応レプリケーション | 主な用途 |
|---|---|---|---|
| Filtered Paths(パスフィルタ) | パス単位(インクルード/エクスクルード) | パフォーマンス | 必要なパスだけを複製してデータ最小化 |
| 名前空間スコープのセカンダリ | 名前空間サブツリー単位 | 主にパフォーマンス | テナント/組織境界での複製分離 |
| ローカルマウント(local=true) | マウント単位 | パフォーマンス/DR双方で除外 | コンプライアンス上セカンダリへ持ち出したくないデータの一括除外 |
| DRレプリケーション(選別なし) | 全体(原則) | DR | 障害対策の完全なデータ保全 |
パスベースのフィルタは誤設定があるとデータ漏えいまたは想定外の欠落を招きます。実務では『インクルード中心(許可リスト)+最小権限』を基本に、対象を段階的に広げるのが安全です。
パス命名はプレフィックスでグルーピングし、チーム/システム/データ機密度を階層に反映します。これにより職責境界がそのままフィルタルールに落とし込みやすくなります。KV、PKI、Transitなどエンジン種別に関わらず、論理パスの前方一致で設計可能です。
Filtered Pathsのルールは、専用の設定でインクルード/エクスクルードを定義して適用します。評価順序や詳細仕様は利用中のVault Enterpriseバージョンのドキュメントに従い、ステージング環境で必ず検証してください。
Filtered Pathsの評価イメージ
細粒度に複製を制限したい場合はFiltered Pathsを中心に設計します。チーム単位やアプリケーション単位で論理パスを整理し、許可リストを定義します。監査やメトリクスで影響範囲を観測しながら段階的に拡張します。
テナント分離が前提の環境では、名前空間スコープのセカンダリを採用し、組織境界で複製を分けると運用が単純になります。各セカンダリ側に必要最小のパスのみが存在する状態をポリシーと合わせて維持します。
コンプライアンス上セカンダリに出せないデータ(例: 特定地域限定データ、実験用マウントなど)は、マウントをlocal=trueで作成/調整し、レプリケーション層から完全に除外します。
フィルタ設計は必ずステージングのセカンダリで検証します。代表的なパスにテストデータを投入し、到達可否とポリシー整合を確認します。監査ログ(audit)やメトリクスで想定外の到達/欠落がないかを継続監視します。
変更は申請・レビュー・実装・検証のワークフローを整備し、ロールバック手順を事前に用意します。Filtered Pathsのルール変更は将来の複製に影響します。既にセカンダリに存在するデータの扱い(自動削除の有無や手動クリーンアップ方針)は事前に合意しておきます。
DRレプリケーション環境では、原則として選別を行わず、どうしても除外が必要なものはローカルマウントを用いる方針に統一すると運用が安定します。
以下は、ローカルマウントで一部マウントを複製対象外にしつつ、パフォーマンスレプリケーションを有効化する最小例です。Filtered Pathsのルール設定自体はEnterprise機能の詳細に依存するため、利用中のバージョンの公式手順に従ってください。
ポイントは、team-b マウントを local で作成しておくと、パフォーマンス/DRの双方で複製対象外になること、そしてteam-aは複製されることを確認できる構成になっている点です。
例: ローカル除外 + パフォーマンスレプリケーション
# Primary でログイン
vault login <root>
# マウント作成(team-a は複製対象、team-b はローカル=除外)
vault secrets enable -path=team-a kv-v2
vault secrets enable -local -path=team-b kv-v2
# サンプルデータ投入
vault kv put team-a/app foo=bar
vault kv put team-b/app baz=qux
# パフォーマンスレプリケーションを有効化(Primary 側)
vault write -f sys/replication/performance/primary/enable
# セカンダリ有効化用のトークンを作成(出力値を控える)
# 実際の出力・パラメータは利用バージョンのドキュメントに従ってください
vault write -f sys/replication/performance/primary/secondary-token
# Secondary 側で有効化(<token>は上記で取得)
vault write sys/replication/performance/secondary/enable token=<token>
# 検証: Secondary で team-a は取得可能、team-b は存在しない想定
vault kv get team-a/app # => 存在するはず
vault kv get team-b/app # => 見つからない(local で除外)Filtered Pathsはパフォーマンスレプリケーションの話題であり、DRでの選別は基本想定外である点を混同しないでください。マウントのlocalフラグは両方のレプリケーションに効く排他的な除外です。
ポリシーdenyではレプリケーション自体は止まりません。『セカンダリにデータを運ばない』要件には、Filtered Pathsやローカルマウントを使います。
名前空間スコープは粗い粒度での分離に有効ですが、パス単位の最適化はFiltered Pathsで補います。
Ops
問題 1
Vault Enterpriseで、パフォーマンスセカンダリへは team-a/ 配下だけを複製し、その他のパスは送らない設計にしたい。最も適切なアプローチはどれか。
正解: A
複製対象そのものをパス単位で制限するには、パフォーマンスレプリケーションのFiltered Pathsを用いるのが適切です。DRレプリケーションでの選別は想定されておらず、local=trueは複製自体を行わない除外です。ポリシーdenyはアクセス制御であり、レプリケーションの送達自体を止めるものではありません.
DRレプリケーションでもFiltered Pathsのようにパス選別はできますか?
原則としてできません。DRは障害時の完全な復旧を重視するため、選別より完全性が優先されます。どうしても除外が必要な場合は、該当マウントを local=true で作成/調整して複製対象から外します。
KV v2やTransitなどエンジン種別ごとにフィルタ方法は変わりますか?
Filtered Pathsは論理パスに基づくため、基本的な考え方はエンジン種別に依存しません。パス命名と階層の一貫性を設計し、前方一致で意図どおりに対象を表現できるようにしておくのがコツです。
フィルタルールを変更した場合、既にセカンダリへ複製済みのデータはどうなりますか?
ルール変更は今後の複製に影響します。既存データの取り扱いはバージョンや構成に依存し、自動削除されない場合があります。セカンダリ側のクリーンアップ方針(手動/自動)を事前に決め、変更前に影響範囲を監査ログで把握してください。
NicheeLab編集部
データエンジニアリング・クラウド資格の専門家。Databricks・Snowflake等の認定資格を保有し、実務経験に基づいた問題作成・解説を行っています。NicheeLab運営。
Vault のコア概念を最短距離で理解する:Secret / Auth / Policy / Token
HashiCorp Vault Associate レベルで押さえるべきコア概念(Secret Engine、Auth ...
Vault Operations Professional: 上位資格としての範囲を実務目線で押さえる
HashiCorp Vault Operations Professional(Ops Pro)の出題範囲を、Assoc...
Vaultにおけるパスベースのルーティング: マウントとAPI構造を読み解く
HashiCorp Vaultのパスベースのルーティングを、マウント設計とAPIパスの観点から整理。Associateレ...
Vault Tokens の基礎: 認証の起点となる概念
HashiCorp Vault におけるトークンの役割、種類、ライフサイクル、ポリシー連携、設計パターンをAssocia...
Vault のトークン種類を正しく使い分ける: service / batch 実践
HashiCorp Vault Associate 向けの試験対策と実務運用を両立させた、service トークンと b...