トキヌク

Vault サンプル問題

HashiCorp Certified: Vault Associate(Vault)対策のオリジナル問題50問を無料公開。アプリの無料枠と同じ問題で、全210問収録のVault問題集から抜粋しています。「答えと解説を見る」を開くと、正解だけでなく全選択肢の解説を読めます。

50問無料公開 全210問収録 全選択肢解説付き
アプリで解く(無料・登録不要)→

認証メソッド

認証メソッドの比較/選定

Q1. 社内には既にActive Directoryが運用されており、運用担当者は普段使っているアカウントのままVaultにログインしたいと考えています。アカウントの二重管理を避けられる認証メソッドはどれですか?

  1. A. AppRole
  2. B. LDAP
  3. C. userpass
  4. D. TLS証明書
答えと解説を見る

正解:B

A RoleIDとSecretIDを使う機械向けの認証で、人間の既存ディレクトリ資産を活用できない

B(正解) 正解。既存のLDAP/ADディレクトリに問い合わせて認証し、ディレクトリ側のグループをVaultポリシーにマッピングできる

C Vault内に独自のユーザー名とパスワードを作る方式なので、ADとの二重管理が発生してしまう

D クライアント証明書の発行と配布という別の運用が増え、既存アカウントの再利用にはならない

AppRole/機械認証

Q2. CI/CDパイプラインのビルドジョブが、人間の介在なしにVaultへ認証してデプロイ用のシークレットを取得します。役割を表すIDと、それとは別に配布する秘密値の2つを組み合わせる、機械向けに設計された認証メソッドはどれですか?

  1. A. userpass
  2. B. GitHub
  3. C. AppRole
  4. D. credpass
答えと解説を見る

正解:C

A 人間向けにVault内へユーザーを作る方式で、機械への安全な資格情報配布の仕組みを持たない

B 実在する認証メソッドだが、個人のGitHubトークンを使う人間向けの方式であり、RoleIDとSecretIDの組み合わせではない

C(正解) 正解。RoleID(公開してよい役割の識別子)とSecretID(機密値)を分離して配布でき、アプリやCIジョブの認証を想定した設計になっている

D架空 このような名前の認証メソッドはVaultに存在しない

認証メソッドの比較/選定

Q3. AWS上のEC2インスタンスで動くアプリケーションに、事前共有の秘密値を一切配置せずにVaultへ認証させたいと考えています。インスタンス自身のアイデンティティを利用する認証メソッドはどれですか?

  1. A. AWS認証メソッド
  2. B. AppRole
  3. C. TLS証明書
  4. D. tokenメソッド
答えと解説を見る

正解:A

A(正解) 正解。インスタンスメタデータの署名やIAMの署名済みリクエストをVaultが検証するため、事前に秘密値を配置する必要がない

B 機械向けではあるが、SecretIDという秘密値をどうやってインスタンスに届けるかという問題が残る

C クライアント証明書と秘密鍵をインスタンスに配置する必要があり、「秘密値を配置しない」という要件に反する

D 既に発行済みのトークンを使うだけの仕組みで、そのトークン自体を安全に配布する問題は解決しない

認証メソッドの比較/選定

Q4. クライアントがいずれかの認証メソッドでログインに成功したとき、Vaultから返却されるものは何ですか?

  1. A. アンシールキーのシェアの1つ
  2. B. ポリシーが紐付いたトークン
  3. C. ポリシーを記述したHCLファイル
  4. D. バリアの暗号化ルートキー
答えと解説を見る

正解:B

A アンシールキーは初期化時に一度だけ配布される運用者向けの鍵素材で、ログインとは無関係

B(正解) 正解。認証はトークンの発行に集約され、以後のすべての操作はそのトークンと付随するポリシーで認可される

C ポリシーはサーバ側に保存され、クライアントへファイルとして返されることはない

D ルートキーはVault内部で管理される鍵で、クライアントに渡されることはない

AppRole/機械認証

Q5. AppRoleのSecretIDを、オーケストレーターからワークロードへ受け渡す方法として最も安全なのはどれですか?

  1. A. RoleIDと同じ設定ファイルに平文で書いて配布する
  2. B. レスポンスラッピングでラップトークンにしてから渡す
  3. C. 環境変数に平文で設定してコンテナに渡す
  4. D. SecretIDの値をポリシーのHCL内に記述しておく
答えと解説を見る

正解:B

A 2つを分離する設計の意味が失われ、設定ファイルが漏れただけで認証できてしまう

B(正解) 正解。受け取り側が一度だけunwrapでき、途中で開封されていれば検知できるため、配送経路の信頼性を下げられる

C プロセス一覧や管理APIから読める可能性があり、開封の検知もできない

D ポリシーは認可ルールの定義であり、秘密値を格納する場所ではない

認証メソッドの比較/選定

Q6. Kubernetesクラスター上のPodが、自身のServiceAccountトークンを提示してVaultへ認証します。この方式に対応する認証メソッドはどれですか?

  1. A. AppRole
  2. B. TLS証明書
  3. C. userpass
  4. D. Kubernetes認証メソッド
答えと解説を見る

正解:D

A Kubernetesでも使えるが、SecretIDの配布が別途必要でServiceAccountトークンを直接検証はしない

B クライアント証明書を検証する方式で、ServiceAccountトークンの検証は行わない

C Vault内のユーザー名とパスワードによる人間向けの認証で、Podのアイデンティティとは無関係

