Padrão do Azure Policy: propriedades de campo
O operador de campo avalia a propriedade especificada ou alias para um valor fornecido para uma determinada condição.
Definição de política de amostra
Essa definição de política permite definir regiões permitidas que atendem aos requisitos de localização geográfica da sua organização. Os recursos permitidos são definidos no parâmetro listOfAllowedLocations (matriz). Os recursos que correspondem à definição são negados.
{
"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"
}
}
}
}
Explicação
"if": {
"allOf": [{
"field": "location",
"notIn": "[parameters('listOfAllowedLocations')]"
},
{
"field": "location",
"notEquals": "global"
},
{
"field": "type",
"notEquals": "Microsoft.AzureActiveDirectory/b2cDirectories"
}
]
},
"then": {
"effect": "Deny"
}
}
O operador campo é usado três vezes dentro do operador lógico allOf.
- O primeiro uso avalia a propriedade
location
com a condição de notIn para o parâmetro listOfAllowedLocations. notIn funciona como se espera de uma matriz e o parâmetro é uma matriz. Se olocation
do recurso criado ou atualizado não estiver na lista aprovada, esse elemento será avaliado como true. - O segundo uso também avalia a propriedade
location
, mas usa a condição de notEquals para ver se o recurso é global. Se olocation
do recurso criado ou atualizado não for global, esse elemento será avaliado como true. - O último uso avalia a propriedade
type
e usa a condição notEquals para validar o tipo de recurso que não é Microsoft.AzureActiveDirectory/b2cDirectories . Se não for, esse elemento será avaliado como true.
Se todas as três instruções de condição no operador lógico allOf forem avaliadas como true, a criação ou atualização de recurso será bloqueada pela Política do Azure.
Próximas etapas
- Revise outros padrões e definições internas.
- Revise a estrutura de definição do Azure Policy.
- Revisar Compreendendo os efeitos da política.