Vaultの監査ログは、だれがいつ何を要求し、Vaultがどう応答したかを追跡する基盤です。File Audit Deviceは、これをホストのローカルファイルへ1行1イベントのJSONとして書き出します。
本稿は、ローカルファイル出力にフォーカスし、試験で問われやすいコマンドや用語、実務運用で外せない権限・ローテーション設計、セキュリティ上の落とし穴までを、手を動かせる粒度で解説します。
Vaultの監査デバイスは、リクエストとレスポンスのメタデータを記録します。File Audit Deviceは最もシンプルで、指定したパスに追記型でJSON行を出力します。センシティブな値は既定でHMAC化され、平文が残らない設計です。
ローカルファイル出力は、単一ノード構成、OS標準のlogrotate利用、エージェントによる転送(FilebeatやFluent Bitなど)と組み合わせる際に適しています。認定試験では、有効化・無効化のコマンド、パラメータ名(file_path)、HMACの性質(既定で機密値はハッシュ化)あたりが頻出です。
| デバイス | 出力先 | 主な利点 | 主な注意点 |
|---|---|---|---|
| file | ローカルファイル | シンプル・導入容易 | ノードごとに分散、権限/容量管理が必要 |
| syslog | ローカルsyslog(必要に応じて転送) | 集中管理に乗せやすい | 環境のsyslog設定に依存 |
| socket | UNIX/TCPソケット | 低レイテンシに外部プロセスへ | 相手側プロセスの可用性に依存 |
| stderr | 標準エラー | コンテナ環境でログ基盤へ拾わせやすい | 長期保管は別途仕組みが必要 |
ローカルファイル出力の流れ
監査デバイス一覧の確認
vault audit list -detailed有効化は1コマンドで完了します。事前にディレクトリを作成し、Vaultプロセスが書き込める所有者・パーミッションにしておきます。既定では機密値はHMAC化されるため、平文が出ない設定がデフォルトです。
有効化後は、実際にリクエストを1つ発生させて(例: vault status や kv操作)ファイルにイベントが出力されることを確認します。無効化はマウントパス(例: file/)を指定します。
有効化〜確認〜無効化の例
sudo mkdir -p /var/log/vault
sudo chown vault:vault /var/log/vault
# 監査デバイス有効化(ローカルファイル)
vault audit enable file file_path=/var/log/vault/audit.log
# 状態確認
vault audit list -detailed
# 動作確認(イベント発生)
vault status
sudo tail -n1 /var/log/vault/audit.log
# 無効化(デフォルトのパス名は file/)
vault audit disable file/File Audit Deviceは1イベント1行のJSON(いわゆるNDJSON)で出力します。代表的なフィールドは、time、type(request/response)、request.path、request.operation、remote_address、auth情報(ポリシー等)、errorの有無などです。機密にあたる値(例: シークレットデータやトークン値)は既定でHMAC化され、平文は残りません。
相関調査が必要な場合は、監査ハッシュAPI(sys/audit-hash/<デバイス名>)で、特定の文字列がログ中でどのHMAC値になるかをローカルで計算できます。これにより、平文を保存せずに追跡できます。
サンプル行(一部フィールドを短縮)
{
"time":"2026-04-19T10:15:30.123456Z",
"type":"request",
"auth":{
"client_token":"hmac-sha256:2f9c...",
"display_name":"root",
"policies":["root"]
},
"request":{
"id":"c7b0...",
"operation":"read",
"path":"sys/health",
"remote_address":"192.0.2.10",
"data":{
"foo":"hmac-sha256:91ab..."
}
},
"response":{
"status":200
},
"error":false
}権限は最小化が基本です。監査ログディレクトリはvaultユーザ所有、グループは閲覧が必要なロールのみに限定し、ファイルは0640程度に。バックアップや転送エージェントの読取りアクセスは最小限に抑えます。
ローテーションはOSのlogrotateなど既存基盤を使います。copytruncate方式は簡単ですが、一時的な行欠落の可能性も理解した上で採否を決めます。ローテーション後の権限(create句)や圧縮、世代数を明示しましょう。ディスク使用量監視(しきい値と通知)は必須です。
logrotate設定例(/etc/logrotate.d/vault-audit)
/var/log/vault/audit.log {
weekly
rotate 12
compress
dateext
missingok
notifempty
create 0640 vault vault
copytruncate
}log_rawは既定で無効であり、平文のシークレットが出力されないのが基本挙動です。検証以外でlog_raw=trueにすることは避けます。閲覧権限は職務分掌に基づき厳格に付与し、アクセスの監査証跡も残しましょう。
HMACは監査デバイス単位でソルト化されます。調査時は監査ハッシュAPIで同等値を生成して照合します。保持期間・暗号化・改ざん検知(WORM等)は社内規程・外部規制(例: 金融、医療)に準拠させます。
HMAC値の照合(監査ハッシュAPIの例)
# 監査デバイス名が file/ の場合
vault write sys/audit-hash/file input="[email protected]"Permission deniedやNo such file or directoryが出る場合は、ディレクトリの存在・所有者・SELinux/AppArmorの制約を確認します。ファイルに出力されない場合、監査デバイスの有効化状態(vault audit list)と、実際にイベントを発生させたか(操作を行ったか)を切り分けます。
試験対策としては、enable/disable/listコマンド、必須パラメータfile_path、機密値が既定でHMAC化される点、ローカルファイル出力はローテーションをOS側で行うという運用前提を押さえておけば得点につながります。
動作確認のワンライナー(イベント発生→直近行を確認)
vault kv put secret/demo foo=bar
sudo tail -n1 /var/log/vault/audit.log | jq -r '.type + " " + .request.path'Associate / Ops
問題 1
Vaultで監査ログをローカルファイルに安全に出力し、OSのlogrotateで管理したい。初期設定として最も適切なコマンドはどれか。(平文のシークレットは残さない前提)
正解: A
ローカルファイル出力はfileデバイスで有効化し、file_pathを指定する。パス名(-path=...)は任意だが例のように付けてもよい。log_rawは既定でfalse(平文を出さない)なので設定不要。syslogは別デバイス、sys/audit-hashは照合用APIで有効化ではない。
有効化後に出力先パス(file_path)を変更したい。どうすればよい?
監査デバイスは有効化時のパラメータを変更できないため、いったん対象の監査デバイスを無効化(vault audit disable <パス>)し、新しいfile_pathで再度enableします。切替時はローテーションや権限の設定も合わせて見直してください。
ディスクが満杯で書込みに失敗するとどうなる?
監査書込みに失敗すると、Vaultはセキュア側(fail-closed)に倒れる設計で、状況によりリクエストがエラーになります。容量監視・アラートとローテーションの運用は必須です。複数の監査デバイスを併用し、単一障害点を避けることも検討してください。
複数の監査デバイスを同時に有効化できる?
はい。fileとsyslogなどを併用できます。ローカルに必ず残しつつ、別経路で集約基盤へ送るといった冗長化が可能です。各デバイスは独立にパラメータを持つため、トラブルシュート時はどのデバイスが失敗しているか個別に確認します。
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...