我们部署了带有二头肌的 VNET,运行良好。迁移到 Terraform 后,Azure 策略存在问题。
我们有一项政策,拒绝创建没有 NSG 的子网。这对于 Bicep 来说很好,因为它似乎以原子操作的方式创建到子网的 NSG 链接。 Terraform 不会执行此操作 - 它会创建未附加 NSG 的子网,然后运行连接它们的单独 Terraform 资源,因此子网创建会因策略而失败。路由表也有同样的问题。
对此有什么一般性评论吗?没有办法将策略评估推迟到 Terraform 完成之后,也没有内联方法强制 Terraform 执行原子操作之类的事情...
您可以使用
azurerm_virtual_network资源的
subnet
块创建与网络安全组 (NSG) 关联的子网:
resource "azurerm_virtual_network" "example" {
name = "example-network"
location = azurerm_resource_group.example.location
resource_group_name = azurerm_resource_group.example.name
# ....
subnet {
name = "subnet1"
address_prefix = "10.0.2.0/24"
security_group = azurerm_network_security_group.example.id # <-------- Set NSG
}
}