Terraform 漂移检测与修复
Terraform 漂移会在您的生产环境中产生隐性风险。当您的实际基础设施与代码不再匹配时,就会发生这种情况。
这种不匹配会导致停机、产生安全漏洞并导致合规性失败。
为什么会发生漂移?
- 工程师在云控制台中进行紧急热修复。
- 团队在发生故障期间进行手动更改。
- 人员在您的 IaC 工作流之外创建资源。
- 开发速度超过了您的治理规则。
示例: 您的代码将 EC2 实例定义为 t2.micro。一名工程师在 AWS 控制台中手动将其更改为 t2.large。您的代码与实际情况现在出现了差异。这就是漂移。
如何发现它:
运行 terraform plan 命令。这会向您展示代码与云端之间的差距。请注意,如果手动更改不影响 Terraform 跟踪的特定资源,它们可能会保持隐藏状态。
如何防止它:
- 使用远程后端。将您的 state 存储在 AWS S3 中。这可以为您的整个团队确保 state 文件的安全并实现版本控制。
- 使用 GitOps。将 Git 作为唯一的真理来源(single source of truth)。每一次更改都必须通过 pull request。
- 自动化测试。在基础设施更改上线之前对其进行检查。
- 持续监控。使用 AWS Config 或 Spacelift 等工具,在代码之外发生更改时向您发出警报。
如何修复它:
如果发现漂移,您必须使基础设施恢复到与代码一致的状态。您可以使用 terraform apply 命令来覆盖手动更改并恢复您预期的状态。
一致性能够保持系统的稳定。
来源:https://dev.to/vprachi360/terraform-drift-detection-and-remediation-tactics-29bm
可选学习社区:https://t.me/GyaanSetuAi