What is Terraform's approach to secret management with Vault?
Answer
HashiCorp Vault integrates tightly with Terraform for secret management. Vault Provider: Terraform can read secrets from Vault: data "vault_generic_secret" "db_creds" { path = "secret/database/prod" }. Use the secret: resource "aws_db_instance" "main" { password = data.vault_generic_secret.db_creds.data["password"] }. Dynamic credentials: Vault's AWS secrets engine generates short-lived AWS credentials — Terraform can use these instead of long-lived IAM keys. Vault as Terraform Cloud backend: store Terraform state in Vault's storage backend. Security concerns: Vault secrets read by Terraform are stored in state — encrypt state and restrict access. Vault Agent: run Vault Agent as a sidecar to inject secrets into environment variables before Terraform runs, avoiding the secret ever appearing in state. This pattern is common in Kubernetes-based Terraform execution where Vault is the company-wide secrets manager.
Previous
How do you implement a CI/CD pipeline for Terraform?
Next
What are common Terraform anti-patterns and pitfalls?
More Terraform / IaC Questions
View all →- Advanced What is Terraform's provider development and custom providers?
- Advanced What is Policy as Code with Sentinel in Terraform?
- Advanced How does Terraform handle dependencies between resources?
- Advanced What is the Terraform CDK (CDKTF)?
- Advanced What are advanced Terraform state management operations?