D(正解) 正解。PodのServiceAccountトークンをKubernetes APIで検証し、名前空間とServiceAccountに対応するロールのポリシーを付与する

認証メソッドの比較/選定

Q7. userpass認証メソッドを、既定のパスではなく `corp` というパスで有効化したいとき、正しいコマンドはどれですか?

  1. A. vault auth enable -path=corp userpass
  2. B. vault secrets enable -path=corp userpass
  3. C. vault write auth/corp/config type=userpass
  4. D. vault login -method=userpass -path=corp
答えと解説を見る

正解:A

A(正解) 正解。認証メソッドの有効化はauth enableで行い、-pathで任意のマウントパスを指定できる

B secrets enableはシークレットエンジン用のコマンドで、認証メソッドの有効化には使えない

C writeは既に有効化済みのメソッドを設定するためのもので、有効化そのものは行えない

D 有効化済みメソッドへログインするコマンドであり、マウントを作る操作ではない

認証メソッドの比較/選定

Q8. ある認証メソッドでログインしたクライアントに、どのようにして権限が与えられますか?

  1. A. Vaultサーバの設定ファイルにユーザーごとの権限を書いておく
  2. B. 認証メソッド側のロールやユーザー定義にポリシー名を紐付けておき、ログイン時に発行されるトークンへ付与される
  3. C. クライアントがログイン時に必要なポリシー名を自己申告する
  4. D. すべてのトークンにまずrootポリシーが付き、不要な権限を後から削る
答えと解説を見る

正解:B

A サーバ設定ファイルはリスナーやストレージなどの構成用で、利用者の権限定義は置かない

B(正解) 正解。認証(誰か)と認可(何ができるか)はトークンを介して結び付き、ポリシーは認証メソッドの設定側で割り当てる

C 自己申告で権限を選べれば権限昇格が自由にできてしまう。Vaultはサーバ側の定義に従う

D 既定で付くのはdefaultポリシーのみで、rootが自動付与されることはない

ポリシー

ポリシー構文/最小権限

Q9. KV v2が `secret/` にマウントされている環境で、`secret/data/app/` 配下の読み取りだけを許可するポリシーの記述として正しいものはどれですか?

  1. A. path "secret/data/app/*" { capabilities = ["read"] }
  2. B. path "secret/data/app/*" { permissions = ["read"] }
  3. C. policy "secret/data/app/*" { capabilities = ["read"] }
  4. D. path "secret/app/*" { capabilities = ["read"] }
答えと解説を見る

正解:A

A(正解) 正解。pathブロックにcapabilitiesの配列を書くのがVaultポリシーの基本構文

B架空 permissionsという属性はVaultのポリシー構文に存在しない。正しい属性名はcapabilities

C ブロック名はpathであり、policyではない

D KV v2の実際のAPIパスはsecret/data/配下になるため、このパスでは読み取りが許可されない

ポリシー構文/最小権限

Q10. あるトークンに2つのポリシーが付与されており、同じパスに対して片方がreadを許可、もう片方がdenyを指定しています。このリクエストの結果はどうなりますか?

  1. A. 許可が優先され、読み取りに成功する
  2. B. 後に付与されたポリシーが優先される
  3. C. denyが優先され、リクエストは拒否される
  4. D. 競合エラーとなりトークン自体が失効する
答えと解説を見る

正解:C

A Vaultは許可優先ではない。denyが混在した時点で拒否される

B ポリシーに適用順という概念はなく、付与順で結果は変わらない

C(正解) 正解。denyは他のどの許可よりも強く働くため、誤って広い権限を与えたときの安全弁として使える

D 競合は明確なルールで解決されるだけで、トークンが失効することはない

ポリシー構文/最小権限

Q11. defaultポリシーについての説明として正しいものはどれですか?

  1. A. 何も許可しない空のポリシーで、存在するだけで意味を持たない
  2. B. 明示的に除外しない限りすべてのトークンに付与され、自身のトークンのlookup-selfやrenew-self、revoke-selfなど基本操作を許可する
  3. C. 全パスへのフルアクセスを許可する
  4. D. root権限を持つ運用者にだけ付与される特別なポリシー
答えと解説を見る

正解:B

A 空ではなく、自分自身のトークンを扱うための最低限の権限が定義されている

B(正解) 正解。これがあるおかげで、どのトークンも自分の情報確認や更新、自主的な失効ができる

C それはrootポリシーの説明で、defaultとは別物

D 特別扱いどころか、既定ですべてのトークンに付く汎用のポリシー

ポリシー構文/最小権限

Q12. rootポリシーの性質として正しいものはどれですか?

  1. A. sys/配下を除くすべてのパスへのアクセスを許可する
  2. B. 内容を編集して権限を絞り込むことができる
  3. C. 不要になれば削除して無効化できる
  4. D. すべてのパスとすべての操作を許可し、編集も削除もできない
答えと解説を見る

正解:D

A 除外パスはなく、sys/配下も含めてすべてが許可される

B rootポリシーは変更できない。権限を絞りたい場合は別のポリシーを作って使う

C 削除もできない。運用上はrootトークンを失効させ、必要なときだけ再生成する運用が推奨される

D(正解) 正解。特権が強すぎるため、日常運用ではrootトークンを常用せず必要時のみ生成する

ポリシー構文/最小権限

Q13. 利用者から「シークレットの値は読めるのに、パス配下にどんなキーがあるか一覧できない」という問い合わせがありました。ポリシーに不足している可能性が高いcapabilityはどれですか?

  1. A. sudo
  2. B. list
  3. C. create
  4. D. update
