DevOps/SRE/平台工程师入门 IaC 的事实标准认证,$70.50 换一张多云通用的敲门砖。
先把考试形式、适合人群、备考时长和学习范围讲清楚,再决定要不要投入时间。
HashiCorp Certified: Terraform Associate (003) 是 HashiCorp 官方的入门级 IaC 认证,也是目前 DevOps 招聘 JD 里出现频率最高的 IaC 关键词。考试 57 题、60 分钟、$70.50 美金、70% 通过 — 平均 1 分钟 1 道题,节奏比 AWS SAA 紧得多。
这张证不考你能不能写 bash 脚本,也不考你能不能配 Kubernetes — 它考的是你能不能用声明式的方式描述基础设施,并且理解 Terraform 的核心抽象:Provider、Resource、State、Module、Workflow。考纲 7 大领域里 "Terraform Basics" 占 20% 是权重最高的一块,后面的 CLI(15%)和 Core Workflow(15%)都是 hands-on 题,没真用过 Terraform 跑过一次 init/plan/apply 几乎不可能裸过。
版本与背景:003 是当前在售的版本,2023 年 11 月发布,相比 002 增加了对 Terraform Cloud、Sentinel 策略、动态 Provider 的考查。证书有效期 2 年。
绕不开的话题 — IBM 收购与 BSL 许可证争议:2023 年 8 月,HashiCorp 把 Terraform 从 MPL 2.0 改成了 BSL 1.1(Business Source License),这是一个 source-available 但不算开源的协议。社区反弹后 Linux Foundation 接手了一个 fork 叫 OpenTofu(MPL 2.0,CNCF 治理)。2024 年 4 月 IBM 以 64 亿美元收购 HashiCorp,目前 IBM 没有改回 MPL 的迹象。对考证的影响:基本没有。HCL 语法、命令、工作流在 Terraform 和 OpenTofu 之间几乎 100% 兼容,企业市场 90%+ 仍在用 Terraform,HashiCorp 认证依然是招聘市场的硬通货。但如果你做开源项目或在乎许可证洁癖,可以了解一下 OpenTofu 作为 plan B。
Terraform Associate 持证人的薪资区间、对应岗位、以及真实的职业影响。
这张证对职业的实际影响
Terraform Associate 不是一张能让你升 senior 的证,但它是 DevOps/SRE/平台工程岗位筛简历时几乎必看的关键词。打开 LinkedIn 搜 "DevOps Engineer Sydney",前 50 个 JD 里有超过 70% 明确写着 "Terraform" 或 "Infrastructure as Code"。Stack Overflow 2024 开发者调研里 Terraform 是连续 4 年的 "Most Loved Tool" 之一。这意味着 — 即使你已经有 AWS SAA、有 Kubernetes 经验,没有 Terraform 关键词,HR 的 ATS 系统可能就把你过滤掉了。
它和 AWS SAA 的关键区别:SAA 验证你"会用某一个云",Terraform Associate 验证你"会用所有云"。Terraform 的 Provider 生态覆盖 AWS、Azure、GCP、阿里云、Kubernetes、GitHub、Datadog、Cloudflare 几乎所有主流平台 — 这是它能在 IaC 战争里击败 CloudFormation(只能管 AWS)和 Pulumi(市场份额仍小)的根本原因。结论:如果你的目标是做 multi-cloud 或 platform engineering,这张证比任何单一云的 Associate 都更通用。
最适合考的三类人:
不适合考的人:纯前端开发(学完用不上,性价比低);从未碰过任何云的零基础转行者(先学一门云的基础再来);非技术岗位(产品/项目经理 — 这张证完全是 hands-on 性质)。
这里不是装饰信息,它决定你应该先把时间砸在哪些知识域上。
Understand Infrastructure as Code (IaC) Concepts
Understand the Purpose of Terraform
Understand Terraform Basics
Use the Terraform CLI
Interact with Terraform Modules
Use the Core Workflow
Implement and Maintain State
过来人总结的分阶段备考节奏,按周拆分,不是空话。
不要看视频。安装 Terraform CLI,用 AWS Free Tier(或 LocalStack)跑一个最简单的项目:创建一个 S3 bucket + 一个 EC2 实例。亲手敲一遍 `terraform init`、`plan`、`apply`、`destroy`,看一眼 `.terraform/`、`terraform.tfstate` 文件长什么样。这一步比看 10 小时视频都有用。
走完 HashiCorp 官方的 Certification 003 Learning Path(developer.hashicorp.com/terraform/tutorials/certification-003),重点章节:Variables & Outputs、Modules、Remote State、Workspaces。每章后都自己写一遍 demo,不要 copy-paste。
State 管理是考试最爱出陷阱题的领域。亲手配置一次 S3 + DynamoDB 远程后端,故意触发一次 state lock 看看错误信息长什么样。然后从 Terraform Registry 抓一个 vpc 模块用一下,再自己写一个简单的子模块。这一阶段做完,你对 `terraform import`、`terraform state mv`、`terraform taint` 这些命令的理解会从"听过"变成"记住"。
刷 Bryan Krausen 在 Udemy 上的 6 套模考题,或者用 JR Academy 的 315+ 题库。模考稳定 80% 以上再去考(注意:60 分钟 57 题节奏极快,留出至少 10% buffer)。重点复习易错点:count vs for_each、`terraform refresh` 不改配置、`-target` 的副作用、sensitive 变量在 state 里仍然是明文。
过来人的备考时长、分数、以及踩过的坑。
我犯的最大错误是前两周只看视频不动手。第三周开始硬着头皮自己写一个完整的 VPC + EKS module,所有概念瞬间打通了。考试当天 60 分钟做完还剩 8 分钟,节奏比想象的紧。
已经在生产环境用了 1 年 Terraform 才去考的。最大坑是 count 和 for_each 的题 — 工作里我从来都用 for_each,根本没研究过 count 的 index 行为,结果模考挂了好几道。建议哪怕你工作中用过 Terraform,也要把官方文档里关于 count 的 limitations 那一节读一遍。
Ansible 用了 5 年,本以为 Terraform 很简单,结果声明式思维转换花了我 2 周才适应 — Ansible 是"做这些操作",Terraform 是"我要这个结果"。考试 76% 险过,建议像我这种 Ansible 老用户不要轻敌,至少留 6 周。
| Terraform Associate | AWS SAA考证 | CKA | |
|---|---|---|---|
| 机构 | HashiCorp | AWS | CNCF |
| 级别 | 助理级 | 助理级 | 助理级 |
| 考试费 | $70.5 | $150 | $395 |
| 时长 | 60 min | 130 min | 120 min |
| 题量 | 57 | 65 | 17 |
| 有效期 | 2 年 | 3 年 | 3 年 |
**60 分钟 57 题,节奏 = 1 分钟 1 题**:比 AWS SAA 紧得多。第一遍快速过,遇到长 HCL 代码块的题立刻标记跳过,最后 15 分钟回头攻坚。
**判断题不要想太多**:题型里有 True/False,HashiCorp 的判断题通常很直接,凭第一感觉走,纠结反而错。
**HCL 语法题靠肌肉记忆**:`required_providers` 写在 `terraform {}` 块里,`provider "aws" {}` 是单独的 block,`backend "s3" {}` 也在 `terraform {}` 块里。这些位置题不会就是不会,没法蒙。考前一晚把官方 docs 的 Configuration Language 那一页过一遍。
**多选题题干会明确说选几个**:写着 "Choose 2" 就只能选 2,多选少选都算错。
**OpenTofu 不会出现在考题里**:考试只考 HashiCorp Terraform,不需要担心 OpenTofu 相关知识。BSL/MPL 许可证差异也不在考纲。
**线上考试在家就能考**:PSI 监考,需要安静独立空间、护照、外接摄像头允许 360° 环顾房间。提前 30 分钟登录,PSI 系统经常抽风。
**count 和 for_each 不分** — count 用 index(数字)作 key,删中间一个会导致后面全部 recreate;for_each 用 string key,删一个只影响那一个。考试至少 2-3 道题考这个区别。
**以为 terraform import 会自动生成 .tf 文件** — 错。`terraform import` 只把已有资源加到 state 里,配置文件你必须手写或用 `terraform plan -generate-config-out`(1.5+ 才有)。这是经典陷阱题。
**没理解 state locking** — 团队协作必须用支持 locking 的远程后端(S3+DynamoDB、Terraform Cloud、Consul)。本地 state 文件并发跑 apply 会损坏 state,问题严重时整个 stack 都要重建。
**以为 sensitive = true 能加密 state** — 不能。`sensitive = true` 只是隐藏 CLI 输出和 plan 显示,**state 文件里仍然是明文**。真正保护敏感数据要靠后端加密(S3 SSE、Vault 集成)。
**`terraform refresh` 会修改基础设施** — 不会。refresh 只读取真实资源状态更新 state 文件,不改任何东西。但它会让下一次 plan 显示 drift。题目经常用迷惑选项考这个。
**忽略 Provider 版本约束** — `version = "~> 3.0"` 允许 3.x 但不允许 4.0;`>= 3.0` 没有上限;`= 3.0.1` 是精确锁定。考试一定会出至少 1 道题。