Padrão da Política do Azure: propriedades do campo

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

Exemplo de definição de política

Esta definição de política permite definir regiões permitidas que atendem aos requisitos de geolocalização 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 de campo é usado três vezes dentro do operador lógico allOf.

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

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

Próximos passos