Azure Policy padrão: o operador de contagem

O operador de contagem avalia os membros de um alias [*].

Definição de política de exemplo

Esta definição de política audita Os Grupos de Segurança de Rede configurados para permitir o tráfego rdp (Remote Desktop Protocol) de entrada.

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

Explicação

Os componentes principais do operador de contagem são o campo, onde e a condição. Cada um está realçado no fragmento seguinte.

  • o campo indica a contagem de que alias avaliar os membros. Aqui, estamos a analisar a matriz de alias securityRules[*] do grupo de segurança de rede.
  • em que utiliza a linguagem de política para definir os membros da matriz que cumprem os critérios. Neste exemplo, um operador lógico allOf agrupa três avaliações de condição diferentes de propriedades de matriz de alias: direção, acesso e destinationPortRange.
  • A condição de contagem neste exemplo é maior. A contagem é avaliada como verdadeira quando um ou mais membros da matriz de alias correspondem à cláusula 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
}

Passos seguintes