当azure策略要求在所有子网上使用NSG时,如何处理Terraform销毁操作?

当azure策略要求在所有子网上使用NSG时,如何处理Terraform销毁操作?,terraform,terraform-provider-azure,Terraform,Terraform Provider Azure,我们有一个订阅策略,强制所有子网都有一个NSG。Terraform在创建子网/NSG时运行良好。但是,它在执行terraform destroy时遇到策略错误,因为它试图首先从子网中删除NSG。由于在所有子网上都需要NSG的策略,这会被阻止。有没有办法在terraform中解决这个问题,或者可能使子网/nsg删除成为一个原子操作 地形v0.11.13 +provider.azurerm v1.25.0这是一个很难解决的问题,只有草率的解决方案。我是泛泛地谈论用terraform处理政策。基本上,

我们有一个订阅策略,强制所有子网都有一个NSG。Terraform在创建子网/NSG时运行良好。但是,它在执行terraform destroy时遇到策略错误,因为它试图首先从子网中删除NSG。由于在所有子网上都需要NSG的策略,这会被阻止。有没有办法在terraform中解决这个问题,或者可能使子网/nsg删除成为一个原子操作

地形v0.11.13
+provider.azurerm v1.25.0

这是一个很难解决的问题,只有草率的解决方案。我是泛泛地谈论用terraform处理政策。基本上,您希望动态地将范围排除注入资源:

选择权
  • 只需转到Azure门户并在销毁之前排除资源上的策略。如果禁用该策略,则需要将其放回原处
  • 在运行之前,在管道中为策略分配构建一个动态地形,这将为目标资源添加一个not_范围。由于已部署策略分配,因此需要导入该策略分配
  • 想出一种向策略引擎发送信号的方法(无论您使用什么,都会自动执行Azure策略)。在管道中添加一个非作用域
  • 跳过使用terraform使用Azure CLI或REST界面来更新范围
  • 对于选项2、3或4,需要暂停策略分配才能激活。我的经验是,它会有所不同,有时会失败,但如果您正在执行管道,您可以对其发出警报并重新运行