The HashiCorp Certified: Terraform Associate (TA-004) is HashiCorp's foundational infrastructure-as-code certification and one of the most widely-held cloud certs globally — second only to AWS Cloud Practitioner in cross-platform popularity. TA-004 replaced the long-running 003 exam in mid-2024 and aligns to Terraform 1.6+, including OpenTofu-relevant context.
This guide covers every exam objective, gives a structured 6-week study plan, and flags the topics where most candidates lose points.
Exam At a Glance
| Attribute | Value |
|---|---|
| Exam code | TA-004 |
| Cost (USD) | $70.50 |
| Format | Multiple choice + multiple-response + text-match + true/false |
| Number of questions | 57 |
| Duration | 60 minutes |
| Delivery | Online-proctored |
| Validity | 2 years |
| Recommended experience | 6 months hands-on with Terraform |
TA-004 is one of the cheapest legitimate enterprise-recognised certs in the industry, which is part of why it has accumulated over half a million holders.
The Nine Objective Domains
| Objective | Theme |
|---|---|
| 1 | Understand IaC concepts |
| 2 | Understand the purpose of Terraform (vs other IaC) |
| 3 | Understand Terraform basics |
| 4 | Use Terraform outside core workflow |
| 5 | Interact with Terraform modules |
| 6 | Use the core Terraform workflow |
| 7 | Implement and maintain state |
| 8 | Read, generate, and modify configuration |
| 9 | Understand HCP Terraform capabilities |
What's New in TA-004 vs TA-003
- HCP Terraform branding (formerly Terraform Cloud) throughout objective 9
- New imports block (declarative imports replacing
terraform import) - Check blocks for continuous validation
- Expanded coverage of moved blocks and refactoring without state surgery
- Emphasis on workspaces in HCP Terraform vs local CLI workspaces — know the distinction
- References to BSL licensing — but the exam itself does not test OpenTofu specifically
Objective-by-Objective Breakdown
Objective 1 — IaC Concepts
- Why IaC: repeatability, version control, drift visibility, reduced manual error
- Declarative vs imperative
- Idempotency
Objective 2 — Terraform Purpose
- Multi-cloud and provider-agnostic positioning
- State as the source of truth for what Terraform manages
- Drift detection via plan
Objective 3 — Terraform Basics
- Providers, provider versioning, required_providers block
- The Terraform Registry (modules and providers)
- Provider plugin install & lock file (
.terraform.lock.hcl)
Objective 4 — Outside Core Workflow
terraform importcommand and the newimportblockterraform statesubcommands:list,show,mv,rm,pull,push- Tainting and the
-replaceoption - Workspaces (CLI workspaces, not HCP)
Objective 5 — Modules
- Local vs remote sources; private registry
- Module inputs (
variable), outputs (output), and versioning - Module composition; root module concept
Objective 6 — Core Workflow
terraform init— providers, modules, backend initterraform validatevsterraform fmtterraform planwith-outand applying saved plan filesterraform applywith auto-approve, targeting, and parallelismterraform destroy
Objective 7 — State
This is the most-failed domain. Make sure you can answer:
- Local vs remote state backends (S3, Azure Storage, GCS, HCP Terraform)
- State locking and which backends support it (S3 + DynamoDB, Azure with native locking, GCS with native locking)
- Sensitive data in state (it's plaintext — encrypt at rest)
- State file structure (resources, dependencies, outputs)
- The
movedblock for refactoring without breaking state - Migrating between backends
Objective 8 — Configuration
- Variables (variable types, default, validation, sensitive)
- Locals and outputs
- Data sources
- Built-in functions (
file,jsonencode,lookup,for,format) - Dynamic blocks and for_each
- Provisioners and why they're a last resort (
local-exec,remote-exec)
Objective 9 — HCP Terraform
- Workspaces and VCS integration
- Remote runs vs agent-based runs
- Variable sets
- Sentinel and OPA policies
- Cost estimation
- Private module registry within HCP
6-Week Study Plan
| Week | Topic | Lab |
|---|---|---|
| 1 | IaC concepts, install Terraform, providers | Provision a single AWS S3 bucket from scratch |
| 2 | Variables, outputs, data sources, functions | Build a parameterised VPC module |
| 3 | State management deep dive | Migrate local → S3 backend, run terraform state ops |
| 4 | Modules: build, publish, version | Publish a module to a private registry or Git |
| 5 | HCP Terraform tour | Connect a Git repo, run remote plan, apply policy |
| 6 | Practice exams, weak-area review | 3 timed full-length attempts |
Commands You Should Know Cold
| Command | What it does |
|---|---|
terraform init | Download providers/modules, init backend |
terraform plan -out=tfplan | Generate and save a deterministic plan |
terraform apply tfplan | Apply a saved plan exactly |
terraform fmt -recursive | Format all .tf files |
terraform validate | Static syntax + type validation |
terraform state mv | Rename a resource in state without destroying it |
terraform state rm | Forget a resource (does not destroy) |
terraform apply -replace=ADDR | Force replacement of one resource |
terraform output -raw NAME | Unquoted output value (for piping) |
terraform workspace new/select | CLI workspace management |
Common Pitfalls
- Confusing CLI workspaces (one state file per workspace, same config) with HCP Terraform workspaces (a complete logical environment with its own VCS link)
- Believing state files are encrypted by default — they aren't; the S3 backend uses server-side encryption only if you enable it
- Forgetting that
terraform destroydestroys everything in state, not just one resource — always use-targetor-replacefor scoped operations - Assuming provisioners are first-class — they are explicitly a last-resort; use cloud-init or configuration management instead
- Missing that
terraform import(CLI) writes nothing to your config — you must hand-write or use the newimportblock
Free Practice Resources
- HashiCorp Learn (developer.hashicorp.com/terraform/tutorials) — official, free, full coverage
- HashiCorp Terraform Associate official study guide PDF
- Bryan Krausen's TA-004 practice questions (paid, but the gold standard)
- CertQnA Terraform practice questions — free, exam-style
- Hands-on labs: Cloud Skill Boost, KodeKloud Terraform Playground (free tier)
Test-Day Tips
- 60 minutes for 57 questions is tight; aim for ~50 seconds per question
- Flag and skip any HCL snippet that needs careful reading; revisit at the end
- Multiple-response questions ALWAYS tell you how many to pick — count carefully
- "Text match" questions are exact — watch for trailing whitespace and case (use the exact command output, e.g.,
terraform init)
TA-004 remains the most accessible and arguably the most useful single IaC certification in 2026. At $70.50 it has the best price-to-credibility ratio in the cloud cert market, and the skills it validates transfer directly to OpenTofu as the ecosystem bifurcates.