Vaultのトークンや動的シークレットはTTLで失効し、更新時はMax TTLやPeriodなど複数の上限に縛られます。資格試験でも“どこで何が上限になるか”が頻出です。
この記事では、公式ドキュメントに沿った安定仕様に限定し、TTL/Max TTL/Periodの違い、更新の制約、チューニングの優先順位、運用時の落とし穴をまとめます。
TTLは発行時からの残存有効期間、Max TTLは更新を含む通算の最長寿命(非Periodicの場合)です。更新要求はサーバ側で上限に丸め込まれるため、指定した-increment通りに延びるとは限りません。
PeriodicトークンはPeriodを必ず継続更新する前提で、理論上の最大寿命に上限がありません。一方、Batchトークンは軽量だが更新不可です。動的シークレットの“リースTTL”はトークンのTTLとは別物で、各シークレットエンジン/ロールの設定とマウントの上限に従います。
| 対象 | 初期TTL/Periodの決定 | 更新の可否 | 上限の考え方 |
|---|---|---|---|
| サービストークン(非Periodic) | 発行時指定 or ロールのtoken_ttl or 認証メソッドのtoken_ttl | 可(renewable=true) | token_max_ttl(ロール/認証メソッド)と最終的にシステムのmax_lease_ttlで上限 |
| サービストークン(Periodic) | ロール/認証メソッドのtoken_period | 可(Period内に要更新) | Max TTLは適用されず理論上無期限(更新が前提) |
| バッチトークン | 発行時指定 -ttl(上限はマウント/システム) | 不可 | 更新不可のため初期TTLのみ |
| 動的シークレットのリース | ロールのttl(未指定はマウントのdefault_lease_ttl) | 可(ロール/エンジンが許可する場合) | ロールのmax_ttlおよびマウントのmax_lease_ttl |
非Periodicトークンの寿命イメージ(TTLとMax TTL)
T0 T1 T2 T_max
|---------------------|--------------|------------------|
発行 更新1 更新2 Max TTL到達
残TTL: ^^^^^^^^^^^^^
更新は可能だが、T_max(発行時刻+token_max_ttl)を越えては延長されない更新可能かどうかは、トークンの種類と作成時属性で決まります。serviceトークンはrenewable=trueであれば更新可能、periodicはPeriod前提で更新必須、batchは更新不可です。lookupでrenewableやperiodの有無を確認できます。
CLIでの作成例を示します。periodicトークンの発行は、認可されたルート/管理権限またはperiodを定義する認証メソッド/ロール経由で行います。
トークンの作成と更新の基本
# サービストークン(非Periodic、更新可)
$ vault token create -ttl=20m
Key Value
--- -----
token s.XYZ...
# 更新(サーバ側で上限に丸められる)
$ vault token renew -increment=30m s.XYZ...
# バッチトークン(更新不可)
$ vault token create -type=batch -ttl=30m
$ vault token renew s.BATCH...
Error: token is not renewable
# Periodicトークン(権限がある場合の例。認証メソッド/ロールでperiodを設定するのが実務的)
$ vault token create -period=1h
$ vault token lookup s.PERIODIC...
period 1h
renewable trueトークンの初期TTLと更新上限は“要求値”が最上位に見えても、実際はロール、認証メソッド、システム設定で順に制約されます。試験ではどの層がどの値を支配するかを問われます。
代表的な順序は以下です。periodが設定されると、そのトークンはPeriodicになり、Max TTLは無視されます。
認証メソッドのチューニング例(userpass)
# 認証メソッドを有効化
$ vault auth enable userpass
# 初期TTLとMax TTLをチューニング(非Periodic)
$ vault auth tune -token-ttl=30m -token-max-ttl=4h userpass/
# Periodicにしたい場合(Max TTLではなくPeriodが効く)
$ vault auth tune -token-period=1h userpass/
# ユーザー作成とログイン(例)
$ vault write auth/userpass/users/alice password='s3cr3t' policies=default
$ vault login -method=userpass username=alice password='s3cr3t'
# 付与されたトークンの属性を確認
$ vault token lookuprenewの-incrementは“希望値”です。サーバはMax TTLやPeriod、ポリシー上限で結果TTLを丸めます。丸め込みは正常動作であり、エラーではありません。
更新前後のTTLはlookupで都度確認します。スケジューラでPeriodicの更新タイミング(例: Periodの60–80%時点)を切ると安定します。
renewと観測の最小セット
# 現在のTTL/属性を確認
$ vault token lookup s.XYZ...
# 希望増分を指定して更新(結果はサーバで丸め)
$ vault token renew -increment=45m s.XYZ...
# 再度確認
$ vault token lookup s.XYZ...動的シークレットのリースTTLはトークンのTTLとは独立設定ですが、親トークンが失効/取り消しされると、そのトークンから派生したリースは原則として取り消されます。実務では“トークンTTL ≥ 利用中シークレットのTTL”か、確実なトークン更新ジョブを用意します。
リース更新はトークン更新とは別APIです。混同しないように運用パイプラインを分け、失効時の再発行と権限最小化を設計しましょう。
リースとトークンの更新を分けて扱う
# 例: 動的シークレットのリースIDを更新
$ vault lease renew database/creds/readonly/AbCdEfGh
# 例: アクティブなトークンを延長
$ vault token renew -increment=30m
# 注意: トークンをrevokeすると、当該トークンで発行したリースは取り消される
$ vault token revoke s.XYZ...Associate対策では、“どの設定がどの上限に影響するか”と“PeriodicはMax TTLに縛られない”の2点を確実に押さえます。実務では更新スケジュールと監視をセットで設計することが重要です。
Associate
問題 1
Vaultのトークン更新に関する説明として最も正しいものはどれか。
正解: A
PeriodicトークンはPeriodに基づいて継続更新でき、Max TTLの上限は適用されません。Batchは更新不可。非PeriodicはMax TTLに縛られ、CLI指定はロール/認証メソッド/システムの上限で丸められます。
renewの-incrementで指定した分だけ必ず延長されますか?
いいえ。指定は“希望値”であり、サーバ側でMax TTLやPeriod、ポリシー/マウント上限に丸められます。結果はvault token lookupで確認してください。
PeriodicトークンにMax TTLを同時に設定できますか?
できません。token_periodが有効な場合はPeriodicとなり、Max TTLの概念は適用外です。継続運用にはPeriod内での定期更新が必須です。
トークンTTLを延長すると、既に発行済みの動的シークレットのリースTTLも延びますか?
延びません。トークン更新とリース更新は別APIです。必要に応じて各リースを個別にrenewしてください。なお、親トークンが失効すると対応するリースは原則取り消されます。
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...