Share via


Padrão do Azure Policy: propriedades de campo

O operador de campo avalia a propriedade especificada ou alias para um valor fornecido para uma determinada condição.

Definição de política de amostra

Essa definição de política permite definir regiões permitidas que atendem aos requisitos de localização geográfica da sua organização. Os recursos permitidos são definidos no parâmetro listOfAllowedLocations (matriz). Os recursos que correspondem à definição são negados.

{
    "properties": {
        "displayName": "Allowed locations",
        "policyType": "BuiltIn",
        "description": "This policy enables you to restrict the locations your organization can specify when deploying resources. Use to enforce your geo-compliance requirements. Excludes resource groups, Microsoft.AzureActiveDirectory/b2cDirectories, and resources that use the 'global' region.",
        "mode": "Indexed",
        "parameters": {
            "listOfAllowedLocations": {
                "type": "Array",
                "metadata": {
                    "description": "The list of locations that can be specified when deploying resources.",
                    "strongType": "location",
                    "displayName": "Allowed locations"
                }
            }
        },
        "policyRule": {
            "if": {
                "allOf": [{
                        "field": "location",
                        "notIn": "[parameters('listOfAllowedLocations')]"
                    },
                    {
                        "field": "location",
                        "notEquals": "global"
                    },
                    {
                        "field": "type",
                        "notEquals": "Microsoft.AzureActiveDirectory/b2cDirectories"
                    }
                ]
            },
            "then": {
                "effect": "Deny"
            }
        }
    }
}

Explicação

    "if": {
        "allOf": [{
                "field": "location",
                "notIn": "[parameters('listOfAllowedLocations')]"
            },
            {
                "field": "location",
                "notEquals": "global"
            },
            {
                "field": "type",
                "notEquals": "Microsoft.AzureActiveDirectory/b2cDirectories"
            }
        ]
    },
    "then": {
        "effect": "Deny"
    }
}

O operador campo é usado três vezes dentro do operador lógicoallOf.

  • O primeiro uso avalia a propriedade location com a condição de notIn para o parâmetro listOfAllowedLocations. notIn funciona como se espera de uma matriz e o parâmetro é uma matriz. Se o location do recurso criado ou atualizado não estiver na lista aprovada, esse elemento será avaliado como true.
  • O segundo uso também avalia a propriedade location, mas usa a condição de notEquals para ver se o recurso é global. Se o location do recurso criado ou atualizado não for global, esse elemento será avaliado como true.
  • O último uso avalia a propriedade type e usa a condição notEquals para validar o tipo de recurso que não é Microsoft.AzureActiveDirectory/b2cDirectories . Se não for, esse elemento será avaliado como true.

Se todas as três instruções de condição no operador lógico allOf forem avaliadas como true, a criação ou atualização de recurso será bloqueada pela Política do Azure.

Próximas etapas