Partager via


Modèle Azure Policy : Propriétés de champs

L’opérateur field évalue l’alias ou la propriété spécifié(e) par rapport à une valeur fournie pour une condition donnée.

Exemple de définition de stratégie

Cette définition de stratégie vous permet de définir des régions autorisées qui répondent aux exigences de géolocalisation de votre organisation. Les ressources autorisées sont définies dans le paramètre listOfAllowedLocations (array). Les ressources qui correspondent à la définition sont refusées.

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

Explication

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

L’opérateur field est utilisé trois fois dans l’opérateur logique allOf.

  • La première utilisation évalue la propriété location avec la condition notIn pour le paramètre listOfAllowedLocations. notIn fonctionne, car elle attend un tableau (array) et le paramètre en est un. Si le location de la ressource créée ou mise à jour ne figure pas dans la liste approuvée, cet élément prend la valeur true.
  • La deuxième utilisation évalue également la propriété location, mais utilise la condition notEquals pour vérifier si la ressource est globale. Si le location de la ressource créée ou mise à jour n’est pas global, cet élément prend la valeur true.
  • La dernière utilisation évalue la propriété type et utilise la condition notEquals pour valider le fait que le type de ressource n’est pas Microsoft. AzureActiveDirectory/b2cDirectories. Si ce n’est pas le cas, cet élément prend la valeur true.

Si les trois instructions de condition de l’opérateur logique allOf sont évaluées à la valeur true, la création ou la mise à jour de ressource est bloquée par Azure Policy.

Étapes suivantes