DevOpsMarch 16, 202614 min read

Free Terraform Associate Practice Exam 2026 — The Questions That Tripped Me Up

12 free practice questions covering HCL, state management, modules, and the Terraform workflow. No fluff.

HashiCorp Terraform Associate 003 free practice exam 2026

I use Terraform every day at work. Write modules, manage state, review PRs — the whole thing. So I figured the Terraform Associate exam would be a breeze.

It wasn't.

Not because it's insanely hard, but because it tests things I take for granted. Stuff like: what exactly does terraform init do under the hood? Or: what happens to state when you rename a resource? I know the answers from experience, but explaining them in a multiple-choice format is a different game.

Here are the types of questions that tripped me up. See if they catch you too.

Terraform Associate 003 — What You Need to Know

DetailInfo
Exam CodeHashiCorp Terraform Associate 003
Questions57 questions
Duration60 minutes
Passing Score~70% (HashiCorp doesn't publish exact cutoff)
Cost$70.50 USD
FormatMultiple choice, multi-select, fill-in-blank
Validity2 years

At $70.50, it's one of the cheapest cloud/DevOps certifications out there. And with 57 questions in 60 minutes, you have about a minute per question — tight but manageable if you know your stuff.

Practice Questions: IaC Concepts & Terraform Basics

Question 1

What is the primary benefit of Infrastructure as Code (IaC) compared to manual infrastructure provisioning?

A. It's always faster than manual provisioning
B. It eliminates all infrastructure bugs
C. Infrastructure can be versioned, reviewed, and reproduced consistently
D. It reduces the need for cloud provider accounts

IaC's core value is consistency and reproducibility. Code can be version-controlled (Git), peer-reviewed, tested, and reused. It's not always faster (first-time setup can be slower), doesn't eliminate bugs, and you still need cloud accounts.

Question 2

Which command initializes a Terraform working directory by downloading providers and setting up the backend?

A. terraform plan
B. terraform init
C. terraform apply
D. terraform validate

terraform init is always the first command you run. It downloads provider plugins, initializes the backend (where state is stored), and downloads modules. You must run it before plan or apply. Validate checks syntax but doesn't download anything.

Practice Questions: State Management

State is where most people get tripped up. And honestly, state management is where Terraform gets interesting — and dangerous.

Question 3

What happens if you rename a resource block in your Terraform configuration without using terraform state mv?

A. Terraform automatically detects the rename and updates state
B. Terraform ignores the change until the next apply
C. Terraform throws a syntax error
D. Terraform plans to destroy the old resource and create a new one

This is a classic gotcha. Terraform tracks resources by their address in state (e.g., aws_instance.web). If you rename it to aws_instance.server, Terraform sees "web" as deleted and "server" as new — so it plans to destroy and recreate. Use terraform state mv or the moved block (Terraform 1.1+) to avoid downtime.

Question 4

Which backend is the DEFAULT when no backend is configured in Terraform?

A. Local (terraform.tfstate file on disk)
B. HCP Terraform (formerly Terraform Cloud)
C. Amazon S3
D. Consul

When no backend is configured, Terraform stores state locally in a file called terraform.tfstate. This is fine for personal projects but terrible for teams — no locking, no sharing, no encryption. Production should always use a remote backend like S3+DynamoDB or HCP Terraform.

Question 5

You want to view the current state of resources managed by Terraform without modifying anything. Which command should you use?

A. terraform plan
B. terraform output
C. terraform state list
D. terraform show

terraform state list shows all resources currently tracked in state. terraform show displays the full state details (also read-only). terraform plan compares config to state (read-only but queries providers). terraform output shows output values only. Both state list and show work, but state list gives the cleanest resource overview.

Practice Questions: Modules & HCL

Question 6

What is the purpose of a Terraform module?

A. To manage Terraform state files
B. To encapsulate and reuse groups of resources as a single unit
C. To authenticate with cloud providers
D. To define input variables

Modules are containers for multiple resources that are used together. Think of them like functions in programming — they let you package, reuse, and share infrastructure patterns. A VPC module might contain subnets, route tables, and gateways as one reusable unit.

Question 7

Which of these is NOT a valid Terraform variable type?

A. string
B. map
C. object
D. array

Terraform uses "list" not "array." Valid types are: string, number, bool, list, set, map, object, tuple, and any. If you come from a JavaScript/Python background, this trips you up because "array" feels natural — but HCL uses "list."

Practice Questions: Providers & Workflow

Question 8

Which file should you use to lock provider versions and ensure all team members use the same provider versions?

A. .terraform.lock.hcl
B. terraform.tfvars
C. providers.tf
D. versions.tf

The .terraform.lock.hcl file (dependency lock file) records exact provider versions and their hashes. It's generated by terraform init and should be committed to version control. This ensures everyone on the team uses identical provider versions. providers.tf and versions.tf contain version constraints, but the lock file pins the exact version.

Question 9

What does the terraform plan command do?

A. Applies the configuration and provisions infrastructure
B. Validates HCL syntax only
C. Creates an execution plan showing what changes Terraform will make
D. Destroys all managed infrastructure

terraform plan compares your configuration to the current state and shows what would change — resources to add, modify, or destroy. It does NOT make any changes. Think of it as a dry run. Always run plan before apply to review changes.

Practice Questions: Advanced Concepts

Question 10

You need to create the same set of resources in both a "staging" and "production" environment using the same Terraform configuration. Which feature should you use?

A. Terraform modules
B. Terraform workspaces
C. Terraform providers
D. Terraform data sources

Workspaces let you maintain separate state files for the same configuration. Each workspace (staging, production) has its own state, so the same code provisions isolated environments. Use terraform.workspace to customize per-environment values. Note: in practice, many teams prefer separate directories or modules over workspaces, but for the exam, workspaces is the answer.

Question 11

How do you mark a variable as sensitive so Terraform doesn't display its value in plan or apply output?

A. Set sensitive = true in the variable block
B. Prefix the variable name with an underscore
C. Store the variable in terraform.tfvars
D. Use an environment variable instead

Setting sensitive = true in the variable definition tells Terraform to redact the value from plan and apply output. The value still exists in state (state should be encrypted!), but it won't appear in logs. Neither underscores, tfvars files, nor env vars automatically suppress output.

Question 12

You need to import an existing AWS EC2 instance into Terraform management. Which command do you use?

A. terraform add aws_instance.web i-1234567890
B. terraform state add aws_instance.web i-1234567890
C. terraform plan -import aws_instance.web i-1234567890
D. terraform import aws_instance.web i-1234567890

terraform import maps an existing resource to a Terraform resource address. You need to write the resource block in your config first, then import. In Terraform 1.5+, you can also use import blocks declaratively. But the CLI command is terraform import RESOURCE_ADDRESS RESOURCE_ID.

Study Strategy: What Worked for Me

Here's my honest advice after passing the Terraform Associate:

Build Something Real

Spin up a free-tier AWS account and provision actual infrastructure. A VPC with subnets, an EC2 instance, an S3 bucket with a lifecycle policy. The exam tests concepts, but experiencing them makes the answers obvious.

Read the Terraform Docs — Seriously

HashiCorp's documentation is actually excellent. Specifically read:

Know the CLI Commands Cold

The exam loves asking about what specific commands do. Know the difference between: init, plan, apply, destroy, validate, fmt, state list, state show, state mv, import, workspace, and output.

Don't Overthink It

Unlike CISSP where every question has shades of gray, Terraform questions are more straightforward. The right answer is usually the one that matches the documentation. Trust your practical knowledge.

Related Certifications to Consider

If you're in the DevOps/infrastructure space, these pair well with Terraform Associate:

FAQ: Terraform Associate Practice Exam

Is the Terraform Associate exam difficult?

Moderate. If you've used Terraform in real projects for a few months, the concepts will feel familiar. The tricky parts are state management edge cases, workspaces, and the exact behavior of lesser-used commands. Budget 2-4 weeks of study.

What version of Terraform is tested?

The 003 exam covers Terraform 1.x. Know HCL syntax, providers, state, modules, and the core init→plan→apply workflow. OpenTofu is NOT on the exam.

Do I need hands-on experience?

Technically you can pass without it, but practical experience makes the exam dramatically easier. Set up a free AWS/GCP account and build some infrastructure — it's the best study method and helps concepts click.

Is the Terraform Associate worth it?

For DevOps engineers, absolutely. Terraform is the most widely used IaC tool across AWS, Azure, and GCP. At $70.50, it's cheap relative to its resume value. Plus, it validates a skill that's practically mandatory for modern infrastructure roles in 2026.

How does Terraform compare to cloud-native IaC tools?

CloudFormation (AWS), ARM/Bicep (Azure), and Deployment Manager (GCP) are vendor-specific. Terraform works across all clouds with a single language (HCL). For multi-cloud or cloud-agnostic teams, Terraform wins. For single-cloud-all-in teams, either works.

Want More Terraform Practice Questions?

These 12 questions cover the basics. Get the full practice exam with questions across all exam objectives.

Full Terraform Associate Guide