Wzorzec usługi Azure Policy: właściwości pola

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

Przykładowa definicja zasad

Ta definicja zasad umożliwia zdefiniowanie dozwolonych regionów spełniających wymagania organizacji dotyczące lokalizacji geograficznej. Dozwolone zasoby są definiowane na liście parametrów 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 logicznego allOf.

  • 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 daje wartość true.
  • Drugie użycie ocenia 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 , aby sprawdzić, 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 usługę Azure Policy.

Następne kroki