Flexible search understands AI-901, ai901, ai 901, 901, ai, network plus, and saa c03.
No matching practice exams yet.
Start a free 30-question Terraform Associate daily set with source-backed explanations, local progress, and a fresh rotation every morning.
HashiCorp Infrastructure Automation
Use this Terraform Associate practice test to review HashiCorp Terraform Associate. Questions rotate daily and each explanation links to the source used to validate the answer.
Answer questions today and this will become a rolling 7-day scorecard.
Guest progress saves automatically on this device. Add an email later when you want a magic link that keeps your daily Terraform Associate practice in sync across browsers.
Guest progress saves on this device automatically
150 verified questions are currently in the live bank. Questions updated at Apr 13, 2026, 5:22 PM CDT. The daily set rotates at 10:00 AM local time, and each explanation links back to the source used to write it. Use the web set for quick practice, then switch to the app when available for larger banks and deeper review.
Use these official HashiCorp resources alongside the daily practice set. They cover the provider's own exam page, study guide, or prep material.
Need adjacent HashiCorp practice pages too? HashiCorp practice hub.
A. Incorrect: It validates the configuration is incorrect because it does not answer this stem as directly as It applies all pending changes immediately.
B. Correct: It applies all pending changes immediately is the correct answer because 'terraform apply' applies all pending changes immediately by default. The other options are actions taken by different commands.
C. Incorrect: It shows a preview of changes is incorrect because it does not answer this stem as directly as It applies all pending changes immediately.
D. Incorrect: It destroys existing resources is incorrect because it does not answer this stem as directly as It applies all pending changes immediately.
A. Incorrect: module's version is incorrect because it does not answer this stem as directly as path to the module.
B. Correct: path to the module is the correct answer because the source argument defines the path to the module, ensuring Terraform knows where to find it. The other options are not what the source argument specifies.
C. Incorrect: name of the module is incorrect because it does not answer this stem as directly as path to the module.
D. Incorrect: dependencies is incorrect because it does not answer this stem as directly as path to the module.
A. Correct: depends_on is the correct answer because the correct answer is 'depends_on' because it specifies explicit resource dependencies. The other options are not valid Terraform meta-arguments.
B. Incorrect: after is incorrect because it does not answer this stem as directly as depends_on.
C. Incorrect: before is incorrect because it does not answer this stem as directly as depends_on.
D. Incorrect: requires is incorrect because it does not answer this stem as directly as depends_on.
A. Correct: Reusable, shareable configuration stored as code is the correct answer because terraform IaC patterns make infrastructure changes easier to review and reuse because configuration can be shared, versioned, and automated as code. Manual console changes and hand-edited plugins do not provide the same repeatable change trail.
B. Incorrect: Manual click-by-click resource creation is incorrect because it does not answer this stem as directly as Reusable, shareable configuration stored as code.
C. Incorrect: Provider binaries edited by hand for each team is incorrect because it does not answer this stem as directly as Reusable, shareable configuration stored as code.
D. Incorrect: State files copied into every application repository is incorrect because it does not answer this stem as directly as Reusable, shareable configuration stored as code.
A. Incorrect: To specify the version of a provider to use globally is incorrect because it does not answer this stem as directly as To define multiple instances of a single provider with different configurations..
B. Incorrect: To create unique resource names within a module is incorrect because it does not answer this stem as directly as To define multiple instances of a single provider with different configurations..
C. Correct: To define multiple instances of a single provider with different configurations is the correct answer because provider aliases allow you to configure and reference multiple instances of the same provider with different settings, not for naming or grouping purposes.
D. Incorrect: To group related resources together is incorrect because it does not answer this stem as directly as To define multiple instances of a single provider with different configurations..
A. Correct: Sharing state data between team members or workspaces is the correct answer because remote state makes state data available from a shared backend instead of trapping it in one local directory. It still requires appropriate backend setup and does not remove initialization or provider management.
B. Incorrect: Avoiding all backend configuration forever is incorrect because it does not answer this stem as directly as Sharing state data between team members or workspaces.
C. Incorrect: Storing provider source code in the state file is incorrect because it does not answer this stem as directly as Sharing state data between team members or workspaces.
D. Incorrect: Running Terraform without initialization is incorrect because it does not answer this stem as directly as Sharing state data between team members or workspaces.
A. Correct: Organizing related workspaces is the correct answer because projects help organize related HCP Terraform workspaces. They do not build images, schedule workloads, or store provider source code inside Terraform state.
B. Incorrect: Building reusable machine images is incorrect because it does not answer this stem as directly as Organizing related workspaces.
C. Incorrect: Scheduling application workloads is incorrect because it does not answer this stem as directly as Organizing related workspaces.
D. Incorrect: Storing provider source code in state is incorrect because it does not answer this stem as directly as Organizing related workspaces.
A. Correct: DEBUG is the correct answer because `DEBUG` is one of Terraform's valid logging levels for TF_LOG. `VERBOSE`, `LOUD`, and `CHATTER` may sound descriptive, but they are not valid TF_LOG level names.
B. Incorrect: VERBOSE is incorrect because it does not answer this stem as directly as DEBUG.
C. Incorrect: LOUD is incorrect because it does not answer this stem as directly as DEBUG.
D. Incorrect: CHATTER is incorrect because it does not answer this stem as directly as DEBUG.
A. Incorrect: `terraform apply` is incorrect because it does not answer this stem as directly as `terraform fmt`.
B. Incorrect: `terraform validate` is incorrect because it does not answer this stem as directly as `terraform fmt`.
C. Incorrect: `terraform init` is incorrect because it does not answer this stem as directly as `terraform fmt`.
D. Correct: `terraform fmt` is the correct answer because `terraform fmt` is used to format and standardize Terraform configuration files, ensuring a consistent style. Other commands serve different purposes such as validation or deployment.
A. Incorrect: module name is incorrect because it does not answer this stem as directly as version argument.
B. Incorrect: source URL is incorrect because it does not answer this stem as directly as version argument.
C. Correct: version argument is the correct answer because the 'version' argument specifies which version of a registry module should be used. The closest distractor, 'source URL', provides the location but not the specific version.
D. Incorrect: alias is incorrect because it does not answer this stem as directly as version argument.
A. Correct: check blocks is the correct answer because check blocks were introduced in Terraform v1.5.0 for independent infrastructure assertions. Preconditions, postconditions, and variable validation belong to different validation features and versions.
B. Incorrect: preconditions is incorrect because it does not answer this stem as directly as check blocks.
C. Incorrect: postconditions is incorrect because it does not answer this stem as directly as check blocks.
D. Incorrect: variable validation is incorrect because it does not answer this stem as directly as check blocks.
A. Correct: A single workflow that works through provider plugins is the correct answer because terraform supports multi-cloud workflows by using providers behind a common configuration and workflow model. The other choices describe adjacent tool categories, not Terraform provider-based infrastructure management.
B. Incorrect: A machine-image builder that only creates VM templates is incorrect because it does not answer this stem as directly as A single workflow that works through provider plugins.
C. Incorrect: A workload scheduler that replaces Terraform state is incorrect because it does not answer this stem as directly as A single workflow that works through provider plugins.
D. Incorrect: A deployment dashboard that stores no infrastructure configuration is incorrect because it does not answer this stem as directly as A single workflow that works through provider plugins.
A. Incorrect: A provider is used exclusively for security compliance checks in Terraform configurations is incorrect because it does not answer this stem as directly as A provider defines the set of resource types and data sources that Terraform can use..
B. Correct: A provider defines the set of resource types and data sources that Terraform can use is the correct answer because a provider defines the resource types and data sources Terraform can use for a particular platform or service. The other options describe compliance checks, image building, or workload orchestration, which are not the provider role in Terraform.
C. Incorrect: A provider acts as a plugin to build machine images using Packer is incorrect because it does not answer this stem as directly as A provider defines the set of resource types and data sources that Terraform can use..
D. Incorrect: A provider serves as an orchestration tool similar to Nomad is incorrect because it does not answer this stem as directly as A provider defines the set of resource types and data sources that Terraform can use..
A. Correct: Concurrency control is the correct answer because terraform uses state locking to prevent more than one operation from modifying the same state at the same time. Access control, audit logging, and rate limiting may matter elsewhere, but they are not the Terraform state-locking mechanism.
B. Incorrect: State encryption is incorrect because it does not answer this stem as directly as Concurrency control.
C. Incorrect: Versioning system is incorrect because it does not answer this stem as directly as Concurrency control.
D. Incorrect: Backup strategy is incorrect because it does not answer this stem as directly as Concurrency control.
A. Correct: The module must include a license file is the correct answer because including a license file is necessary for sharing modules in an HCP Terraform private registry to ensure compliance and clarity of usage rights. While other options may be important, they are not specifically required by the registry.
B. Incorrect: The module must be open source is incorrect because it does not answer this stem as directly as The module must include a license file..
C. Incorrect: The module must be compliant with GDPR regulations is incorrect because it does not answer this stem as directly as The module must include a license file..
D. Incorrect: The module must have version control is incorrect because it does not answer this stem as directly as The module must include a license file..
A. Incorrect: terraform init aws_s3_bucket.example --import=s3://example-bucket is incorrect because it does not answer this stem as directly as terraform import aws_s3_bucket.example s3://example-bucket.
B. Incorrect: terraform apply aws_s3_bucket.example --import=s3://example-bucket is incorrect because it does not answer this stem as directly as terraform import aws_s3_bucket.example s3://example-bucket.
C. Incorrect: terraform plan aws_s3_bucket.example --import=s3://example-bucket is incorrect because it does not answer this stem as directly as terraform import aws_s3_bucket.example s3://example-bucket.
D. Correct: terraform import aws_s3_bucket.example s3://example-bucket is the correct answer because the correct command is `terraform import` to add an existing resource to the Terraform state. The other commands do not support importing resources.
A. Incorrect: While debugging existing infrastructure is incorrect because it does not answer this stem as directly as Before committing changes to version control.
B. Incorrect: After applying configuration changes is incorrect because it does not answer this stem as directly as Before committing changes to version control.
C. Incorrect: During the initial setup of a new project is incorrect because it does not answer this stem as directly as Before committing changes to version control.
D. Correct: Before committing changes to version control is the correct answer because 'terraform plan' is used before applying any changes to review what will be done. This ensures you understand the impact of your actions.
A. Correct: Reference the child module output and pass it where another module or resource needs it is the correct answer because module composition often wires outputs from one child module into resources or other modules that need those values. Copying state files, editing plugins, or deleting inputs would make the configuration harder to manage and is not the composition pattern.
B. Incorrect: Copy the child module state file into the parent module source directory is incorrect because it does not answer this stem as directly as Reference the child module output and pass it where another module or resource needs it.
C. Incorrect: Edit the provider plugin so it returns the child output automatically is incorrect because it does not answer this stem as directly as Reference the child module output and pass it where another module or resource needs it.
D. Incorrect: Delete the child module variables after the first apply is incorrect because it does not answer this stem as directly as Reference the child module output and pass it where another module or resource needs it.
A. Incorrect: variable expressions is incorrect because it does not answer this stem as directly as dynamic blocks.
B. Incorrect: conditional statements is incorrect because it does not answer this stem as directly as dynamic blocks.
C. Incorrect: for_each loops is incorrect because it does not answer this stem as directly as dynamic blocks.
D. Correct: dynamic blocks is the correct answer because dynamic blocks are the Terraform feature for generating nested blocks from expressions, including cases where a collection controls what appears. Variables and general conditionals can influence values, but they do not by themselves create repeated nested blocks.
A. Correct: Provider is the correct answer because a provider is the plugin layer that gives Terraform resource types and data sources for a target API. Output values, state locks, and formatting commands are useful Terraform concepts, but they do not define how Terraform talks to a service API.
B. Incorrect: Output value is incorrect because it does not answer this stem as directly as Provider.
C. Incorrect: State lock is incorrect because it does not answer this stem as directly as Provider.
D. Incorrect: Formatting command is incorrect because it does not answer this stem as directly as Provider.
A. Incorrect: To track resource changes is incorrect because it does not answer this stem as directly as To manage infrastructure as code.
B. Incorrect: To orchestrate workloads is incorrect because it does not answer this stem as directly as To manage infrastructure as code.
C. Incorrect: To secure machine images is incorrect because it does not answer this stem as directly as To manage infrastructure as code.
D. Correct: To manage infrastructure as code is the correct answer because managing infrastructure as code is the main goal of remote state management. Tracking resource changes and securing machine images are important but not the primary purpose.
A. Incorrect: Manage infrastructure as code is incorrect because it does not answer this stem as directly as Specify remote state storage.
B. Incorrect: Orchestrate workloads is incorrect because it does not answer this stem as directly as Specify remote state storage.
C. Incorrect: Standardize application patterns is incorrect because it does not answer this stem as directly as Specify remote state storage.
D. Correct: Specify remote state storage is the correct answer because the correct answer is 'Specify remote state storage' because the backend block defines how Terraform interacts with a remote system to manage state data. The other options describe different HashiCorp tools.
A. Incorrect: Runs is incorrect because it does not answer this stem as directly as Workspaces.
B. Correct: Workspaces is the correct answer because hCP Terraform workspaces separate configuration, state, variables, and runs for different environments or components. Runs are the operations inside a workspace, while projects organize workspaces at a higher level.
C. Incorrect: State is incorrect because it does not answer this stem as directly as Workspaces.
D. Incorrect: Projects is incorrect because it does not answer this stem as directly as Workspaces.
A. Correct: terraform state show is the correct answer because the correct answer is 'terraform state show' because it specifically retrieves and shows details about the current state of a resource. The closest distractor, 'terraform show', does not exist as a command.
B. Incorrect: terraform state list is incorrect because it does not answer this stem as directly as terraform state show.
C. Incorrect: terraform show is incorrect because it does not answer this stem as directly as terraform state show.
D. Incorrect: terraform get is incorrect because it does not answer this stem as directly as terraform state show.
A. Incorrect: terraform init is incorrect because it does not answer this stem as directly as terraform validate.
B. Incorrect: terraform apply is incorrect because it does not answer this stem as directly as terraform validate.
C. Incorrect: terraform plan is incorrect because it does not answer this stem as directly as terraform validate.
D. Correct: terraform validate is the correct answer because the correct answer is 'terraform validate' because it specifically checks the configuration files for syntax errors and static checks. The other commands are used for different purposes such as initializing modules or applying changes.
A. Incorrect: main.tf is incorrect because it does not answer this stem as directly as outputs.tf.
B. Incorrect: variables.tf is incorrect because it does not answer this stem as directly as outputs.tf.
C. Incorrect: results.tf is incorrect because it does not answer this stem as directly as outputs.tf.
D. Correct: outputs.tf is the correct answer because the correct answer is 'outputs.tf' because this file specifies what information should be made available as output values from the module. The other options do not define outputs.
A. Incorrect: list is incorrect because it does not answer this stem as directly as map.
B. Correct: map is the correct answer because a `map` represents key-value pairs in Terraform type constraints and expressions. Lists and tuples are ordered collections, while strings are single text values rather than keyed collections.
C. Incorrect: set is incorrect because it does not answer this stem as directly as map.
D. Incorrect: object is incorrect because it does not answer this stem as directly as map.
A. Incorrect: By scripting detailed steps is incorrect because it does not answer this stem as directly as Through declarative configuration files.
B. Incorrect: Via real-time monitoring tools is incorrect because it does not answer this stem as directly as Through declarative configuration files.
C. Incorrect: Using automated deployment scripts is incorrect because it does not answer this stem as directly as Through declarative configuration files.
D. Correct: Through declarative configuration files is the correct answer because terraform uses declarative configuration to define desired states, rather than specifying step-by-step instructions.
A. Incorrect: The provider is automatically installed from the official repository is incorrect because it does not answer this stem as directly as Terraform searches for and loads the corresponding plugin based on the provider name..
B. Incorrect: Terraform creates a new instance of the provider using default settings is incorrect because it does not answer this stem as directly as Terraform searches for and loads the corresponding plugin based on the provider name..
C. Incorrect: Terraform sends an RPC request to HashiCorp's servers to fetch the latest version of the provider is incorrect because it does not answer this stem as directly as Terraform searches for and loads the corresponding plugin based on the provider name..
D. Correct: Terraform searches for and loads the corresponding plugin based on the provider name is the correct answer because terraform searches for and loads the corresponding plugin based on the provider name, ensuring that the correct functionality is available. The other options describe actions not taken by Terraform when referencing providers.
A. Incorrect: It fails to initialize is incorrect because it does not answer this stem as directly as Uses local state storage automatically.
B. Incorrect: Requires manual setup of cloud storage is incorrect because it does not answer this stem as directly as Uses local state storage automatically.
C. Correct: Uses local state storage automatically is the correct answer because without specifying a backend, Terraform defaults to using the local file system for storing state files. This ensures that you can start managing infrastructure locally right away.
D. Incorrect: Deploys resources without saving state is incorrect because it does not answer this stem as directly as Uses local state storage automatically.
dotCreds builds Terraform Associate practice questions from public exam objectives and HashiCorp exam and documentation references. The questions are written for realistic study practice, not copied from exam dumps.
Each question includes an explanation and, when available, a source link back to the provider documentation or reference used to validate the answer. That keeps the practice tied to study material you can actually review.
The page tracks today's answered count and accuracy for the 30-question daily set, then saves a 7-day score history on this device so you can see your recent practice trend.
The site is the fastest way to start Terraform Associate practice without installing anything. It is built for daily recall, quick weak-topic discovery, and source-backed explanations you can review immediately.
The web page is the quick free sampler. If a dotCreds app is available for Terraform Associate, the app is better for larger banks, focused weak-domain drills, longer review sessions, and mobile study routines.