我正在尝试创建一个策略来审核我在 Azure 中的网络接口。 策略应该指出 NIC 是否分配了没有 NSG 的公共 IP(在 NIC 上而不是在子网上) 这是我的 JSON。请协助解决这个问题。目前,这里的问题是所有带/不带 PIP 和 NSG 的 NIC 都不合规。
{
"mode": "All",
"policyRule": {
"if": {
"allOf": [
{
"field": "type",
"equals": "Microsoft.Network/networkInterfaces"
},
{
"not": {
"field": "Microsoft.Network/networkInterfaces/networkSecurityGroup",
"equals": "True"
}
},
{
"not": {
"field": "Microsoft.Network/networkInterfaces/ipConfigurations[*].publicIPAddress",
"equals": "True"
}
}
]
},
"then": {
"effect": "audit"
}
},
"parameters": {}
}
答案 0 :(得分:0)
我会尝试使用 exists
条件运算符。结果看起来像这样。
{
"mode": "All",
"policyRule": {
"if": {
"allOf": [
{
"field": "type",
"equals": "Microsoft.Network/networkInterfaces"
},
{
"not": {
"field": "Microsoft.Network/networkInterfaces/networkSecurityGroup",
"exists": true
}
},
{
"field": "Microsoft.Network/networkInterfaces/ipConfigurations[*].publicIPAddress",
"exists": true
}
]
},
"then": {
"effect": "audit"
}
},
"parameters": {}
}
将您的所有资源标记为不合规的原因是因为您正在检查的资源的 publiIpAddress 或 NSG 都不等于“True”。如需更多政策条件运算符,请查看 https://docs.microsoft.com/en-us/azure/governance/policy/concepts/definition-structure#conditions