Azure Policy minta: mezőtulajdonságok

A mezőoperátor egy adott feltétel megadott értékére értékeli ki a megadott tulajdonságot vagy aliast.

Mintaszabályzat-definíció

Ez a szabályzatdefiníció lehetővé teszi olyan engedélyezett régiók meghatározását, amelyek megfelelnek a szervezet földrajzi helyére vonatkozó követelményeknek. Az engedélyezett erőforrásokat a listOfAllowedLocations (tömb) paraméter határozza meg. A definíciónak megfelelő erőforrásokat a rendszer megtagadja.

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

Magyarázat

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

A mezőoperátort háromszor használja a rendszer az allOflogikai operátoron belül.

  • Az első használat a notIn feltétellel kiértékeli a location tulajdonságot a listOfAllowedLocations paraméterre. A notIn úgy működik, ahogyan egy tömböt vár, és a paraméter egy tömb. Ha a location létrehozott vagy frissített erőforrás nem szerepel a jóváhagyott listában, ez az elem igaz értéket ad vissza.
  • A második használat szintén kiértékeli a location tulajdonságot, de a notEquals feltételt használja annak megtekintéséhez, hogy az erőforrás globális-e. Ha a location létrehozott vagy frissített erőforrás nem globális, ez az elem igaz értéket ad vissza.
  • Az utolsó használat kiértékeli a type tulajdonságot, és a notEquals feltételt használja annak ellenőrzéséhez, hogy az erőforrástípus nem Microsoft.AzureActiveDirectory/b2cDirectories-e. Ha nem, ez az elem igaz értéket ad vissza.

Ha az allOf logikai operátor mindhárom feltétel-utasítása igaz értéket ad, az erőforrás létrehozását vagy frissítését a Azure Policy blokkolja.

Következő lépések