Skip to content

Certification Prep: HashiCorp Terraform Associate

Metadata

Field Value
Issuer HashiCorp
Exam Code TA-003
Format Multiple-choice and multiple-select
Duration 60 minutes
Passing Score ~70% (HashiCorp does not publish exact threshold)
Cost $70.50 USD
Retake Policy Wait 24 hours between attempts
Terraform Version Terraform 1.x (check HashiCorp site for exact version)
Wiki Coverage ~80%

Exam Domains & Wiki Mapping

Understand Infrastructure as Code Concepts

Objective Topic Pack Coverage
Explain what IaC is terraform ✅ Full
Describe advantages of IaC patterns terraform, gitops ✅ Full
Understand IaC vs configuration management vs provisioning terraform, ansible ✅ Full
Explain declarative vs imperative approaches terraform ✅ Full

Understand the Purpose of Terraform

Objective Topic Pack Coverage
Explain multi-cloud and provider-agnostic benefits terraform, cloud-deep-dive ✅ Full
Explain the benefits of state terraform-deep-dive ✅ Full
Describe Terraform's approach compared to other tools (Pulumi, CloudFormation, Crossplane) terraform, crossplane, pulumi ✅ Full

Understand Terraform Basics

Objective Topic Pack Coverage
Install Terraform and describe the plugin-based architecture terraform ✅ Full
Describe the provider model and the role of providers terraform ✅ Full
Write Terraform configuration using HCL terraform ✅ Full
Understand Terraform resource types (resource, data, provider blocks) terraform ✅ Full
Use variables, outputs, and locals terraform, terraform-deep-dive ✅ Full
Understand variable types, defaults, validation, and sensitivity terraform-deep-dive ✅ Full

Use the Terraform CLI

Objective Topic Pack Coverage
Understand the init command and provider installation terraform ✅ Full
Validate and format configuration (validate, fmt) terraform ✅ Full
Generate and review an execution plan (plan) terraform ✅ Full
Apply changes to infrastructure (apply) terraform ✅ Full
Destroy infrastructure (destroy) terraform ✅ Full
Understand terraform import for existing resources terraform-deep-dive ✅ Full
Use terraform taint and terraform untaint (deprecated in favor of -replace) terraform-deep-dive ⚠️ Partial
Use workspaces to manage multiple environments terraform-deep-dive ✅ Full

Interact with Terraform Modules

Objective Topic Pack Coverage
Contrast and use module sources (local, registry, GitHub) terraform-deep-dive ✅ Full
Interact with module inputs and outputs terraform-deep-dive ✅ Full
Describe module versioning terraform-deep-dive ✅ Full
Understand public vs private module registries terraform-deep-dive ⚠️ Partial
Describe module best practices (composition, reuse, DRY) terraform-deep-dive ✅ Full
Objective Topic Pack Coverage
Describe the Terraform workflow (Write, Plan, Apply) terraform ✅ Full
Understand the role of init in the workflow terraform ✅ Full
Understand plan output and change indicators (+, -, ~) terraform ✅ Full
Describe GitOps workflows with Terraform gitops, terraform-deep-dive ✅ Full
Understand collaborative workflows (VCS integration, PR-based) gitops ⚠️ Partial

Implement and Maintain State

Objective Topic Pack Coverage
Describe the default local backend and terraform.tfstate terraform-deep-dive ✅ Full
Describe state locking and its importance terraform-deep-dive ✅ Full
Handle backend configuration (S3, GCS, Azure, Consul, HCP) terraform-deep-dive ✅ Full
Describe sensitive data in state and best practices terraform-deep-dive, secrets-management ✅ Full
Use terraform state subcommands (list, show, mv, rm, pull, push) terraform-deep-dive ✅ Full
Understand state file structure and drift detection terraform-deep-dive ✅ Full

Read, Generate, and Modify Configuration

Objective Topic Pack Coverage
Understand Terraform's type system (string, number, bool, list, map, object) terraform-deep-dive ✅ Full
Create and use complex types (list of objects, maps) terraform-deep-dive ✅ Full
Use built-in functions (lookup, merge, join, split, file, templatefile) terraform-deep-dive ✅ Full
Use dynamic blocks for repeated nested configuration terraform-deep-dive ✅ Full
Use for_each and count for resource iteration terraform-deep-dive ✅ Full
Understand resource dependencies (implicit and explicit with depends_on) terraform ✅ Full
Use provisioners as a last resort terraform-deep-dive ⚠️ Partial
Use terraform console for expression testing terraform ✅ Full

Understand HCP Terraform Capabilities

Objective Topic Pack Coverage
Describe the benefits of HCP Terraform (remote state, runs, team mgmt) terraform-deep-dive ⚠️ Partial
Understand remote execution and sentinel policies terraform-deep-dive ❌ Gap
Understand workspace management in HCP Terraform terraform-deep-dive ⚠️ Partial
Describe run triggers and VCS integration gitops ⚠️ Partial
Understand the difference between HCP Terraform and Terraform Enterprise ❌ Gap

