Modello di Criteri di Azure: proprietà field

L'operatore field valuta la proprietà specificata o alias in base a un valore fornito per una determinata condizione.

Definizione di criteri di esempio

Questa definizione di criteri consente di definire le aree consentite che soddisfano i requisiti di posizione geografica dell'organizzazione. Le risorse consentite sono definite nel parametro listOfAllowedLocations (matrice). Le risorse che corrispondono alla definizione vengono negate.

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

Spiegazione

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

L'operatore field viene usato tre volte all'interno dell'operatore logicoallOf.

  • Il primo uso valuta la proprietà location con la condizione notIn per il parametro listOfAllowedLocations. notIn funziona perché si aspetta una matrice e il parametro è una matrice. Se la proprietà location della risorsa creata o aggiornata non è inclusa nell'elenco approvato, questo elemento restituisce true.
  • Anche il secondo uso valuta la proprietà location, ma applica la condizione notEquals per verificare se la risorsa è globale. Se la proprietà location della risorsa creata o aggiornata non è globale, questo elemento restituisce true.
  • L'ultimo uso valuta la proprietà type e applica la condizione notEquals per verificare che il tipo di risorsa non è Microsoft.AzureActiveDirectory/b2cDirectories. Se non lo è, questo elemento restituisce true.

Se tutte e tre le istruzioni condizionali dell'operatore logico allOf restituiscono ture, la creazione o l'aggiornamento della risorsa viene bloccato da Criteri di Azure.

Passaggi successivi