Exam Review - Terraform Associate Certification (002)
The Terraform Associate certification (002) is for Cloud Engineers specializing in operations, IT, or development who know the basic concepts and skills associated with open source HashiCorp Terraform. Candidates will be best prepared for this exam if they have professional experience using Terraform in production, but performing the exam objectives in a personal demo environment may also be sufficient. This person understands which enterprise features exist and what can and cannot be done using the open source edition.
This guide lists the specific exam objectives and resources you can study to demonstrate those objectives. For a start-to-finish list of resources you can study to prepare for the whole exam from scratch, take a look at our study guide.
Visit the HashiCorp Cloud Engineer Certification page for information on the exam and to sign up.
Prerequisites
- Basic terminal skills
- Basic understanding of on-premises and cloud architecture
To learn more about the exam, visit the HashiCorp Product Certifications page.
Review Guide
Here is a direct mapping of each HashiCorp Certified: Terraform Associate exam objective to where it is covered in HashiCorp's documentation and training. This provides experienced exam candidates a place to review just the objectives they need extra help with before taking the exam.
1 | Understand Infrastructure as Code (IaC) concepts | Documentation | Tutorial |
1a | Explain what IaC is | Infrastructure as Code Infrastructure as Code in a Private or Public Cloud | Introduction to Infrastructure as Code with Terraform |
1b | Describe advantages of IaC patterns | Infrastructure as code video Infrastructure as Code in a Private or Public Cloud | Introduction to Infrastructure as Code with Terraform |
2 | Understand Terraform's purpose (vs other IaC) | Documentation | Tutorial |
2a | Explain multi-cloud and provider-agnostic benefits | Multi-Cloud Deployment | |
2b | Explain the benefits of state | Purpose of Terraform State | Manage Resources in Terraform State |
3 | Understand Terraform basics | Documentation | Tutorial |
3a | Handle Terraform and provider installation and versioning | Providers Terraform Settings | Installing Terraform Lock and Upgrade Provider Versions |
3b | Describe plug-in based architecture | Perform CRUD Operations with Providers | |
3c | Demonstrate using multiple providers | Lock and Upgrade Provider Versions | |
3d | Describe how Terraform finds and fetches providers | Providers | Build Infrastructure– Providers |
3e | Explain when to use and not use provisioners and when to use local-exec or remote-exec | Provisioners are a Last Resort | Provision Infrastructure with Cloud-Init Provision Infrastructure with Packer |
4 | Use the Terraform CLI (outside of core workflow) | Documentation | Tutorial |
4a | Given a scenario: choose when to use terraform fmt to format code | Command: fmt | Troubleshoot Terraform |
4b | Given a scenario: choose when to use terraform taint to taint Terraform resources | Command: taint | Manage Resources in Terraform State |
4c | Given a scenario: choose when to use terraform import to import existing infrastructure into your Terraform state | Command: import | Import Terraform Configuration |
4d | Given a scenario: choose when to use terraform workspace to create workspaces | Workspaces | Refactor Monolithic Terraform Configuration |
4e | Given a scenario: choose when to use terraform state to view Terraform state | State Command | Manage Resources in Terraform State |
4f | Given a scenario: choose when to enable verbose logging and what the outcome/value is | Debugging Terraform | Troubleshoot Terraform |
5 | Interact with Terraform modules | Documentation | Tutorial |
5a | Contrast module source options | Finding and Using Modules | Modules |
5b | Interact with module inputs and outputs | Accessing Module Output Values | Modules |
5c | Describe variable scope within modules/child modules | Input Variables Calling a Child Module | |
5d | Discover modules from the public Terraform Registry | Finding and Using Modules | Modules |
5e | Defining module version | Module Versions | Modules |
6 | Navigate Terraform workflow | Documentation | Tutorial |
6a | Describe Terraform workflow ( Write -> Plan -> Create ) | The Core Terraform Workflow | Build Infrastructure |
6b | Initialize a Terraform working directory (terraform init ) | Command: init | Build Infrastructure– Initialization |
6c | Validate a Terraform configuration (terraform validate ) | Command: validate | Troubleshoot Terraform |
6d | Generate and review an execution plan for Terraform (terraform plan ) | Command: plan | |
6e | Execute changes to infrastructure with Terraform (terraform apply ) | Command: apply | Build Infrastructure– Apply Changes |
6f | Destroy Terraform managed infrastructure (terraform destroy ) | Command: destroy | Destroy Infrastructure |
7 | Implement and maintain state | Documentation | Tutorial |
7a | Describe default local backend | Backends Local | Migrate State to Terraform Cloud |
7b | Outline state locking | State Locking | |
7c | Handle backend authentication methods | Backend Types | Login to Terraform Cloud from the CLI |
7d | Describe remote state storage mechanisms and supported standard backends | Backend Types | Remote State Storage |
7e | Describe effect of Terraform refresh on state | Command: refresh | Manage Resource Drift Use Refresh-Only Mode to Sync Terraform State |
7f | Describe backend block in configuration and best practices for partial configurations | Backend Configuration | Remote State Storage |
7g | Understand secret management in state files | Sensitive Data in State | Protect Sensitive Input Variables |
8 | Read, generate, and modify configuration | Documentation | Tutorial |
8a | Demonstrate use of variables and outputs | Input Variables Output Values | Customize Terraform Configuration with Variables Output Data from Terraform |
8b | Describe secure secret injection best practice | Vault Provider for Terraform | Inject secrets into Terraform using the Vault provider |
8c | Understand the use of collection and structural types | Complex Types | Customize Terraform Configuration with Variables |
8d | Create and differentiate resource and data configuration | Resources Data Sources | Query Data Sources |
8e | Use resource addressing and resource parameters to connect resources together | Resource Addressing References to Named Values | Create Resource Dependencies |
8f | Use Terraform built-in functions to write configuration | Built-in Functions | Perform Dynamic Operations with Functions Create Dynamic Expressions |
8g | Configure resource using a dynamic block | Dynamic Blocks | |
8h | Describe built-in dependency management (order of execution based) | Resource Graph | Create Resource Dependencies |
9 | Understand Terraform Cloud and Enterprise capabilities | Documentation | Resource |
9a | Describe the benefits of Sentinel, registry, and workspaces | Sentinel Terraform Registry Workspaces | Install the Sentinel CLI Use Modules from the Registry Workspaces |
9b | Differentiate OSS and Terraform Cloud workspaces | CLI Workspaces Enterprise/Cloud Workspaces | |
9c | Summarize features of Terraform Cloud | Terraform Cloud The UI- and VCS-driven Run Workflow | Compare Packages |
Next Steps
To study the exam content from start to finish, review the materials in our study guide. To find out what types of questions will be on the exam, review our sample questions.
If you're ready to register for the exam, we wish you the best of luck! Visit our exam partner to:
- create an account.
- purchase the exam.
- register for an exam appointment.
- take the exam.