エンタープライズ運用では、Vault 本体の可用性だけでなく、ライセンスの有効期限と適用方法がSLOを左右します。
本稿は、公式ドキュメントに沿った安定的な概念と運用手順に絞り、試験で問われやすい設問パターンも織り交ぜて解説します。
Vault Enterprise のライセンスは文字列(通称 hclic)として提供され、クラスタ単位で適用します。ライセンスはクラスタのストレージに暗号化保存され、リーダーで設定すればレプリケーションを通じてスタンバイにも反映されます。
有効期限の前後ではログに警告が出力され、期限切れ後はエンタープライズ機能に影響が及ぶ可能性があります。運用としては期限前の計画的更新が前提です。購買・セキュリティ・運用の3者で責任を分担し、変更管理の承認フローを明確にしましょう。
| 用語 | 位置づけ | 要点 |
|---|---|---|
| hclic(ライセンス文字列) | エンタープライズ機能の有効化キー | クラスタに一つ。暗号化保存される |
| 有効期限 | 運用上のデッドライン | 期限前更新が原則。警告ログと状態確認を自動化 |
| 責任分界 | 購買/セキュリティ/運用 | 購買=取得、セキュリティ=保管、運用=適用・監視 |
ライセンスの論理スコープ
ライセンス状態の読み取り(CLI例)
export VAULT_ADDR=https://vault.example.com
export VAULT_TOKEN=<operator-token>
# ライセンスのメタ情報を確認
vault read sys/license
# JSON が必要なら
vault read -format=json sys/license | jq .ライセンスは機密情報です。原本はソースコード管理に置かず、アクセスが監査可能な安全な保管先(たとえば社内の秘密管理ストアや鍵付きのアーカイブ)に格納します。運用環境に配布する場合は、最小権限の原則で読み取り経路を限定します。
配布の実務では、チェックサム検証・所有者/パーミッション固定・配布ログの保存を標準化しておくと、監査やインシデント対応が迅速になります。
| 役割 | 許可される操作 | 監査ポイント |
|---|---|---|
| 購買 | ライセンス取得・更新依頼 | 発行元・契約期間の記録 |
| セキュリティ | 原本保管・配布経路の承認 | アクセスログ・改ざん検知 |
| 運用 | 適用・検証・監視 | 適用時刻・実施者・結果 |
責任分界のイメージ
安全なファイル取り扱い例(Linux)
# 受領ファイルの整合性チェック
sha256sum -c license.hclic.sha256
# パーミッション固定
install -o root -g vault -m 0640 license.hclic /etc/vault/license.hclic
# 取得ログを残す(例)
echo "$(date -Is) vault license staged by $USER from secure store" >> /var/log/vault/license_audit.logVault はオンラインでライセンスを更新できます。クラスタに接続できる運用トークンでシステムエンドポイントへ書き込むのが、停止を伴わない標準手順です。起動時読み込みも可能ですが、再起動を伴うため計画停止が必要になります。
本番では、先に状態を読み出して有効期限や署名情報を確認し、変更ウィンドウ内でオンライン更新→検証→ロールバックポイントの確定、という流れをテンプレート化すると安全です。
| 適用方法 | 再起動要否 | 自動化適性 | メリット |
|---|---|---|---|
| オンライン更新(API/CLI) | 不要 | 高い(CI/CD, Runbook) | 無停止・即時反映 |
| 起動時読み込み(環境変数) | 必要(プロセス再起動) | 中 | 構成として一元管理しやすい |
| 起動時読み込み(ファイル) | 必要(プロセス再起動) | 中 | 運用がシンプル |
オンライン更新の流れ(リーダー適用→レプリカ反映)
オンライン更新と事前検証の例
# 事前確認
vault read sys/license
# オンライン適用(text フィールドでライセンス文字列を送信)
vault write sys/license text=@/etc/vault/new.license.hclic
# 直後に状態確認
vault read sys/license | grep -E "expiration|start|features"
# 失敗時のロールバック(旧ライセンスを再適用)
vault write sys/license text=@/etc/vault/old.license.hclicライセンス状態はシステムエンドポイントから取得できます。定期ポーリングして残日数を算出し、しきい値で通知しましょう。Vault のサーバーログにも期限接近や不一致の警告が出ます。監視は API とログの二重化が安心です。
メトリクス連携を使う場合は、外部エクスポータで残日数を数値化し、Prometheus 等に取り込むとアラート化しやすくなります。
| シグナル | 取得方法 | 推奨しきい値・運用 |
|---|---|---|
| 残日数 | vault read sys/license の有効期限から計算 | 60/30/7日前で通知・チケット自動発行 |
| 警告ログ | サーバーログのパターン監視 | 期限接近・期限切れ・適用失敗を検出 |
| 変更イベント | 監査ログ/変更履歴 | 適用者・時刻・結果を必ず保存 |
監視フロー
残日数チェックの簡易スクリプト例(bash+jq)
# periodic_license_check.sh
set -euo pipefail
EXP_TS=$(vault read -format=json sys/license | jq -r '.data.expiration_time' )
NOW_TS=$(date -u +%s)
EXP_EPOCH=$(date -u -d "$EXP_TS" +%s 2>/dev/null || date -u -j -f "%Y-%m-%dT%H:%M:%SZ" "$EXP_TS" +%s)
DAYS_LEFT=$(( (EXP_EPOCH - NOW_TS) / 86400 ))
echo "days_left ${DAYS_LEFT}"
if [ ${DAYS_LEFT} -le 30 ]; then
logger -t vault-license "License expires in ${DAYS_LEFT} days"
fi無停止更新の基本は、事前の検証とロールバック計画です。本番と同一系の検証環境で新ライセンスの整合を確認し、変更ウィンドウでオンライン更新→状態確認→影響範囲のヘルスチェックを行います。
DR/レプリケーション構成では、プライマリ側に適用すればクラスタ内で共有されます。DR セカンダリは切替時に同一ライセンス状態であることを確認します。
| 環境 | 推奨ウィンドウ | 手順差分・注意点 |
|---|---|---|
| 本番 | 短時間のメンテ(無停止前提) | オンライン更新後にリージョン横断のヘルスチェック |
| DR | 本番と同時 | 切替手順書に「ライセンス整合性確認」を追記 |
| 検証/開発 | 随時 | 新バージョン検証時にライセンス確認を自動化 |
ローテーションのタイムライン
Runbook(擬似コード)
# 1) 事前確認
vault read sys/license > precheck.txt
# 2) メンテ開始アナウンス
# 3) 適用
vault write sys/license text=@/secure/new.hclic
# 4) 検証
diff <(vault read -format=json sys/license | jq .data) <(cat precheck.txt | jq .data) | tee validation.diff
# 5) 影響範囲のヘルスチェック(例)
vault status && curl -sf https://health.example.com/vault
# 6) ログ記録・チケット更新適用時エラーは、トークン権限不足、無効な文字列、通信経路の問題が主因です。まずはシステムエンドポイントへの書き込み権限と、ライセンス文字列の完全性を確認します。期限切れ時はログを確認し、オンライン更新で速やかに復旧します。
試験では「各ノードに個別適用が必要」などの誤りが混ざりがちです。正しくはクラスタに一度適用すれば十分です。
| 症状 | 考えられる原因 | 一次対応 |
|---|---|---|
| 適用失敗 | 権限不足/文字列破損/ネットワーク | ポリシー確認・ファイル整合性・API経路疎通 |
| 期限接近の見落とし | 監視未整備 | 残日数監視の導入・多段アラート設定 |
| クラスタ不一致の懸念 | 誤った個別適用手順 | リーダーに一度適用し状態を再読込 |
一次切り分けの決定木
APIでの明示的な適用(curl)
curl -sS -X PUT \
-H "X-Vault-Token: $VAULT_TOKEN" \
-H "Content-Type: application/json" \
--data @- \
${VAULT_ADDR}/v1/sys/license <<'JSON'
{ "text": "$(cat /etc/vault/new.license.hclic | tr -d '\n')" }
JSON
# 結果確認
curl -sS -H "X-Vault-Token: $VAULT_TOKEN" ${VAULT_ADDR}/v1/sys/license | jq .Ops
問題 1
本番クラスタでダウンタイムを最小化しつつ Vault Enterprise ライセンスを更新する適切な手順はどれか。
正解: A
オンライン更新はリーダーで一度実施すればクラスタに反映され、ダウンタイムを伴いません。各ノード個別適用や期限切れ放置は不適切です。
ライセンスはノードごとに適用する必要がありますか?
不要です。クラスタに一度適用すれば、ストレージに暗号化保存され、クラスタ内で共有されます。
期限切れ直前に自動で延長されますか?
自動延長はされません。事前に新しいライセンスを受領し、オンライン更新または計画停止で適用してください。監視により60/30/7日前の多段通知を推奨します.
適用にはどの権限が必要ですか?
システムエンドポイントに対する適切な権限を持つ運用トークンが必要です。最小権限で適用専用のトークンを用意し、使用時刻と実施者を監査ログに残してください。
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...