wzorzec Azure Policy: operator liczby
Operator count ocenia elementy członkowskie aliasu [*].
Przykładowa definicja zasad
Ta definicja zasad przeprowadza inspekcję sieciowych grup zabezpieczeń skonfigurowanych do zezwalania na ruch przychodzący protokołu RDP (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"
}
}
}
}
Wyjaśnienie
Podstawowe składniki operatora liczby to pole, gdzie i warunek. Każdy z nich jest wyróżniony w poniższym fragmencie kodu.
- pole informuje o liczbie aliasów do oceny elementów członkowskich. W tym miejscu przyjrzymy się tablicy aliasów securityRules[*] sieciowej grupy zabezpieczeń.
- gdzie używa języka zasad do zdefiniowania, które elementy członkowskie tablicy spełniają kryteria. W tym przykładzie operator logiczny allOf grupuje trzy różne oceny warunku właściwości tablicy aliasów: kierunek, dostęp i destinationPortRange.
- Warunek liczby w tym przykładzie jest większy. Funkcja Count oblicza wartość true, gdy co najmniej jeden element członkowny tablicy aliasów jest zgodny z klauzulą where .
{
"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
}
Następne kroki
- Przejrzyj inne wzorce i wbudowane definicje.
- Przejrzyj temat Struktura definicji zasad Azure Policy.
- Przejrzyj wyjaśnienie działania zasad.