試験対策だけに閉じず、現場でそのまま使える知識に落とし込むのが最短です。本ガイドは公式ドキュメントとLearnの安定項目に寄せて、ハンズオン重視で整理します。
Associateは概念・主要機能の正確な把握、Opsは初期化・アンシール、ストレージ、監査、ポリシー運用といった“動かす責務”が焦点です。
Vaultは「認証→認可→シークレット配布→リース管理→監査」という一連の流れを正確に理解できているかが評価されます。Associateでは概念と代表的ユースケース、主要シークレットエンジン(KV、DB、Transit、PKI)と認証方式(Token、AppRole、Kubernetes、OIDCなど)が核です。Opsでは初期化・アンシール、ストレージ(Integrated Storage/Raft)、バックアップ、監査、トークン運用(TTL/Lease/Renew/Revoke)が問われます。
Enterprise固有機能(名前空間、パフォーマンスレプリケーション等)は深掘りしすぎず、出題されても概念と目的レベルで説明できる程度に留めるのが安全です。詳細は公式ドキュメントの安定項目に沿って確認します。
Vaultにおける認証→認可→シークレット配布の流れ
公式Learnのチュートリアルは、CLIとAPIの両面で手が動く構成になっています。以下の順に通すとAssociateのブループリントを自然に網羅し、Opsで必要な運用コマンドも身に付きます。
各モジュールでは、CLIの簡略パス(vault kv get secret/foo)と実際のAPIパス(/v1/secret/data/foo)の差を必ず意識しましょう。試験ではこの差異がよく問われます。
| Learnモジュール/テーマ | 狙いどころ | 試験ドメイン対応 |
|---|---|---|
| KV v2 基本操作 | CLI簡略パスとAPI実パスの差、バージョン管理と削除/破棄 | シークレットエンジン / データ管理 |
| Token とポリシー | defaultポリシーの影響、capabilities評価、deny優先 | 認証・認可 / ポリシー |
| AppRole 認証 | role_id/secret_idの運用、ラップトークンの安全な受け渡し | 認証方式 / セキュアワークフロー |
| Kubernetes 認証 | JWT検証、ロールとポリシーの対応付け | 認証方式 |
| データベース動的クレデンシャル | リースとTTL、更新/取り消しの影響範囲 | 動的シークレット / リース管理 |
| Transit | 平文非保存、キーのローテーションとバージョン | 暗号サービス / 運用 |
最短で動作を掴むには-devモードが有効です。単一ノード、メモリ内ストレージ、自動アンシールで、学習には十分。ただし本番利用不可である点は試験でも強調されます。Dockerでも同様に再現可能です。
Opsを視野に入れる場合、Integrated Storage(Raft)での起動とスナップショット取得を一度体験しておきましょう。バックアップ/復旧の理解は得点源です。
15分で通す最小ハンズオン(dev + KV v2 + AppRole + Transit)
# 1) devサーバ起動(学習用。実運用不可)
vault server -dev -dev-root-token-id=root &
export VAULT_ADDR='http://127.0.0.1:8200'
export VAULT_TOKEN='root'
# 2) KV v2 を有効化し、データを書き/読む
vault secrets enable -path=secret -version=2 kv
vault kv put secret/app/config db_user=app db_pass=s3cr3t
vault kv get secret/app/config
# 3) ポリシーを作成(読み取りのみ許可)
cat <<'EOF' > read-app.hcl
path "secret/data/app/*" {
capabilities = ["read"]
}
EOF
vault policy write read-app read-app.hcl
# 4) AppRole を作成し、ロールとポリシーを紐付け
vault auth enable approle
vault write auth/approle/role/app role_name=app policies=read-app secret_id_ttl=1h token_ttl=15m token_max_ttl=1h
ROLE_ID=$(vault read -field=role_id auth/approle/role/app/role-id)
SECRET_ID=$(vault write -field=secret_id auth/approle/role/app/secret-id)
# 5) AppRoleでログインしてシークレットを読む
APP_TOKEN=$(vault write -field=token auth/approle/login role_id="$ROLE_ID" secret_id="$SECRET_ID")
VAULT_TOKEN=$APP_TOKEN vault kv get secret/app/config
# 6) Transitを有効化して暗号/復号(平文は保存されない)
vault secrets enable transit
vault write -f transit/keys/appkey
CIPHERTEXT=$(vault write -field=ciphertext transit/encrypt/appkey plaintext=$(echo -n 'hello' | base64))
vault write -field=plaintext transit/decrypt/appkey ciphertext=$CIPHERTEXT | base64 -d
# 7) 監査を有効化(学習用にfile出力。実行権限/パスに注意)
sudo touch /var/log/vault_audit.log && sudo chmod 666 /var/log/vault_audit.log
vault audit enable file file_path=/var/log/vault_audit.log初期化(init)でマスターキーが分割(Shamir)され、アンシールで閾値分のキー入力が必要になります。自動アンシール(クラウドKMS連携)はOps領域で頻出。rekeyは分割鍵の再生成、rotateは内部暗号鍵のローテーションで別物です。
Integrated Storage(Raft)はシンプルで本番利用に適し、スナップショットでバックアップを取得できます。監査はfile/socketなどデバイスを有効化し、機微情報はredactできます。トークンはサービス/バッチの違い、periodic、orphan、TTLとmax_ttlの関係を整理しておきましょう。
CLIの簡略パスとAPIパスの混同、KV v1/v2の取り違え、トークン種別とTTLの挙動は典型的なひっかけです。ポリシーの評価順(deny優先)やパスのワイルドカードも要注意。Transitは“暗号サービス”であり、平文を保存しない点を強調しましょう。
レスポンスラッピング(wrapping)はシークレットそのものではなく一時トークンを配布する仕組みです。unwrapで取り出すと一度きりで失効します。安全な受け渡しフローを説明できると強いです。
学習の最後は手を動かして確認→要点の暗記→模擬の順で締めます。7日間でAssociate/Opsを両立させる最短プランを置きます。実務での“あるある”と紐付けると忘れません。
時間がない場合でも、KV v2・AppRole・DB動的クレデンシャル・Transit・init/unseal/audit/raft snapshotの体験は死守しましょう。
Associate / Ops
問題 1
CIパイプラインで一時的にVaultにアクセスしたい。トークンはストレージに保存されず、更新不可で短命であることが要件。最も適切な選択はどれか。
正解: A
バッチトークンはサーバ側に永続化されず、更新不可で軽量な特性のためCIの短命用途に最適。サービストークン(orphan含む)は更新・再発行が可能でサーバに状態を持つ。Periodicは更新で長期化できる前提、キャッシュでの永続化は要件に反する。
devモードは試験でも出ますか?実務では使えますか?
試験では“学習・検証用で本番不可”という性質が問われます。単一ノード/メモリ内/自動アンシールでセキュリティ要件を満たしません。実務ではIntegrated Storageや外部KMSでの自動アンシールを検討します。
KV v1 と v2 の見分け方とCLI/APIパスの違いは?
有効化時に-version=2を指定していればv2です。CLIの vault kv get secret/foo はv2でも簡略化されていますが、APIは /v1/secret/data/foo(データ)や /v1/secret/metadata/foo(メタデータ)と“data/metadata”が入ります。試験はこの差異を問うことがあります。
TTL と max_ttl、periodic の関係は?
明示ttlはmax_ttlを超えられません。max_ttlが上限で、未指定時はデフォルト値が適用。periodicトークンは固定間隔で更新し続けられる特性を持ちますが、割り当てられた制約内での運用が前提です。動的シークレットのリースTTLも同様に更新・取り消しの挙動を理解しておきましょう。
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...