Freigeben über


Azure Policy-Muster: Feldeigenschaften

Der Operator field wertet die angegebene Eigenschaft oder den angegebenen Alias für einen bereitgestellten Wert aus, um eine bestimmte Bedingung zu untersuchen.

Beispielrichtliniendefinition

Mit der folgenden Richtliniendefinition können Sie zulässige Regionen definieren, die die Anforderungen Ihrer Organisation im Zusammenhang mit geografischen Standorten erfüllen. Die zulässigen Ressourcen werden im Parameter listOfAllowedLocations (array) definiert. Ressourcen, die der Definition entsprechen, werden abgelehnt.

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

Erklärung

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

Der Operator field wird dreimal innerhalb des logischen Operators allOf verwendet.

  • Das erste Vorkommen wertet die Eigenschaft location mit der Bedingung notIn für den Parameter listOfAllowedLocations aus. notIn funktioniert, da ein Array erwartet wird und es sich bei dem Parameter um ein Array handelt. Wenn sich der Standort (location) der erstellten oder aktualisierten Ressource nicht in der genehmigten Liste befindet, wird dieses Element als „true“ ausgewertet.
  • Das zweite Vorkommen wertet ebenfalls die Eigenschaft location aus, verwendet jedoch die Bedingung notEquals, um zu ermitteln, ob die Ressource global ist. Wenn der Standort (location) der erstellten oder aktualisierten Ressource nicht global ist, wird dieses Element als „true“ ausgewertet.
  • Das letzte Vorkommen wertet die Eigenschaft type aus und verwendet die Bedingung notEquals, um sicherzustellen, dass der Ressourcentyp nicht Microsoft.AzureActiveDirectory/b2cDirectories lautet. Ist dies nicht der Fall, wird das Element als „true“ ausgewertet.

Wenn alle drei Bedingungsanweisungen im logischen Operator allOf als „true“ ausgewertet werden, wird die Ressourcenerstellung oder -aktualisierung von Azure Policy blockiert.

Nächste Schritte