Azure Policy mönster: operatorn count
Count-operatorn utvärderar medlemmar i ett [*]-alias.
Exempel på principdefinition
Den här principdefinitionen granskar nätverkssäkerhetsgrupper som konfigurerats för att tillåta inkommande RDP-trafik (Remote Desktop Protocol).
{
"properties": {
"mode": "all",
"displayName": "Audit Network Security Groups for RDP",
"description": "This policy audits NSGs with RDP ports enabled",
"policyRule": {
"if": {
"allOf": [{
"field": "type",
"equals": "Microsoft.Network/networkSecurityGroups"
},
{
"count": {
"field": "Microsoft.Network/networkSecurityGroups/securityRules[*]",
"where": {
"allOf": [{
"field": "Microsoft.Network/networkSecurityGroups/securityRules[*].direction",
"equals": "Inbound"
},
{
"field": "Microsoft.Network/networkSecurityGroups/securityRules[*].access",
"equals": "Allow"
},
{
"field": "Microsoft.Network/networkSecurityGroups/securityRules[*].destinationPortRange",
"equals": "3389"
}
]
}
},
"greater": 0
}
]
},
"then": {
"effect": "audit"
}
}
}
}
Förklaring
Kärnkomponenterna i count-operatorn är fält, var och villkoret. Var och en är markerad i följande kodfragment.
- fältet anger antal vilket alias som medlemmar i ska utvärderas för. Här tittar vi på aliasmatrisensecurityRules[*] för nätverkssäkerhetsgruppen.
- där använder principspråket för att definiera vilka matrismedlemmar som uppfyller kriterierna. I det här exemplet grupperar en allOf logisk operator tre olika villkorsutvärderingar av egenskaper för aliasmatris : riktning, åtkomst och destinationPortRange.
- Antalsvillkoret i det här exemplet är större. Count utvärderas som sant när en eller flera medlemmar i aliasmatrisen matchar where-satsen .
{
"count": {
"field": "Microsoft.Network/networkSecurityGroups/securityRules[*]",
"where": {
"allOf": [{
"field": "Microsoft.Network/networkSecurityGroups/securityRules[*].direction",
"equals": "Inbound"
},
{
"field": "Microsoft.Network/networkSecurityGroups/securityRules[*].access",
"equals": "Allow"
},
{
"field": "Microsoft.Network/networkSecurityGroups/securityRules[*].destinationPortRange",
"equals": "3389"
}
]
}
},
"greater": 0
}
Nästa steg
- Granska andra mönster och inbyggda definitioner.
- Granska Azure Policy-definitionsstrukturen.
- Granska Förstå policy-effekter.