Skip to content

003 · Domain 5: Secrets engines · 20% of the exam

Task 5.4: Describe the purpose of secrets engines

Components that store, generate or encrypt data, enabled at a path, isolated from each other, tuned per mount, and removed with everything they hold.

Study it

  • What secrets engines are: mounts, paths, isolation and tuning

    Lesson coming

Sample questions

Try each one before opening the answer. Every option is explained, with the HashiCorp documentation page that proves it.

Question 1 · choose 1

Two teams' KV engines are enabled at kv-a/ and kv-b/. A reviewer asks whether a faulty or malicious engine at kv-a/ could read kv-b/'s data directly from Vault's storage. What is the answer?

  1. AYes, unless the two mounts use different storage backends
  2. BNo, but only because the teams' policies deny access to each other's paths
  3. CYes, because two mounts of the same engine type share one data root
  4. DNo, because each engine sees storage only through a barrier view rooted at its own random UUID
Show the answer and why
  • AYes, unless the two mounts use different storage backends

    Incorrect

    All mounts share one storage backend; isolation comes from the barrier view, not from separate backends.

  • BNo, but only because the teams' policies deny access to each other's paths

    Incorrect

    Policies govern clients; the barrier view isolates engines even from each other.

  • CYes, because two mounts of the same engine type share one data root

    Incorrect

    Each mount gets its own data root, even for the same type.

  • DNo, because each engine sees storage only through a barrier view rooted at its own random UUID

    Correct

    Every mount writes under its own UUID prefix, and the storage layer allows no relative access, so an engine cannot reach other data.

Secrets engines are enabled at paths and isolated to them; the barrier view works like a chroot for each mount.

Question 2 · choose 1

A request arrives for aws/creds/deploy. How does Vault decide which secrets engine handles it?

  1. ABy path: the engine mounted at aws/ gets it
  2. BBy the request's Content-Type header
  3. CBy the token's policy, which names the engine type
  4. DBy the first engine of type aws that was enabled
Show the answer and why
  • ABy path: the engine mounted at aws/ gets it

    Correct

    Engines are enabled at a path, and the router sends anything with that prefix to the engine.

  • BBy the request's Content-Type header

    Incorrect

    Routing uses the path, not headers.

  • CBy the token's policy, which names the engine type

    Incorrect

    Policies authorize paths; they do not route requests.

  • DBy the first engine of type aws that was enabled

    Incorrect

    Several engines of a type can be mounted; the path decides.

Vault behaves like a virtual filesystem: each mount path belongs to one engine.

Question 3 · choose 1

An operator enables a KV engine at KV/ although one already exists at kv/. What results?

  1. AAn error, since KV/ conflicts with kv/
  2. BTwo separate engines, as mount paths are case-sensitive
  3. COne engine reachable at both paths
  4. DThe new mount replaces the data of the existing kv/ engine
Show the answer and why
  • AAn error, since KV/ conflicts with kv/

    Incorrect

    Paths differ only in case, which Vault treats as different.

  • BTwo separate engines, as mount paths are case-sensitive

    Correct

    kv/ and KV/ are treated as two distinct instances.

  • COne engine reachable at both paths

    Incorrect

    They are independent instances with separate data.

  • DThe new mount replaces the data of the existing kv/ engine

    Incorrect

    Enabling a mount never replaces another.

Keep mount names consistent in case; a typo creates a second engine.

Question 4 · choose 1

Engines are enabled at team/a/ and team/b/. An operator now tries to enable another at team/. What happens?

  1. AIt succeeds and becomes the parent of the two mounts
  2. BIt succeeds, and team/ answers every path the other two do not
  3. CIt succeeds after the other two are moved under it
  4. DIt fails; a mount cannot be a prefix of an existing one
Show the answer and why
  • AIt succeeds and becomes the parent of the two mounts

    Incorrect

    Mounts do not nest.

  • BIt succeeds, and team/ answers every path the other two do not

    Incorrect

    A mount named as a prefix of another is refused.

  • CIt succeeds after the other two are moved under it

    Incorrect

    Moving does not create nested mounts either.

  • DIt fails; a mount cannot be a prefix of an existing one

    Correct

    Mount points cannot conflict; foo and foo/baz cannot coexist, while foo/bar and foo/baz can.

Plan mount paths so none is a prefix of another; sibling paths are fine.

Question 5 · choose 1

A developer has just been given access to an unfamiliar engine enabled at pki-int/ and wants to know which paths it responds to. Which command helps?

  1. Avault secrets list pki-int/
  2. Bvault read sys/mounts/pki-int/paths
  3. Cvault path-help pki-int/
  4. Dvault policy read pki-int
Show the answer and why
  • Avault secrets list pki-int/

    Incorrect

    secrets list shows enabled mounts, not an engine's own paths.

  • Bvault read sys/mounts/pki-int/paths

    Incorrect

    No such endpoint lists an engine's paths.

  • Cvault path-help pki-int/

    Correct

    path-help shows the help text and paths of an endpoint.

  • Dvault policy read pki-int

    Incorrect

    Policies do not describe an engine's API.

Each engine defines its own paths; path-help discovers them from the CLI.

Practice domain 5 →Practice all domains →