Terraform 风险检测器
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/terraform-drift-detector-2。
技能介绍
Terraform 漂移是怎么发生的
当你用 Terraform 管理 AWS、GCP 或 Azure 资源时,terraform.tfstate 记录的是"代码期望的状态"。但运维实践中,总有人通过控制台、CLI 或其它脚本直接改线上资源——改了安全组规则、调了实例规格、删了负载均衡监听器。这些改动不会自动回写 state 文件,state 与真实环境之间就出现了漂移。
漂移的危害在于不可见。terraform apply 执行时,Terraform 会以 state 为准,把线上资源"纠正"回代码描述的状态,可能直接覆盖别人刚做的紧急修复。团队往往在事故复盘时才发现漂移早已存在。
这个技能做什么
- 读取当前项目的
terraform.tfstate,与云厂商实时 API 返回的资源清单逐项比对 - 调用
terraform plan获取差异摘要,不修改任何资源 - 通过 Terraform Cloud API 拉取远程 state,适配使用 remote backend 的团队
- 针对 AWS、GCP、Azure 三类 provider 做差异化的状态解析
输出聚焦三类差异:资源缺失(state 有、线上无)、属性不一致(配置值与实际值不符)、额外资源(线上有、state 未记录)。每条差异附带 resource address,可直接定位到 .tf 文件中的声明。
使用前需要注意
- 需要为 Terraform Cloud API 配置有效凭证,否则远程 state 拉取会失败
- 技能只做检测,不会执行
terraform apply修复漂移,修复决策仍由人来做 - 用 Pulumi、CloudFormation 或云厂商原生工具管理的资源不在覆盖范围内
使用场景
- 在合并基础设施变更前运行 `terraform plan`,确认 Terraform state 与 AWS、GCP 或 Azure 实时资源是否一致,避免误判环境。
- 巡检使用 Terraform Cloud 管理的项目,通过 Terraform Cloud API 拉取远程 state,并定位资源属性、数量或配置的漂移。
- 排查线上资源被直接修改的问题,输出缺失资源、属性不一致和额外资源等差异,便于回溯到对应的 `resource` 声明。
- 在团队 code review 或发布前建立安全核对步骤,只读取 state 和实时资源,不执行 `terraform apply` 等写入操作。
适合人员
- 管理 Terraform 仓库的 DevOps 工程师,需要发现 state 与线上 AWS、GCP、Azure 资源之间的漂移。
- 负责多云运维的 SRE,需要使用 `terraform plan` 和 Terraform Cloud API 做只读风险核对。
- 审核 IaC 变更的平台工程师,需要定位缺失、多余或属性不一致的云资源。
- 使用 Terraform Cloud 的基础设施团队,需要定期检查远程 state 与实时资源的一致性。