策略如何与 IaC 模板一起使用?

问题描述 投票:0回答:1

我有一个通过 terraform 部署的虚拟机,并在其上设置了各种标签。最近,新的“标记继承”Azure 策略已分配给包含该 VM 的订阅。该策略基本上规定订阅中的所有资源应包含其父资源组和订阅中的所有标签。

应用后,此策略会将所有缺失的标签添加到我的虚拟机中。但是,每当我部署 IaC 模板时,它现在都会将这些附加标签突出显示为漂移并尝试删除它们。当然,Azure Policy 会立即重新添加它们,导致 Azure Policy 和 IaC 之间永无休止的争斗。

我知道我可以轻松更新 IaC 模板以包含其他标签,但是,当有人向父资源组或订阅添加另一个标签时会发生什么?当定义另一个以某种方式更新我的资源的 Azure 策略时,会发生什么情况? (例如启用Azure Defender可以自动为虚拟机添加扩展)?

我的问题是是否有任何文档描述当前的最佳实践以防止这种情况普遍发生?理想情况下,我希望有一些相当“官方”的东西 - 最好来自大型云提供商之一 - 描述何时可以接受/建议使用这种“自动修复”工具。

注意: 我个人的观点是,由 IaC 管理的资源应该免于任何自动修复。相反,任何不合规行为都应该通过发出警报的“仅审核”策略来检测。这些警报最终会导致新的工作项目被添加到拥有 IaC 模板的团队的积压工作中。

...但是,我会完全接受那些证明我在这方面是错误的事情:)

terraform azure-resource-manager azure-policy infrastructure-as-code
1个回答
0
投票

我知道这不是您正在寻找的答案,但不幸的是,这全都与公司治理有关。

IAC 的目的是让一切都易于复制,避免向每个人授予广泛的特权,在部署之前启用基础设施审查流程等等。

所有这些工具都可以使用 terraform 进行部署,因此您可以将这些资源绑定在一起。

但是一切都可以通过一些自动修复工具手动部署。或者混合或两者兼而有之。

我知道处理这种情况时可能会令人沮丧,但我认为没有简单的解决办法。还有一些你可以做的事情:

  • 对您的同事进行有关使用 IaC 的优势的培训,并鼓励他们采用它。
  • 使用生命周期元的参数
    ignore_change
  • 从 terraform 状态中删除更改为经常的资源
© www.soinside.com 2019 - 2024. All rights reserved.