Terraform State:远程锁、敏感数据与恢复策略

安全管理 Terraform State,避免并发写入、敏感信息泄露和状态损坏。

文章目录 · 4 节

Terraform State 是基础设施真实资源与代码之间的映射,丢失或泄露都会带来严重风险。它不能当作普通构建产物处理。

使用远程后端与锁

选择支持版本、加密、访问审计和状态锁的后端。每个环境使用独立 state,限制 CI 和个人账号只访问负责范围。

terraform {
  backend "s3" {
    bucket         = "infra-state-prod"
    key            = "network/terraform.tfstate"
    encrypt        = true
    dynamodb_table = "terraform-locks"
  }
}

保护敏感信息

sensitive = true 只隐藏终端输出,敏感值仍可能写入 state。优先引用密钥管理服务,避免把真实 secret 作为资源属性保存。

不要手工编辑

使用 terraform state mvrmimport 调整映射,并在操作前备份。强制解锁前确认没有仍在运行的 apply。

恢复演练

定期从历史版本恢复到隔离环境,执行 plan 检查差异。备份只有经过恢复验证才算有效。