Vault はストレージバックエンドを差し替え可能ですが、現在の推奨は本番では Integrated Storage (Raft) です。Filesystem バックエンドは単一ノード前提で、主に開発・検証向けの選択肢です。
この記事では、Filesystem バックエンドの設定、開発での実用ポイント、スケーリング時の限界、運用と移行の判断軸を、試験で問われやすい観点と実務の勘所を揃えて解説します。
Filesystem バックエンドは、ローカルディスク上のディレクトリに Vault の暗号化済みデータを保存します。外部サービスへの依存がなく、セットアップが最も簡単です。一方で、HA 構成やクラスタリングはできません。単一ノードでの開発・個人検証・短命な PoC での利用が主な適用範囲です。
Vault は保存前にデータを暗号化します。したがって、基盤のファイルシステムが暗号化されていなくても、保存されるオブジェクトは平文ではありません。ただし、権限管理やディスク障害対策は OS/インフラ側の責務です。
設定はシンプルで、storage "file" の path を指定します。開発ではローカルディレクトリを用意し、Vault 実行ユーザに対して適切な所有権とパーミッションを設定します。TLS は本番では必須ですが、開発では簡便のために無効化するケースもあります (試験では本番での TLS 必須を意識)。
ディレクトリは安定したローカルブロックデバイス上に置き、コンテナ使用時はホストの永続ボリュームにマウントします。ネットワーク共有は避けます。
最小の Vault 設定例 (開発向け)
# /etc/vault.d/vault.hcl
storage "file" {
path = "/opt/vault/data"
}
# 開発では簡便のために TLS 無効化 (本番では必ず TLS 有効化)
listener "tcp" {
address = "0.0.0.0:8200"
tls_disable = 1
}
disable_mlock = true
# 実行例:
# sudo mkdir -p /opt/vault/data && sudo chown -R vault:vault /opt/vault
# vault server -config=/etc/vault.d/vault.hcl
CI の統合テストやローカル開発で、Vault を素早く起動しシークレットを投入・検証する用途に向きます。In-memory の dev モードと異なり、プロセスを再起動してもデータが保持されるため、短期的な状態保持が必要な検証に便利です。
アプリ側のクライアント認証 (AppRole、Kubernetes Auth など) の結線テストにも使用できます。ただしパフォーマンステストや可用性評価には不適です。
Filesystem バックエンドは、多数の小さなオブジェクトをファイルとして扱うため、メタデータ操作や同期的な書き込みが増えるワークロードで性能劣化が顕在化しやすいです。特に高頻度の書き込みや大量のリスト操作、ディレクトリ・inode の枯渇に注意します。
HA 非対応のため、スループットを上げる手段はスケールアップに限られます。I/O レイテンシが p99 で長い環境では、認証パスやシークレットの取得遅延がアプリの SLO を直撃します。
単一ノードと共有 FS 非対応のイメージ
バックアップは、整合性のとれたスナップショットを取得するのが原則です。もっとも安全なのは Vault を停止またはシール状態にしてから、データディレクトリをファイルシステムのスナップショット機能やブロックレベルで取得する方法です。稼働中の単純なファイルコピーは部分書き込みのリスクがあります。
監視はディスクレイテンシと IOPS、空き容量、inode 使用率を最優先に。Vault 側は監査ログの出力可否、HTTP 5xx 増加、リース更新エラー率などを継続監視します。
可用性要件が生じた時点、またはスループット/レイテンシがボトルネック化した時点が切り替えの合図です。既存に Consul を標準運用している組織は Consul バックエンドの選択肢もありますが、現在の推奨は Integrated Storage (Raft) を用いた自己完結クラスタです。
移行は新クラスタを用意し、計画停止のうえで必要なシークレットを API 経由で再投入する方法が一般的です (エクスポートできない種類もあるため事前棚卸必須)。本番要件があるなら早めに Raft/Consul 設計へ移行を検討しましょう。
| 項目 | Filesystem | Integrated Storage (Raft) | Consul |
|---|---|---|---|
| HA/ロック | 非対応 (単一ノードのみ) | Raft によるリーダ選出とクォーラム | セッション/ロックで HA |
| 一貫性モデル | 単一ノード内で強整合 | 強整合 (Raft) | 強整合 (クォーラム書き込み) |
| 可用性 | 単一障害点 | 3台以上で冗長化 | 3台以上の Consul サーバ |
| 依存関係 | OS のローカル FS のみ | 外部依存なし (内蔵) | 外部 Consul クラスタに依存 |
| 運用複雑さ | 低 (最小構成) | 中 (クラスタ運用) | 高 (別製品の運用) |
| バックアップ | FS/ボリュームの整合スナップショット | Raft スナップショット | Consul のスナップショット機能 |
Associate / Ops
問題 1
小規模な検証環境で、単一の VM 上に Vault を最短で立てたい。ダウンタイムは許容、外部コンポーネントは増やしたくない。正しいストレージ選択はどれか。
正解: A
要件は単一ノード・最小構成・外部依存なし。Filesystem が最適。NFS 共有での多重接続 (D) はサポート外。HA が必要なら Raft/Consul だが、ここでは過剰。
Filesystem バックエンドは安全ですか?平文で保存されますか?
Vault はデータを保存前に暗号化するため、平文では保存されません。ただし OS の権限管理やディスクの暗号化/冗長化は別途必要です。監査ログなどは保存先に応じて平文になる場合があるため、ログの取り扱いにも注意してください。
NFS や SMB を使って複数の Vault から同じディレクトリに接続しても良いですか?
不可です。Filesystem バックエンドは HA/ロック機構を提供せず、共有ファイルシステム越しの多重接続はサポートされません。複数ノードや可用性が必要なら Integrated Storage (Raft) か Consul を選びます。
バックアップ/リストアはどう行いますか?
もっとも安全なのは Vault を停止またはシール状態にしてから、データディレクトリのファイルシステム/ボリュームスナップショットを取得する方法です。復旧時は同一バージョンの Vault にディレクトリを戻し、アンシールして整合性を確認します。稼働中の単純なファイルコピーは避けてください。
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...