Root TokenはVaultでもっとも強力なトークンで、sys/配下の操作を含む全機能に対するsudo権限を持ちます。便利な反面、誤用や漏えいはそのままクラスタ全体の危機に直結します。
この記事では、Root Tokenの正体、最小権限設計に向けたブートストラップ、失効・再生成手順(generate-root)、試験で狙われやすい論点をまとめます。内容は公式ドキュメントの安定機能を前提にしています。
Vaultの初期化時に発行されるInitial Root Tokenは、ポリシー上はpath "*" に対するcreate/read/update/delete/list/sudoを含む全権を持つ、事実上の最高権限トークンです。多くのsys/系エンドポイントはsudoが必須であり、Root Tokenはこれらを無制限に実行できます。
Root Tokenは日常運用用ではありません。初期セットアップで監査と認証を整備したら、広い権限の管理者トークンへ引き継ぎ、Rootは失効させるのが基本方針です。実環境ではRoot Tokenが失効しない(無期限扱い)構成もあるため、保持期間に依存せず明示的なrevokeを前提にしてください。
| 種別 | 権限範囲 | 典型TTL/有効性 | 作成/入手 |
|---|---|---|---|
| Root Token | 全権(含sudo, sys/*) | 無期限扱いが多い(環境依存)。明示revoke推奨 | 初期化時/必要時にgenerate-rootで再生成 |
| 管理者トークン(広権限) | 名前空間やチーム範囲で広い。必要なpathに限りsudo付与 | 数時間〜数日(更新可能) | OIDC/LDAP等のAuth Methodでログイン+ACLポリシー |
| 自動化トークン(AppRole等) | 対象pathの最小権限。原則sudoなし | 分〜時間(短命/定期更新) | AppRole/認証フロー+ラップトークン |
Initial Root Tokenを受け取った直後にやるべきことは、監査の有効化、認証方式の準備、ACLポリシー作成、管理者ロールの構築、そしてRootの役割終了(失効)です。Rootを長く持たない流れを確立すれば、漏えい時の被害半径を最小化できます。
実務での安全な流れは次のとおりです。1) auditデバイスを最初に有効化、2) 必要なSecrets Engine/Auth Methodを有効化、3) 管理者/運用者用のACLポリシーを作成、4) 認証方式(OIDC/LDAP/AppRole)を構成し管理者トークンを発行・検証、5) Root Tokenを失効。
ブートストラップの流れ(概要)
Root Tokenは「原則保管しない・必要なら再生成する」方針が安全です。自動化や日常運用にRootを用いないでください。Rootが必要な作業はRunbook化し、発行から失効までの所要時間を最短化します。
sudoが本当に必要な操作(sys/auth, sys/mount, sys/policies等)を棚卸しし、管理者ポリシーに限定的なsudoだけを付与します。監査ログは最初に有効化し、Root使用は必ず監査対象にします。
Root Tokenの基本は明示的revokeです。既存Rootでログイン中ならvault token revoke -self、別セッションからならvault token revoke <token>で失効します。漏えい疑い時は直ちにrevokeし、必要なら再生成します。
再生成はvault operator generate-rootを用います。OTP方式では、1) 初期化(-init)でnonceとOTPを取得、2) 所定のクォーラム数のUnseal Key(またはリカバリーキー)保有者が順番にキーを適用してエンコード済みトークンを完成、3) OTPでデコードして新しいRoot Tokenを取り出します。作業後は速やかに目的操作を終え、Rootを再度revokeしてください。PGP鍵を使って復号可能者を限定する運用も一般的です。
例: OTP方式でRoot Tokenを一時再生成する手順
# 1) 初期化: nonceとOTPを取得
$ vault operator generate-root -init -otp
Nonce : 9b1d... (記録)
One-time OTP : c2VjdXJlLW90cA== (記録)
# 2) クォーラム分のキーを順次適用
$ vault operator generate-root -nonce=9b1d...
Unseal Key (will be hidden): <キー1を入力>
Progress: 1/3
$ vault operator generate-root -nonce=9b1d...
Unseal Key (will be hidden): <キー2を入力>
Progress: 2/3
$ vault operator generate-root -nonce=9b1d...
Unseal Key (will be hidden): <キー3を入力>
Progress: 3/3
Encoded Token: eyJlbmNvZGVkX3Jvb3QiOi... (記録)
# 3) 復号してRoot Tokenを取り出す
$ vault operator generate-root -decode=eyJlbmNvZGVkX3Jvb3QiOi... -otp=c2VjdXJlLW90cA==
Root Token: s.zwJ9... (用途限定で使用)
# 4) 目的操作完了後に明示失効
$ VAULT_TOKEN=s.zwJ9... vault token revoke -selfどの操作にsudoが必要かはpath-helpで確認できます。sudoが必要なエンドポイントを通常トークンで叩くとpermission deniedになります。管理者ポリシーにsudoを付けるのは、そのpathに限定してください。
トークンの状態はvault token lookupで、権限はvault capabilitiesで確認します。Root使用時は監査ログで該当操作を追跡できることも検証ポイントです。
試験では、Root Tokenの用途を初期ブートストラップに限定し、監査→認証→ポリシー→Root失効の順序を理解しているかが頻出です。generate-rootはクォーラムのキー保有者が関与する多段プロセスで、OTPやPGPを使った安全な配布を問われることがあります。
sudoとrootの違い、Auth Methodで得た管理者トークンに限定的sudoを付ける設計、Rootを自動化に使わないこと、Unseal/Recoveryキーはトークンではないことなど、基本用語の取り違えもよく狙われます。
Associate / Ops
問題 1
Vaultの初期化後、Initial Root Tokenを受け取った直後の適切な対応として最も正しいものはどれか。
正解: A
最初にauditを有効化し、Auth MethodとACLで日常運用の入口を作った上でRootをrevokeするのが正解。Rootを長期保管・自動化で利用する設計は不適切で、TTL任せにせず明示失効が推奨されます.
Root Tokenを紛失しました。どうすべきですか?
必要であればgenerate-rootで一時的なRoot Tokenを再生成します。-initでnonce/OTPを取得し、クォーラム分のUnseal/Recoveryキー保有者が順次入力してエンコード値を完成させ、OTPで復号します。作業後はすぐにRootをrevokeしてください。
Root Tokenに有効期限を設定できますか?
環境によって挙動は異なりますが、Root Tokenは失効しない(無期限扱い)場合があります。期限に依存せず、必要最小限の利用と明示的なrevokeを前提にしてください。運用上のローテーションはgenerate-rootで都度発行・即時失効する運びが推奨です。
rootポリシーとsudoの違いは何ですか?
sudoは特定のエンドポイントで管理操作を許可するケーパビリティです。rootポリシーはpath "*" に対してcreate/read/update/delete/list/sudoを付与した事実上の全権ポリシーで、Root Tokenはこれによりsys/*などのsudo必須操作を含めて実行できます。管理者トークンには必要なpathに限定してsudoを付与します。
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...