Azure Policy mönster: fältegenskaper

Fältoperatorn utvärderar den angivna egenskapen eller aliaset till ett angivet värde för ett angivet villkor.

Exempel på principdefinition

Med den här principdefinitionen kan du definiera tillåtna regioner som uppfyller organisationens geoplatskrav. De tillåtna resurserna definieras i parameterlistanOfAllowedLocations (matris). Resurser som matchar definitionen nekas.

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

Förklaring

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

Fältoperatorn används tre gånger inom den logiska operatornallOf.

  • Den första användningen utvärderar location egenskapen med villkoret notIn till parametern listOfAllowedLocations . notIn fungerar som den förväntar sig en matris och parametern är en matris. Om den skapade eller uppdaterade resursen location inte finns i den godkända listan utvärderas det här elementet till sant.
  • Den andra användningen utvärderar location också egenskapen, men använder villkoret notEquals för att se om resursen är global. Om den skapade eller uppdaterade resursen location inte är global utvärderas det här elementet till sant.
  • Den senaste användningen utvärderar type egenskapen och använder villkoret notEquals för att verifiera att resurstypen inte är Microsoft.AzureActiveDirectory/b2cDirectories. Om det inte är det utvärderas det här elementet till sant.

Om alla tre villkorssatserna i den logiska operatorn allOf utvärderar sant blockeras resursskapandet eller uppdateringen av Azure Policy.

Nästa steg