答えと解説を見る

正解:B

A root保護された特権パスに必要なもので、通常のキー一覧とは関係がない

B(正解) 正解。キーの一覧取得はreadとは別のcapabilityとして扱われるため、listを明示的に許可する必要がある

C 新規作成のための権限で、一覧の可否には影響しない

D 既存データの更新のための権限で、読み取り系の一覧操作には使われない

ポリシー構文/最小権限

Q14. root保護されたsys/配下の一部エンドポイントを、rootトークンを使わずに操作させたい場合、通常のcapabilityに加えて必要となるものはどれですか?

  1. A. root
  2. B. execute
  3. C. sudo
  4. D. deny
答えと解説を見る

正解:C

A rootはポリシー名であってcapabilityではない。ポリシー内に書けるものではない

B架空 Vaultのポリシーにexecuteというcapabilityは存在しない

C(正解) 正解。root保護パスに対してはreadやupdateといった通常のcapabilityに加えてsudoを併記する必要がある

D アクセスを明示的に拒否するためのもので、特権を与える方向には働かない

ポリシー構文/最小権限

Q15. KV v2が `secret/` にマウントされています。アプリに `app/config` のシークレット本体の読み取りだけを許可する最小権限のポリシーで指定すべきパスはどれですか?

  1. A. secret/app/config
  2. B. secret/data/app/config
  3. C. secret/metadata/app/config
  4. D. secret/*
答えと解説を見る

正解:B

A CLIで見える表記に近いが、KV v2の実際のAPIパスではないためこのポリシーは効かない

B(正解) 正解。KV v2ではシークレット本体がdata/の下に置かれるため、ポリシーもこのパスで書く

C バージョン情報などのメタデータ用のパスで、ここを許可してもデータ本体は読めない

D マウント配下すべてに広がってしまい、最小権限の要件を満たさない

ポリシー構文/最小権限

Q16. ポリシーにまったく記載されていないパスへ、そのトークンがアクセスしようとするとどうなりますか?

  1. A. 拒否される。Vaultは明示的に許可されていない操作をすべて禁止する
  2. B. 読み取り操作だけは既定で許可される
  3. C. defaultポリシーの範囲で許可される
  4. D. 監査ログに警告を残したうえで許可される
答えと解説を見る

正解:A

A(正解) 正解。既定拒否(deny by default)なので、必要な権限だけを足していく設計になる

B 読み取りであっても明示的な許可がなければ拒否される

C defaultポリシーが許可するのは自トークンの管理など限られた操作だけで、任意のパスには及ばない

D 警告付きで通すという挙動はなく、単純に拒否される

トークンとリース

トークン種別/階層

Q17. 数千の短命なバッチジョブが一斉にVaultへログインするため、ログインのたびに発生するストレージ書き込みが負荷になっています。更新や子トークン作成が不要であるとき、適したトークン種別はどれですか?

  1. A. serviceトークン
  2. B. batchトークン
  3. C. periodicトークン
  4. D. orphanトークン
答えと解説を見る

正解:B

A 既定の種別で機能は豊富だが、1つ1つがストレージに永続化されるため大量発行時の負荷が問題になる

B(正解) 正解。暗号化された値としてクライアントに返され、ストレージに書かれない。その代わり更新も子トークン作成もできない軽量な種別

C 長期稼働プロセス向けに更新し続けられる性質を指すもので、ストレージ負荷を減らす仕組みではない

D 親を持たないという性質を指すだけで、永続化されるかどうかとは別の軸の話

トークン種別/階層

Q18. 常時稼働するデーモンプロセスに、最大TTLに到達したことによる強制失効で停止してほしくありません。定期的に更新を続けている限り使い続けられるトークンはどれですか?

  1. A. batchトークン
  2. B. use limitトークン
  3. C. periodicトークン
  4. D. orphanトークン
答えと解説を見る

正解:C

A そもそも更新ができないため、TTLが切れた時点で使えなくなる

B 指定回数使うと失効する種別で、長期稼働にはむしろ不向き

C(正解) 正解。通常の最大TTLの制約を受けず、period(周期)ごとに更新し続ける限り有効期限が延び続ける

D 親の失効の影響を受けないというだけで、最大TTLの制約は通常どおり適用される

トークン種別/階層

Q19. 運用者が一時的なrootトークンで作成した子トークンを、そのrootトークン失効後も動かし続けたいと考えています。適したトークンの性質はどれですか?

  1. A. orphan(親なし)トークンとして作成する
  2. B. transientトークンとして作成する
  3. C. TTLを長くしておけば親の失効の影響を受けない
  4. D. batchトークンとして作成する
答えと解説を見る

正解:A

A(正解) 正解。親を持たないため親トークンの失効に巻き込まれず、独立したライフサイクルを持つ

B架空 transientという名前のトークン種別はVaultに存在しない

C TTLの長さと親子関係は別問題で、親を失効させれば残TTLに関係なく子も失効する

D ストレージに永続化されない軽量な種別で、親子関係の解消を目的とした選択ではない

トークン種別/階層

Q20. ある親トークンを `vault token revoke` で失効させました。その結果として正しいものはどれですか?

  1. A. 親トークンだけが失効し、子トークンはTTL満了まで有効
  2. B. 子トークンは失効するが、それらが取得した動的シークレットのリースは残る
  3. C. 子トークンが1つでもあれば失効操作自体が失敗する
  4. D. 子孫のトークンと、それらに紐付くリースがすべて連鎖的に失効する
答えと解説を見る

正解:D

A 子は親のライフサイクルに従うため、TTLが残っていても一緒に失効する

B トークンに紐付くリースも同時に失効し、動的シークレットの実体も削除される

C 子の存在は失効を妨げない。むしろ連鎖的に処理される

D(正解) 正解。トークンは木構造を持ち、失効は下方向へ伝播するので、根を切れば配下がまとめて無効になる

リース/更新/失効

Q21. TTLと最大TTL(max TTL)の関係として正しいものはどれですか?

  1. A. 更新を繰り返せば最大TTLも一緒に延びていく
  2. B. 更新のたびにTTLは延長できるが、最大TTLを超えることはできず、到達すると必ず失効する
  3. C. 最大TTLは警告のための値で、超えても失効はしない
  4. D. 最大TTLはトークンにのみ適用され、シークレットのリースには適用されない
答えと解説を見る

正解:B

A 最大TTLは発行時点から測られる上限で、更新によって延びることはない

B(正解) 正解。最大TTLは無期限に生き続けるトークンやリースが生まれないようにする安全装置として働く

C 警告値ではなく強制的な上限で、到達すれば失効する

D 動的シークレットのリースにも同様に最大TTLが適用される

トークン種別/階層

Q22. ワンショットのスクリプトに渡すトークンを、1回使われたら自動的に無効になるようにしたい場合に指定するものはどれですか?

  1. A. num_uses(使用回数の上限)
  2. B. periodを1に設定する
  3. C. orphanフラグを立てる
  4. D. TTLを最短にする
答えと解説を見る

正解:A

A(正解) 正解。指定した回数だけ使えるトークンとなり、使い切った時点でTTLが残っていても自動的に失効する

B periodは更新周期を表す時間の設定で、使用回数の制限ではない

C 親子関係の設定であり、使用回数とは無関係

D 時間の制限にはなるが、その時間内であれば何回でも使えてしまう

リース/更新/失効

Q23. データベースシークレットエンジンから動的な資格情報を取得すると、レスポンスにリースIDが含まれます。このリースの役割として正しいものはどれですか?

  1. A. 同じ資格情報を再取得するためのキャッシュキー
  2. B. 監査ログ上で操作を追跡するためだけの識別子
  3. C. その資格情報の有効期間を管理する識別子で、TTL満了か明示的な失効でVaultがDB上の実体を削除する
  4. D. その資格情報を暗号化している鍵のバージョン番号
答えと解説を見る

正解:C

A リースは再取得のためのキーではなく、要求のたびに新しい資格情報とリースが作られる

B 追跡にも使えるが、本質はライフサイクル管理であり監査専用の値ではない

C(正解) 正解。動的シークレットは発行しっぱなしにならず、リースを通じて確実に後始末される

D 鍵バージョンはTransitなどの概念で、リースIDとは別物

リース/更新/失効

Q24. 長時間かかるデータ移行ジョブの途中で、取得済みの動的DB資格情報の期限が近づいてきました。有効期間を延ばすための操作はどれですか?

  1. A. vault lease renew <lease_id>
  2. B. vault token renew <token>
  3. C. vault write sys/leases/revoke lease_id=<lease_id>
  4. D. 同じパスにvault readを再実行する
答えと解説を見る

正解:A

A(正解) 正解。リースIDを指定して更新することで、最大TTLの範囲内で有効期間を延長できる

B トークン自体のTTLを更新するコマンドで、シークレットのリースは延長されない

C リースを失効させる操作で、延長したいという意図とは逆の結果になる

D 新しい資格情報と新しいリースが作られるだけで、使用中の資格情報の期限は延びない

シークレットエンジン

KVエンジン(v1/v2)

Q25. KVシークレットエンジンのバージョン1とバージョン2の主な違いはどれですか?

  1. A. v2は動的シークレットを発行できるが、v1はできない
  2. B. v2は暗号化して保存するが、v1は平文で保存する
  3. C. v2はシークレットのバージョン管理と、復元可能なソフトデリートに対応している
  4. D. v2はポリシーによるアクセス制御が不要になる
答えと解説を見る

正解:C

A KVはv1もv2も静的なシークレットの保管用で、動的シークレットは発行しない

B どちらもバリアで暗号化されて保存される。暗号化の有無は違いではない

C(正解) 正解。値を上書きしても過去バージョンが残り、削除してもundeleteで戻せる点がv1との大きな違い

D バージョンに関係なくポリシーによる認可は必要で、むしろv2ではdata/とmetadata/を意識した記述が要る

KVエンジン(v1/v2)

Q26. KV v2が `secret/` にマウントされた環境で `vault kv get secret/app` を実行したとき、実際に呼ばれるAPIのパスはどれですか?

  1. A. /v1/secret/app
  2. B. /v1/secret/data/app
  3. C. /v1/secret/metadata/app
  4. D. /v1/kv/secret/app
答えと解説を見る

正解:B

A これはKV v1のパス構造。v2ではdata/が挟まる

B(正解) 正解。kvサブコマンドがv2のパス構造を補ってくれるため、CLIの見た目とAPIパスがずれる。ポリシー記述時はこの実パスを使う

C バージョン一覧や削除状況などメタデータを取得するパスで、値そのものは返らない

D マウントパスはsecretのままであり、kvというセグメントが前に付くことはない

KVエンジン(v1/v2)

Q27. KV v2で `vault kv delete` を実行したシークレットについて、正しい説明はどれですか?

  1. A. 対象バージョンに削除マークが付くだけで、undeleteによって復元できる
  2. B. 対象バージョンのデータがストレージから即座に消去される
  3. C. 全バージョンとメタデータがまとめて削除される
  4. D. 書き込みだけが禁止され、読み取りは引き続き可能になる
答えと解説を見る

正解:A

A(正解) 正解。誤操作からの回復を考えた設計になっており、完全に消すには別途destroyが必要

B 即時消去されるのはdestroyを使った場合の挙動

C メタデータごと消すにはmetadata deleteを使う。deleteの対象は特定バージョンにとどまる

D 削除マークが付いたバージョンは読み取れなくなる。読み書きの片方だけを止める機能ではない

KVエンジン(v1/v2)

Q28. 複数のプロセスが同じKV v2のパスを更新する構成で、他プロセスの更新を知らずに上書きしてしまう事故を防ぎたい。使うべき仕組みはどれですか?

  1. A. 書き込み前にvault kv getで値を確認する
  2. B. ポリシーでupdateを1プロセスだけに許可する
  3. C. 書き込みのたびに新しいパスへ書く
  4. D. check-and-set(cas)で期待するバージョン番号を指定して書き込む
答えと解説を見る

正解:D

A 確認から書き込みまでの間に他プロセスが更新する余地が残るため、競合は防ぎきれない

B 運用としては単純化できるが、複数プロセスが更新するという前提そのものを崩してしまう

C 参照側がどのパスを見ればよいか分からなくなり、根本的な解決にならない

D(正解) 正解。現在のバージョンが期待値と一致するときだけ書き込みが成功するため、見落とした更新を上書きせずに済む

動的シークレット

Q29. データベースシークレットエンジンを設定し、開発者が `vault read database/creds/readonly` を実行しました。このとき何が起きますか?

  1. A. Vaultがそのタイミングでデータベース上に新しいユーザーを作成し、リース満了時に自動的に削除する
  2. B. あらかじめVaultに保存された共有アカウントの情報が返される
  3. C. データベースへの接続がVault経由でプロキシされる
  4. D. 既存ユーザーのパスワードがローテーションされて返される
答えと解説を見る

正解:A

A(正解) 正解。要求時に生成され期限が来れば消える短命な資格情報になるため、共有アカウントの問題を避けられる

B それは静的なシークレット保管の動作で、動的シークレットエンジンの振る舞いではない

C Vaultは資格情報を発行するだけで、DB通信の経路には入らない

D ルート資格情報のローテーションなど別機能の話で、creds/の読み取りでは新規ユーザーが作られる

動的シークレット

Q30. 静的な共有パスワードを配布する運用から動的シークレットへ移行する主な利点はどれですか?

  1. A. データベース側の認証設定が不要になる
  2. B. 資格情報をアプリ側でキャッシュする必要がなくなる
  3. C. 利用者ごとに固有かつ短命な資格情報が発行されるため、誰の資格情報かを追跡でき、漏洩時も対象だけを失効できる
  4. D. パスワードの強度をアプリ側で自由に決められる
答えと解説を見る

正解:C

A Vaultはデータベースのユーザー管理機能を使って資格情報を作るため、DB側の認証は引き続き必要

B むしろ有効期限があるためキャッシュと更新の考慮は増える。利点の本質ではない

C(正解) 正解。共有アカウントでは不可能だった追跡性と、影響範囲を限定した失効が実現できる

D 強度は主にVaultとDB側の設定に従うもので、移行の主目的でもない

動的シークレット

Q31. AWSシークレットエンジンを有効化したときに得られる典型的な機能はどれですか?

  1. A. S3バケットに保存されたシークレットをVault経由で読み出す
  2. B. 設定したロールに基づいて、要求のたびに短命なIAM資格情報を動的に発行する
  3. C. VaultのストレージバックエンドをAWS上に置く
  4. D. AWS KMSを使ってVaultを自動的にアンシールする
答えと解説を見る

正解:B

A 外部ストレージの中身を読むための機能ではない

B(正解) 正解。要求時に生成され、リース満了で自動的に無効化されるため、長期のアクセスキーを配布せずに済む

C それはストレージバックエンドの設定であり、シークレットエンジンの役割ではない

D それはAuto Unsealのためのsealスタンザの設定で、シークレットエンジンとは別の機能

Transit/EaaS

Q32. アプリケーションが自前で鍵を管理せずに、データの暗号化と復号をVaultに任せたいと考えています。暗号文そのものはアプリ側のデータベースに保存します。使うべきシークレットエンジンはどれですか?

  1. A. KV v2
  2. B. Cipherエンジン
  3. C. PKIエンジン
  4. D. Transitエンジン
答えと解説を見る

正解:D

A シークレットの保管が役目で、任意データを暗号化して返すAPIは提供しない

B架空 このような名前のシークレットエンジンはVaultに存在しない

C 証明書の発行と失効を担うもので、アプリのデータを暗号化するサービスではない

D(正解) 正解。暗号化/復号/署名/HMACをAPIとして提供するEaaSで、鍵はVaultが管理する一方、暗号化されたデータ自体はVaultに保存されない

CLI・UI・APIの操作

CLI/API/UI操作

Q33. `secret/app` に保存されたシークレットのうち、passwordフィールドの値だけをシェルスクリプトで受け取りたいときのコマンドはどれですか?

  1. A. vault kv get secret/app | grep password
  2. B. vault kv get -key=password secret/app
  3. C. vault kv get -field=password secret/app
  4. D. vault read -field=password secret/app
答えと解説を見る

正解:C

A 表形式の出力から抜き出す形になり、キー名や整形の変化に弱く値の切り出しも余計な処理が要る

B -keyというフラグは用意されていない。フィールド指定は -fieldを使う

C(正解) 正解。指定したフィールドの値だけが余計な装飾なしで出力されるため、そのまま変数に代入できる

D -field自体は正しいが、KV v2ではパスにdata/が必要になるためこのままでは目的のシークレットを読めない

CLI/API/UI操作

Q34. Vault CLIの出力を、jqなどのツールで機械的に処理できる形式にしたいときに指定するオプションはどれですか?

  1. A. -format=json
  2. B. -output=json
  3. C. -json
  4. D. -format=table
答えと解説を見る

正解:A

A(正解) 正解。ほとんどのコマンドで使えるグローバルオプションで、リースIDやメタデータも含めた構造化された出力が得られる

B そのようなオプション名ではない。書式指定は -format

C 単独のフラグとしては用意されておらず、-formatに値を渡す形が正しい

D 既定の人間向け表形式で、機械処理には向かない

CLI/API/UI操作

Q35. CLIを使わずHTTP APIから直接シークレットを取得します。KV v2が `secret/` にマウントされているとき、リクエストの形として正しいものはどれですか?

  1. A. Authorization: Bearerヘッダにトークンを入れ、GET /secret/appを呼ぶ
  2. B. X-Vault-Tokenヘッダにトークンを入れ、GET /v1/secret/appを呼ぶ
  3. C. クエリパラメータ ?token=...を付けてGET /v1/secret/data/appを呼ぶ
  4. D. X-Vault-Tokenヘッダにトークンを入れ、GET /v1/secret/data/appを呼ぶ
答えと解説を見る

正解:D

A トークンをAuthorization: Bearerで渡すこと自体はVaultも受け付けるが、APIパスに /v1/プレフィックスが無く、KV v2のdata/も含まれていないため取得できない

B ヘッダは正しいが、KV v2のデータ本体はdata/を含むパスにあるため、このパスでは取得できない

C トークンをURLに含めるとログ等に残る。Vaultはヘッダでトークンを受け取る設計になっている

D(正解) 正解。すべてのAPIは /v1/配下にあり、トークンはX-Vault-Tokenヘッダで渡す。KV v2ではパスにdata/が入る

CLI/API/UI操作

Q36. リモートのVaultサーバに対してCLIを実行したいのに、毎回ローカルホストへ接続しようとして失敗します。設定すべき環境変数はどれですか?

  1. A. VAULT_TOKEN
  2. B. VAULT_ADDR
  3. C. VAULT_NAMESPACE
  4. D. VAULT_FORMAT
答えと解説を見る

正解:B

A 認証トークンを渡すための変数で、接続先の指定には使われない

B(正解) 正解。CLIとAPIクライアントが接続するVaultサーバのURLを指定する変数で、未設定だと既定のローカルアドレスが使われる

C 名前空間を指定する変数で、接続先ホストとは無関係

D 出力形式の既定値を決める変数で、接続には影響しない

CLI/API/UI操作

Q37. `vault status` コマンドについて正しい説明はどれですか?

  1. A. シール状態やアンシールの進捗、HAでの役割などを表示し、ログインしていなくても実行できる
  2. B. 実行にはrootトークンが必要になる
  3. C. 有効化されているシークレットエンジンの一覧を表示する
  4. D. 現在のトークンのTTLとポリシーを表示する
答えと解説を見る

正解:A

A(正解) 正解。シール状態の確認は認証前でも必要になるため、トークンなしで参照できるようになっている

B 特権は不要で、トークンなしでも状態を確認できる

C それはvault secrets listの役割

D それはvault token lookupの役割で、statusはサーバ側の状態を示す

CLI/API/UI操作

Q38. KV v2が `secret/` にマウントされています。`secret/app/` の配下にどんなシークレットが保存されているかをCLIで一覧したいときのコマンドはどれですか?

  1. A. vault list secret/app
  2. B. vault kv list secret/app
  3. C. vault kv get secret/app
  4. D. vault kv metadata list secret/app
答えと解説を見る

正解:B

A vault listはAPIのパスをそのまま指定するコマンドで、KV v2ではmetadata/を含むパスを書かないと一覧できない

B(正解) 正解。kvサブコマンドがKV v2のパス構造(metadata/)を補ってくれるため、マウントからの見た目どおりのパスで一覧できる

C 指定したパスのシークレットの値を読み取るコマンドで、配下のキーを列挙する操作ではない

D metadataサブコマンドに用意されているのはgetやput、deleteなどで、listは存在しない

アーキテクチャと暗号化

シール/アンシール/ストレージ

Q39. Vaultサーバを起動した直後はシール(封印)された状態です。この状態でできることはどれですか?

  1. A. 読み取りはできるが書き込みはできない
  2. B. 状態の確認とアンシール操作のみで、シークレットの読み書きはできない
  3. C. rootトークンがあれば通常どおり操作できる
  4. D. 認証はできるが、シークレットエンジンへのアクセスだけができない
答えと解説を見る

正解:B

A シール中はデータの復号に必要な鍵が使えないため、読み取りもできない

B(正解) 正解。シールとはストレージを復号する鍵がメモリ上に無い状態を指し、ほぼすべての機能が停止する

C トークンの権限とは無関係で、アンシールしない限り誰も操作できない

D 認証もストレージの読み書きを伴うため実行できない

シール/アンシール/ストレージ

Q40. Vaultを初期化すると既定でShamirの秘密分散によるアンシールキーが生成されます。この方式の説明として正しいものはどれですか?

  1. A. 鍵を複数のシェアに分割して配布し、あらかじめ決めたしきい値の数だけ集まるとアンシールできる
  2. B. 生成されたシェアのうち任意の1つがあればアンシールできる
  3. C. すべてのシェアを集めないとアンシールできない
  4. D. シェアはVault自身が保存しており、必要なときに自動で取り出す
答えと解説を見る

正解:A

A(正解) 正解。1人の手元にある鍵だけではVaultを開けられないため、単独犯行や1枚の紛失に耐えられる

B 1つで足りるならシェアに分ける意味がない。しきい値の数だけ必要になる

C 全数ではなくしきい値(例えば5つのうち3つ)で足りる。1枚紛失しただけで復旧不能になるのを避けるため

D Vaultが自分で保存していれば封印の意味がない。シェアは運用者が分散して保管する

シール/アンシール/ストレージ

Q41. 再起動のたびに担当者が集まってキーシェアを入力する運用をやめたい。適した構成はどれですか?

  1. A. アンシールキーのしきい値を1に下げる
  2. B. アンシールキーをVaultサーバのディスクに保存しておく
  3. C. Auto Unsealを構成し、クラウドKMSやHSMにルートキーの復号を任せる
  4. D. Vaultをシールしない設定に変更する
答えと解説を見る

正解:C

A 手間は減るが1つの鍵でVaultを開けられてしまい、分散管理の安全性が失われる

B 鍵と暗号文が同じ場所に置かれ、封印の意味がなくなる最悪の運用

C(正解) 正解。起動時にVaultが外部の鍵管理サービスへ問い合わせて自動的にアンシールする。人手で扱う鍵はリカバリーキーに置き換わる

D そのような設定は存在しない。シールはVaultのセキュリティモデルの中核

シール/アンシール/ストレージ

Q42. ストレージバックエンドの運用をクラウド事業者やインフラチームに任せることになりました。保存されるデータについて正しい説明はどれですか?

  1. A. シークレットは平文で保存されるため、ストレージ側で暗号化を設定する必要がある
  2. B. シークレットの値だけが暗号化され、パス名やメタデータは平文で保存される
  3. C. ストレージ管理者はVaultのトークンがあれば中身を読める
  4. D. バリアによって暗号化された状態で書き込まれるため、ストレージを直接読んでも内容はわからない
答えと解説を見る

正解:D

A Vaultが自ら暗号化してから書き込むため、平文で保存されることはない

B バリアを通過するデータはまとめて暗号化されるため、値だけという区別はない

C ストレージを直接読む話とトークンによるAPI認可は別で、直接読んでも暗号文しか得られない

D(正解) 正解。この前提があるため、信頼できないストレージにもVaultのデータを置ける設計になっている

シール/アンシール/ストレージ

Q43. 外部のクラスタソフトウェアを別途運用せず、Vault自身のプロセスだけでデータ保存と高可用性を実現したい。選ぶべきストレージバックエンドはどれですか?

  1. A. Consul
  2. B. Integrated Storage(Raft)
  3. C. Vault Native Store(VNS)
  4. D. ファイルストレージ
答えと解説を見る

正解:B

A 実在するHA対応のバックエンドだが、別のクラスタを構築・運用する必要があり「外部の運用を増やさない」という要件に合わない

B(正解) 正解。Vaultノード自身がRaftでデータを複製するため、外部依存なしにデータ保存とHAを同時に満たせる

C架空 このような名前のストレージバックエンドは存在しない

D 単一ノードの開発・検証向けでHAに対応しておらず、本番の可用性要件を満たせない

HA/監査ログ

Q44. 監査デバイスを1つだけ有効にしている本番Vaultで、そのデバイスの書き込み先が一杯になりました。何が起きますか?

  1. A. 監査ログの記録だけがスキップされ、リクエストは通常どおり処理される
  2. B. Vaultが自動的にシールして保護状態に入る
  3. C. 有効な監査デバイスすべてへの記録に失敗するため、リクエストが失敗するようになる
  4. D. 古い監査ログが自動的に削除されて空きが作られる
答えと解説を見る

正解:C

A 監査を欠いたまま処理を続けることはVaultの設計上許容されない

B シールはされない。リクエストが通らなくなるだけで、書き込み先を復旧すれば処理は再開する

C(正解) 正解。監査ログを残せない操作は実行しないという方針のため、監査デバイスは冗長に構成しておくのが定石

D ログのローテーションや削除はVaultではなく外部の仕組みで管理する

HA/監査ログ

Q45. 監査ログに記録される内容について正しい説明はどれですか?

  1. A. リクエストとレスポンスがJSONで記録されるが、機密性の高い値はハッシュ化されて平文では残らない
  2. B. シークレットの値も含めてすべて平文で記録される
  3. C. 失敗したリクエストのみが記録される
  4. D. 認証イベントのみが記録され、シークレットの読み取りは記録されない
答えと解説を見る

正解:A

A(正解) 正解。誰が何を要求したかを追跡しつつ、ログの流出がシークレットの流出にならないよう配慮されている

B 平文で残るとログ自体が攻撃対象になる。実際にはハッシュ化される

C 成功したリクエストも記録される。むしろ成功した操作の追跡こそが監査の目的

D シークレットへのアクセスも記録対象で、記録範囲は認証に限られない

HA/監査ログ

Q46. 3ノードでHA構成を組んだVaultクラスターの動作として正しいものはどれですか?

  1. A. 3ノードすべてが同時にリクエストを処理し、負荷を分散する
  2. B. スタンバイノードは読み取りリクエストのみ自分で処理する
  3. C. アクティブノードが停止するとクラスター全体が停止し、手動での再構成が必要になる
  4. D. 1ノードだけがアクティブとなり、スタンバイは受け取ったリクエストをアクティブへ転送するかリダイレクトする
答えと解説を見る

正解:D

A 書き込みの一貫性を保つため、同時に処理するアクティブノードは1つに限られる

B 標準構成のスタンバイは読み取りも自分では処理せず、アクティブノードに任せる

C スタンバイの1つが自動的にアクティブへ昇格するため、手動再構成は不要

D(正解) 正解。アクティブ/スタンバイ方式で、アクティブが落ちればスタンバイが昇格して処理を引き継ぐ

Vault Agent/統合

Q47. レスポンスラッピングの仕組みとして正しい説明はどれですか?

  1. A. レスポンス全体を受信者の公開鍵で暗号化して返す
  2. B. レスポンスを一時的なcubbyholeに格納し、一度だけunwrapできるトークンを返す
  3. C. レスポンスを圧縮して転送量を減らす
  4. D. 同じラップトークンを複数の受信者が繰り返しunwrapできる
答えと解説を見る

正解:B

A 公開鍵暗号による封筒化ではない。実体は一時的な保管領域と引き換えトークンの組み合わせ

B(正解) 正解。受け渡し経路にはラップトークンしか流れず、途中で開封されていれば受信者側のunwrap失敗として検知できる

C 転送効率のための機能ではなく、秘密の受け渡しを安全にするための仕組み

D unwrapは一度きり。2回目が成功しないからこそ、開封済みかどうかを判断できる

Vault Agent/統合

Q48. Vault Agentのauto-auth機能の役割はどれですか?

  1. A. 設定した認証メソッドで自動的にログインしてトークンを取得・更新し、指定したsinkへ書き出してアプリに供給する
  2. B. Vaultサーバを自動的にアンシールする
  3. C. 認証メソッドを自動的に有効化する
  4. D. ポリシーをアプリの要求に応じて自動生成する
答えと解説を見る

正解:A

A(正解) 正解。アプリからVaultの認証やトークン更新のロジックを取り除けることがAgentを使う大きな理由になる

B アンシールはAuto Unsealの担当で、Agentの機能ではない

C 認証メソッドの有効化は運用者がサーバ側で行う作業

D ポリシーは人が設計して登録するもので、自動生成する機能はない

Vault Agent/統合

Q49. Vaultに対応していない既存アプリケーションが、設定ファイルからDBパスワードを読み込みます。アプリを改修せずにVaultのシークレットを使わせたいときに適した機能はどれですか?

  1. A. Transitエンジンで設定ファイルを暗号化する
  2. B. レスポンスラッピングで設定ファイルを配布する
  3. C. Vault Agentのテンプレート機能で、シークレットを設定ファイルとしてレンダリングする
  4. D. KV v2のバージョニング機能を有効にする
答えと解説を見る

正解:C

A 暗号化しても、アプリが自力で復号できなければ設定ファイルを読み込めない

B 受け渡しの安全性は高まるが、unwrapする処理をアプリ側に実装する必要があり無改修にはならない

C(正解) 正解。Agentがシークレットを取得してファイルに書き出し、更新時には再描画するため、アプリは通常のファイルを読むだけで済む

D シークレットの履歴管理の機能で、アプリへの受け渡し方法の問題は解決しない

シール/アンシール/ストレージ

Q50. 鍵の管理操作について、rekeyとrotateの違いとして正しいものはどれですか?

  1. A. rekeyはデータの再暗号化を行い、rotateはアンシールキーを作り直す
  2. B. rekeyはアンシールキーのシェアとしきい値を作り直し、rotateはバリアの暗号鍵に新しいバージョンを追加する
  3. C. どちらも同じ操作で、CLIとAPIで呼び名が違うだけ
  4. D. rekeyもrotateも、実行すると既存データがすべて再暗号化される
答えと解説を見る

正解:B

A 説明が逆になっている。rekeyが扱うのはアンシールキーの側

B(正解) 正解。担当者の異動でシェアを配り直すのがrekey、以後の書き込みを新しい鍵で暗号化するのがrotate

C 対象が異なる別の操作で、必要になる場面も違う

D rotate後も既存データは以前の鍵バージョンのまま復号でき、全件の再暗号化は行われない

続きは演習アプリで

このページの50問は、演習アプリなら弱点に合わせた出題・成績記録つきで解けます。全210問と本番形式の模擬試験は期間パス(1,500円/30日、自動更新なし)で利用できます。

Vaultの演習を無料で始める →

Vault問題集の詳細(出題範囲・よくある質問)→

掲載している問題はすべてトキヌクのオリジナル問題です。実試験問題の流出コピー(ブレインダンプ)は一切使用していません。本サービスは非公式の学習教材であり、各認定団体とは提携・承認・後援関係にありません。試験名は各団体の商標または登録商標です。
トキヌク トップページへ