Study Plan

Phase 1: Foundations (Week 1)

Goal: Solid understanding of Terraform basics, HCL syntax, and core workflow.

  • Days 1–3: Core concepts and CLI
  • Read: terraform — IaC concepts, HCL syntax, providers, resources
  • Read: gitops — understand where Terraform fits in GitOps workflows
  • Practice: Write a simple configuration (provider, resource, variable, output)
  • Practice: Run full workflow: init > plan > apply > destroy
  • Practice: Use terraform fmt, terraform validate, terraform console

  • Days 4–7: Variables, state, and modules

  • Read: terraform-deep-dive — state management, backends, modules
  • Practice: Configure a remote backend (S3 + DynamoDB for locking)
  • Practice: Use terraform state commands: list, show, mv, rm
  • Practice: Create a reusable module, use it from another configuration
  • Practice: Use for_each and count to create multiple resources

Phase 2: Deep Dive (Week 2)

Goal: Advanced features, module patterns, and HCP Terraform awareness.

  • Days 8–10: Advanced HCL and functions
  • Read: terraform-deep-dive — dynamic blocks, complex types, functions
  • Read: crossplane — understand alternatives (exam may compare)
  • Practice: Use dynamic blocks for security group rules
  • Practice: Use built-in functions: lookup(), merge(), join(), file(), templatefile()
  • Practice: Create configurations with complex variable types (list of objects, nested maps)

  • Days 11–14: HCP Terraform and exam prep

  • External: HashiCorp HCP Terraform documentation — remote runs, Sentinel, workspaces
  • External: HashiCorp learn tutorials on HCP Terraform
  • Review: Compare Terraform workspaces (CLI) vs HCP Terraform workspaces
  • Review: Understand Sentinel policy-as-code (conceptual — you won't write policies)
  • Practice: Take HashiCorp practice exam (available on their site)

Phase 3: Exam Simulation (Days 15–17)

Goal: Timed practice and gap remediation.

  • Take 2–3 full-length practice exams
  • Review every wrong answer and map to the specific domain
  • Focus on conceptual questions about state, backends, and HCP Terraform
  • Drill: given a code snippet, identify what plan output will look like
  • Drill: given a scenario, choose the right Terraform command
  • Review: terraform import workflow, terraform state mv use cases
  • Review: module versioning constraints (pessimistic operator ~>)

Gap Analysis

Gap Exam Weight Recommended External Resource
HCP Terraform remote execution and Sentinel policies Medium HashiCorp Learn — HCP Terraform tutorials
HCP Terraform vs Terraform Enterprise differences Low HashiCorp pricing and feature comparison page
Private module registries in HCP Terraform Low HCP Terraform private registry documentation
Provisioners in depth (local-exec, remote-exec, when = destroy) Low Terraform provisioners documentation (note: HashiCorp discourages their use)
VCS-driven workflows in HCP Terraform Low HCP Terraform VCS integration docs

Exam-Day Strategy

Time Management

  • ~57 questions in 60 minutes = ~1 min per question
  • This is a fast-paced exam — don't overthink any single question
  • Flag uncertain questions and review at the end
  • Most questions are straightforward if you know the concepts

Question Triage

  1. Read the full question — look for keywords that map to specific commands or concepts
  2. "Which command..." questions: recall the exact CLI command and its purpose
  3. "What happens when..." questions: think through Terraform's behavior step by step
  4. Code snippet questions: trace through the HCL mentally, identify outputs or plan changes
  5. Scenario questions: identify the requirement (scale, collaborate, secure state) and match to feature

Common Traps

  • count vs for_each: count uses index (fragile), for_each uses map keys (stable)
  • terraform refresh is deprecated as a standalone command — it now runs as part of plan and apply
  • terraform taint is deprecated in favor of terraform apply -replace=<resource>
  • Local state vs remote state: the exam tests understanding of why remote state matters (locking, sharing, security)
  • Workspaces in CLI vs HCP Terraform — they work differently (CLI = separate state files, HCP = separate configurations)
  • Sentinel is HCP Terraform / Enterprise only — not available in open-source Terraform
  • depends_on is explicit dependency — implicit dependency comes from resource references

Key Concepts to Memorize

  • Terraform workflow: Write > Init > Plan > Apply
  • Provider lock file: .terraform.lock.hcl — committed to VCS
  • State lock: prevents concurrent operations, DynamoDB for S3 backend
  • Module sources: local (./), registry (hashicorp/consul/aws), GitHub, S3
  • Variable precedence: env vars < terraform.tfvars < *.auto.tfvars < -var flag < -var-file flag
  • terraform plan output symbols: + create, - destroy, ~ update in place, -/+ destroy then create

If You're Stuck

  • Eliminate answers that reference non-existent commands or flags
  • If a question mentions "collaboration" or "team," think HCP Terraform
  • If a question mentions "policy enforcement," think Sentinel
  • Trust your understanding of the core workflow — the exam favors practical knowledge
  • Flag and move on — 60 minutes goes fast

Cross-References