Azure Policy padrão: propriedades do campo

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

Definição de política de exemplo

Esta definição de política permite-lhe definir regiões permitidas que cumprem os requisitos de geolocalização da sua organização. Os recursos permitidos são definidos na lista de parâmetrosOfAllowedLocations (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 é utilizado três vezes no operador lógicoallOf.

  • A primeira utilização 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, este elemento é avaliado como verdadeiro.
  • A segunda utilização também avalia a location propriedade, mas utiliza a condição notEquals para ver se o recurso é global. Se o location recurso criado ou atualizado não for global, este elemento é avaliado como verdadeiro.
  • A última utilização avalia a type propriedade e utiliza 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 as três instruções de condição no operador lógico allOf forem avaliadas como verdadeiras, a criação ou atualização de recursos será bloqueada por Azure Policy.

Passos seguintes