wzorzec Azure Policy: właściwości pola

Operator pola ocenia określoną właściwość lub alias na podaną wartość dla danego warunku.

Przykładowa definicja zasad

Ta definicja zasad umożliwia zdefiniowanie dozwolonych regionów spełniających wymagania dotyczące lokalizacji geograficznej organizacji. Dozwolone zasoby są definiowane w parametrach listOfAllowedLocations (tablica). Zasoby zgodne z definicją są odrzucane.

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

Wyjaśnienie

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

Operator pola jest używany trzy razy w obrębie operatora logicznegoallOf.

  • Pierwsze użycie oblicza location właściwość z warunkiem notIn do parametru listOfAllowedLocations . notIn działa zgodnie z oczekiwaniami tablicy , a parametr jest tablicą. Jeśli element location utworzonego lub zaktualizowanego zasobu nie znajduje się na liście zatwierdzonych, ten element zwróci wartość true.
  • Drugie użycie oblicza location również właściwość , ale używa warunku notEquals , aby sprawdzić, czy zasób jest globalny. Jeśli element location utworzonego lub zaktualizowanego zasobu nie jest globalny, ten element daje wartość true.
  • Ostatnie użycie ocenia type właściwość i używa warunku notEquals do sprawdzania, czy typ zasobu nie jest microsoft.AzureActiveDirectory/b2cDirectories. Jeśli tak nie jest, ten element daje wartość true.

Jeśli wszystkie trzy instrukcje warunku w operatorze logicznym allOf mają wartość true, tworzenie lub aktualizowanie zasobów jest blokowane przez Azure Policy.

Następne kroki