我正在制定一项策略,以在附加空(具有 0 条路由)路由表时拒绝在 Vnet 上创建子网。在azure中,只有创建路由表后才能创建路由。
我有一项策略,当路由表未分配给子网时拒绝创建,希望通过确保路由表至少有一个 UDR 来改进该策略。
`"if": {
"anyOf": [
{
"allOf": [
{
"equals": "Microsoft.Network/virtualNetworks/subnets",
"field": "type"
},
{
"exists": "false",
"field": "Microsoft.Network/virtualNetworks/subnets/routeTable.id"
}
]
}
]
},
"then": {
"effect": "deny"
}
}
}`
我有一项策略,当路由表未分配给子网时拒绝创建,希望通过确保路由表至少有一个 UDR 来改进该策略。
如果子网未分配路由表,或者子网已分配路由表但该路由表中未定义路由,则以下策略将
deny
创建子网。
这是更新的政策。
{
"mode": "All",
"policyRule": {
"if": {
"anyOf": [
{
"allOf": [
{
"equals": "Microsoft.Network/virtualNetworks/subnets",
"field": "type"
},
{
"exists": "false",
"field": "Microsoft.Network/virtualNetworks/subnets/routeTable.id"
}
]
},
{
"allOf": [
{
"field": "Microsoft.Network/virtualNetworks/subnets/routeTable.routes",
"exists": "false"
}
]
}
]
},
"then": {
"effect": "deny"
}
},
"parameters": {}
}
当我尝试使用路由表创建子网时,策略拒绝创建子网,但分配的路由表没有定义的路由 (UDR),如下所示。
输出: