Patrón de Azure Policy: propiedades field
El operador field evalúa la propiedad especificada o alias con un valor proporcionado para una condición determinada.
Definición de directiva de ejemplo
Esta definición de directiva le permite definir regiones permitidas que cumplan los requisitos de ubicación geográfica de la organización. Los recursos permitidos se definen en el parámetro listOfAllowedLocations (matriz). Los recursos que coinciden con la definición se deniegan.
{
"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"
}
}
}
}
Explicación
"if": {
"allOf": [{
"field": "location",
"notIn": "[parameters('listOfAllowedLocations')]"
},
{
"field": "location",
"notEquals": "global"
},
{
"field": "type",
"notEquals": "Microsoft.AzureActiveDirectory/b2cDirectories"
}
]
},
"then": {
"effect": "Deny"
}
}
El operador field se utiliza tres veces dentro del operador lógico allOf.
- El primer uso evalúa la propiedad
location
con la condición notIn con el parámetro listOfAllowedLocations. notIn funciona como si esperase una matriz y el parámetro es una matriz. Si el valor delocation
del recurso creado o actualizado no está en la lista de aprobados, este elemento se evalúa como verdadero. - El segundo uso también evalúa la propiedad
location
, pero utiliza la condición notEquals para ver si el recurso es global. Si el valor delocation
del recurso creado o actualizado no es global, este elemento se evalúa como verdadero. - El último uso evalúa la propiedad
type
y usa la condición notEquals para validar que el tipo de recurso no es Microsoft.AzureActiveDirectory/b2cDirectories. Si no lo es, este elemento se evalúa como verdadero.
Si las tres instrucciones de condición del operador lógico allOf se evalúan como verdaderas, Azure Policy bloquea la creación o actualización del recurso.
Pasos siguientes
- Consulte otros patrones y definiciones integradas.
- Revise la estructura de definición de Azure Policy.
- Vea la Descripción de los efectos de directivas.