> ## Documentation Index
> Fetch the complete documentation index at: https://notes.kodekloud.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Vault Components

> This article explains the four key components of HashiCorp Vault  Storage Backends, Secrets Engines, Auth Methods, and Audit Devices for secure deployment and management.

Understand the four pillars that power HashiCorp Vault: Storage Backends, Secrets Engines, Auth Methods, and Audit Devices. Mastering these will enable you to deploy and manage Vault securely and at scale.

***

## Storage Backends

Vault stores all its data—keys, secrets, configuration—in a single, pluggable Storage Backend. This includes:

* **Encryption in Transit**: TLS secures data as it moves.
* **Encryption at Rest**: AES-256 encrypts data on disk.

<Callout icon="lightbulb" color="#1CB2FE">
  A Vault cluster can be configured with exactly one storage backend. For high availability or geo-replication, run multiple clusters with distinct backends.
</Callout>

| Backend   | High Availability | Key Features                             |
| --------- | ----------------- | ---------------------------------------- |
| Consul    | Yes               | Native snapshots, leader election        |
| DynamoDB  | Yes               | Point-in-time recovery, horizontal scale |
| File / S3 | Depends           | Simple setup, manual backup required     |

The chosen backend is declared in `vault.hcl` under the `storage` stanza. Each backend type has its own set of configuration parameters.

<Frame>
  ![The image is a slide titled "Storage Backends," explaining the configuration and encryption of Vault data storage, highlighting differences in backend capabilities, and noting that only one storage backend is used per Vault cluster.](https://kodekloud.com/kk-media/image/upload/v1752878231/notes-assets/images/HashiCorp-Certified-Vault-Associate-Certification-Vault-Components/storage-backends-vault-configuration-encryption.jpg)
</Frame>

***

## Secrets Engines

Secrets Engines are responsible for managing or generating secrets. You mount them at specific paths and interact via API, CLI, or integrations.

| Engine Type    | Use Case                                           |
| -------------- | -------------------------------------------------- |
| KV (Key/Value) | Store and retrieve static secrets                  |
| Database       | Generate dynamic database credentials              |
| AWS / GCP      | Provision cloud IAM credentials dynamically        |
| Transit        | Perform cryptographic operations (encrypt/decrypt) |

<Callout icon="lightbulb" color="#1CB2FE">
  Secrets Engines are isolated by mount path. You can enable multiple instances of the same engine under different paths for segmentation.
</Callout>

Enable an engine with:

```shell theme={null}
vault secrets enable <engine_type>
```

Then configure it via its API endpoints.

<Frame>
  ![The image is a slide titled "Secrets Engines," explaining their role in managing secrets, storing, generating, and encrypting data, and their ability to connect to services for dynamic credentials. It also mentions enabling multiple engines and interactions through a "path."](https://kodekloud.com/kk-media/image/upload/v1752878233/notes-assets/images/HashiCorp-Certified-Vault-Associate-Certification-Vault-Components/secrets-engines-managing-storing-data.jpg)
</Frame>

***

## Auth Methods

Auth Methods connect external identity systems to Vault, authenticate clients, and issue tokens scoped by policies.

| Category        | Examples                       |
| --------------- | ------------------------------ |
| Human-centric   | LDAP, OIDC, Username/Password  |
| Machine-centric | AppRole, Kubernetes, TLS Certs |

Vault ships with the **token** auth method by default, providing the initial root token for setup.

<Callout icon="lightbulb" color="#1CB2FE">
  The root token from initialization should be used sparingly. Rotate or revoke it after enabling safer auth methods.
</Callout>

Enable a new auth method with:

```shell theme={null}
vault auth enable <method_name>
```

Then configure it using its dedicated API paths.

<Frame>
  ![The image is a slide titled "Auth Methods," explaining Vault's authentication components, identity management, and token issuance. It highlights the differentiation between human and system methods, the goal of obtaining a token, and the default authentication method for new deployments.](https://kodekloud.com/kk-media/image/upload/v1752878235/notes-assets/images/HashiCorp-Certified-Vault-Associate-Certification-Vault-Components/auth-methods-vault-authentication-slide.jpg)
</Frame>

***

## Audit Devices

Audit Devices capture every Vault request and response in JSON format. They ensure full accountability and tamper-proof logging by hashing sensitive fields.

* **Mandatory Logging**: Requests only succeed once written to at least one audit device.
* **Multiple Devices**: Enable file, syslog, socket, or other endpoints simultaneously.
* **JSON Output**: Simplifies integration with SIEM and log analysis tools.

<Callout icon="triangle-alert" color="#FF6B6B">
  If an audit device becomes unavailable (disk full, network failure), Vault will block operations to maintain audit integrity.
</Callout>

Configure an audit device with:

```shell theme={null}
vault audit enable <device_type>
```

Then adjust its settings via the audit API.

<Frame>
  ![The image is a slide titled "Audit Devices," detailing features such as logging requests and responses, using JSON formatting, hashing sensitive information, enabling multiple audit devices, and prioritizing safety over availability.](https://kodekloud.com/kk-media/image/upload/v1752878236/notes-assets/images/HashiCorp-Certified-Vault-Associate-Certification-Vault-Components/audit-devices-logging-json-hashing.jpg)
</Frame>

***

* [Vault Storage Backends](https://www.vaultproject.io/docs/configuration/storage)
* [Vault Secrets Engines](https://www.vaultproject.io/docs/secrets)
* [Vault Authentication Methods](https://www.vaultproject.io/docs/auth)
* [Vault Audit Devices](https://www.vaultproject.io/docs/audit)

<CardGroup>
  <Card title="Watch Video" icon="video" cta="Learn more" href="https://learn.kodekloud.com/user/courses/hashicorp-certified-vault-associate-certification/module/f544757d-0901-47a3-a0e6-d9ab7822ef7a/lesson/0784516b-1e4e-4c80-942e-b762ea3dd7a2" />
</CardGroup>
