Azure Policy-patroon: de count-operator

De teloperator evalueert leden van een alias [*].

Voorbeeld van beleidsdefinitie

Deze beleidsdefinitie controleert netwerkbeveiligingsgroepen die zijn geconfigureerd om inkomend Remote Desktop Protocol (RDP)-verkeer toe te staan.

{
    "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"
            }
        }
    }
}

Uitleg

De belangrijkste onderdelen van de count-operator zijn field, where en de voorwaarde. Elk is gemarkeerd in het volgende codefragment.

  • In veld wordt aangegeven welke alias wordt gebruikt om leden te evalueren. Hier kijken we naar de aliasmatrix securityRules[*] van de netwerkbeveiligingsgroep.
  • where gebruikt de beleidstaal om te definiĆ«ren welke matrix-leden voldoen aan de criteria. In dit voor beeld groepeert een logische operator allOf drie verschillende voorwaarden van de alias matrix-eigenschappen: direction, access en destinationPortRange.
  • De telvoorwaarde in dit voorbeeld is meer. Count evalueert als True wanneer een of meer leden van de alias matrix overeenkomt met het component 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
}

Volgende stappen