Vault の Auth Methods は、外部の身元情報を Vault トークンに変換する玄関口です。選定を誤ると初期ブートストラップやローテーションで詰まりやすく、逆に適切に設計すれば運用コストとリスクを大きく抑えられます。
本稿は、代表的なメソッドの比較、選択フレームワーク、TTL/period の使い分け、ロール設計・監査までを一気に俯瞰します。Associate 対策として問われやすいポイントも明示します。
Auth Method は「認証」。Secret Engine は「秘密の発行/保管」。役割が違います。Auth Method は外部の認証情報(例:Kubernetes の ServiceAccount JWT、IAM 証明、LDAP 資格情報、AppRole の role_id/secret_id など)を受け取り、検証・クレーム評価・ポリシー付与を行い、Vault トークンを発行します。
発行されたトークンはポリシーと TTL(または period)を持ち、Secret Engine へのアクセスに使われます。複数の Auth Method を並行して使っても、Vault の Identity(Entity/Group)で同一人物・同一ワークロードに統合できます。
Vault 認証の標準フロー
Auth Method 選定は「誰がどこから入るか」「初期資格情報をどう安全に渡すか」「更新と失効をどう回すか」で決めます。技術的に可能でも、運用できなければ破綻します。
以下の観点で候補をスクリーニングし、残った 1〜2案を PoC で検証するのが現実的です。
主要メソッドを、主対象・ブートストラップ・ローテーション・外部依存・典型ユースケースで比較します。現場では Kubernetes/OIDC/AppRole/クラウドの 4 本柱でほぼカバーできます。
| メソッド | 主対象 | 初期ブートストラップ | ローテーション/更新 |
|---|---|---|---|
| Token | 人/機械 | Vault 管理者が配布(非推奨) | トークン自体を更新/再発行 |
| OIDC/JWT | 人(開発者/運用者) | IdP 連携(ブラウザ/CLI) | IdP 側のセッション+ Vault トークン更新 |
| Kubernetes | 機械(Pod) | ServiceAccount JWT(TokenReview) | Pod 再起動または periodic 更新 |
| AppRole | 機械(VM/バッチ) | role_id + secret_id 配布(回数/TTL制限可) | secret_id ローテーション+トークン更新 |
| AWS | 機械 | IAM 証明(STS 署名/EC2文書) | インスタンス/ロール変更時に透過 |
| GCP | 機械 | GCE/Workload Identity 証明 | ロール/SAの管理で透過 |
TTL と period は混同されやすい要点です。TTL は最大寿命(max_ttl を超えない)まで更新可能。periodic トークンは期限がなく、指定 period ごとに更新し続ける限り有効(ただし明示的に revoke されれば失効)。どちらを選ぶかは、プロセスの稼働形態と再ログイン容易性で決めます。
ロール設計では、付与ポリシーの最小化に加え、Kubernetes は ServiceAccount/Namespace バインド、AppRole は secret_id の回数・TTL・CIDR 制限、クラウド系はロール/SA/タグ等での厳格なマッチングを設定します。監査ログは少なくとも auth/* の login パスに対して有効化し、誰がどこからどのロールでトークンを得たかを追跡可能にします。
AppRole と Kubernetes Auth の最小構成例(CLI)
# 1) ポリシー(例)
vault policy write app - <<'EOF'
path "secret/data/app/*" {
capabilities = ["read"]
}
EOF
# 2) AppRole を有効化してロール作成
vault auth enable approle
vault write auth/approle/role/app \
token_policies="app" \
token_ttl=1h \
token_max_ttl=4h \
secret_id_ttl=24h \
secret_id_num_uses=10 \
secret_id_bound_cidrs="10.0.0.0/24"
# ログイン用のID取得
ROLE_ID=$(vault read -field=role_id auth/approle/role/app/role-id)
SECRET_ID=$(vault write -f -field=secret_id auth/approle/role/app/secret-id)
# ログイン
vault write auth/approle/login role_id="$ROLE_ID" secret_id="$SECRET_ID"
# 3) Kubernetes Auth を有効化して Role 作成
vault auth enable kubernetes
vault write auth/kubernetes/config \
token_reviewer_jwt="$($(command -v cat) /var/run/secrets/kubernetes.io/serviceaccount/token)" \
kubernetes_host="https://${KUBERNETES_PORT_443_TCP_ADDR}:443" \
kubernetes_ca_cert=@/var/run/secrets/kubernetes.io/serviceaccount/ca.crt
vault write auth/kubernetes/role/demo \
bound_service_account_names="vault-demo" \
bound_service_account_namespaces="default" \
policies="app" \
ttl=1h試験では「この要件ならどの Auth Method が妥当か」「TTL/period の設定はどれか」といった設問が中心です。運用では誤設定や過大権限が事故の典型原因です。
レガシー環境からの移行は、ヒトは OIDC、機械は K8s/クラウドIAM/AppRole へ段階的に寄せるのが現実解です。既存の userpass/LDAP/GitHub は当面併用しても、ポリシーと TTL を厳しめにし、監査を厚くしてリスクを抑えます。
マルチクラウド/ハイブリッドでは、クラウドネイティブの Auth Method を各環境で使い分け、Vault 側の Identity で同一 Entity に束ね、グループでポリシー配布を共通化すると運用が安定します。
Associate
問題 1
社内Kubernetes上のマイクロサービスが Vault から動的DB資格情報を取得する。Pod は自動スケールし、手動配布の資格情報は避けたい。適切な Auth Method とトークン種別の組み合わせはどれか。
正解: A
機械ワークロードかつ K8s 環境での自動認証は Kubernetes Auth が第一選択。Pod ライフサイクルと相性が良く、ServiceAccount によるブートストラップが可能。継続稼働するPodは periodic トークンを更新し続ける運用が適合する。
periodic トークンと TTL ベースの違いは?
TTL は最大寿命(max_ttl)の範囲で更新可能。periodic は期限がなく、指定 period ごとに更新し続ける限り有効。token_period は TTL 系と同時設定しない。
AppRole の role_id が漏れたら終わり?
role_id 単体ではログインできません。secret_id と組み合わせが必要。さらに secret_id は回数・TTL・CIDR で制限し、漏洩時は速やかにローテーション・revoke します。
Kubernetes Auth の前提は?
Vault から Kubernetes API に対する TokenReview が可能であること(token_reviewer_jwt、kubernetes_host、ca 設定)。Role では ServiceAccount 名と Namespace を厳格にバインドします。
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...