--- layout: docs page_title: Vault Integration description: >- Integrate Vault with Nomad to use tokens, password, certificates, API keys, and secrets stored in Vault. Configure Nomad to use Vault access control lists (ACLs) to secure your cluster. Learn how to configure Nomad agents and use Consul Template in your job specification. --- # Vault Integration Many workloads require access to tokens, passwords, certificates, API keys, and other secrets. To enable secure, auditable and easy access to your secrets, Nomad integrates with HashiCorp's [Vault][]. Nomad servers and clients coordinate with Vault to derive a Vault token that has access to only the Vault policies the tasks needs. Nomad clients make the token available to the task and handle the tokens renewal. ## Configuration In order to use Vault with Nomad, you will need to configure and install Vault separately from Nomad. Nomad does not run Vault for you. ## Agent configuration To enable Vault integration, Nomad agents must be configured with [`vault`][] blocks. Each block can be enabled or disabled and configures how Nomad connects to the Vault cluster. ## Dynamic configuration with secrets Nomad's job specification includes a [`template`][] block that uses a tool called [Consul Template][]. When used with Vault, this mechanism creates a convenient way to ship configuration files that are populated from Vault secrets. For more information on Nomad's template block please see the [`template` job specification documentation][]. ## Vault access control list (ACL) The Vault ACL system protects the cluster from unauthorized access. When enabled, both Vault and Nomad must be properly configured in order for their integrations to work. Refer to the [Vault ACL integration page][int_vault_acl] for more information. ## Multiple vault clusters Nomad Enterprise supports access to multiple Vault clusters. They can be configured using multiple [`vault`][] blocks with different `name` values. If a `name` is not provided, the cluster configuration is called `default`. Jobs that need access to Vault may specify which Vault cluster to use with the [`vault.cluster`][] parameter. ## Compatibility All currently supported versions of Nomad are compatible with recent versions of Vault. | | Vault 1.18.0+ | Vault 1.19.0+ | Vault 1.20.0+ | |---------------|---------------|---------------|---------------| | Nomad 1.10.0+ | ✅ | ✅ | ✅ | | Nomad 1.9.0+ | ✅ | ✅ | ✅ | | Nomad 1.8.0+ | ✅ | ✅ | ✅ | [Consul Template]: https://github.com/hashicorp/consul-template [Vault]: https://www.vaultproject.io/ 'Vault by HashiCorp' [`template` job specification documentation]: /nomad/docs/job-specification/template#vault-integration [`template`]: /nomad/docs/job-specification/template [`vault.cluster`]: /nomad/docs/job-specification/vault#cluster [`vault`]: /nomad/docs/configuration/vault 'Nomad Vault Configuration Block' [int_vault_acl]: /nomad/docs/secure/vault/acl