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