Partager via


Modèle Azure Policy : Opérateur count

L’opérateur count évalue les membres d’un alias [*].

Exemple de définition de stratégie

Cette définition de stratégie audite des groupes de sécurité réseau configurés pour autoriser le trafic entrant du protocole 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"
            }
        }
    }
}

Explication

Les principaux composants de l’opérateur count sont field, where et la condition. Chacun est mis en évidence dans l’extrait de code suivant.

  • field indique à count de quel alias il faut évaluer les membres. Ici, nous examinons le groupe d’alias securityRules[*] du groupe de sécurité réseau.
  • where utilise le langage de stratégie pour définir quels membres d’array remplissent les critères. Dans cet exemple, un opérateur logique allOf regroupe trois évaluations de condition différentes de propriétés d’alias array : direction, access et destinationPortRange.
  • La condition count dans cet exemple est greater. Count prend la valeur true quand un ou plusieurs membres de l’alias array correspondent à la clause 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
}

Étapes suivantes