Padrão do Azure Policy: o operador count
O operador count avalia os membros de um alias [*].
Definição de política de amostra
Essa definição de política audita Grupos de Segurança de Rede configurados para permitir o tráfego RDP (Protocolo de Área de Trabalho Remota) 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 count são campo, onde e a condição. Cada um deles é realçado no snippet a seguir.
- O campo diz ao count qual alias deve ser avaliado pelos membros. Aqui, examinamos a matriz do alias securityRules[*] do grupo de segurança de rede.
- onde usa a linguagem da política para definir quais membros da matriz atendem aos critérios. Neste exemplo, um operador lógico allOf agrupa três avaliações de condições diferentes das propriedades da matriz do 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 do alias corresponde à cláusula onde.
{
"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
}
Próximas etapas
- Revise outros padrões e definições internas.
- Revise a estrutura de definição do Azure Policy.
- Revisar Compreendendo os efeitos da política.