Efeito auditIfNotExists de definições de Política do Azure
O auditIfNotExists
efeito permite a auditoria de recursos relacionados ao recurso que corresponde à if
condição, mas não têm as propriedades especificadas no details
da then
condição.
Avaliação AuditIfNotExists
auditIfNotExists
é executado depois que um Provedor de Recursos processou uma solicitação de recurso de criação ou atualização e retornou um código de status de sucesso. A auditoria ocorre se não houver recursos relacionados ou se os recursos definidos por ExistenceCondition
não forem avaliados como verdadeiros. Para recursos novos e atualizados, a Política do Azure adiciona uma Microsoft.Authorization/policies/audit/action
operação ao log de atividades e marca o recurso como não compatível. Quando acionado, o recurso que satisfez a if
condição é o recurso marcado como não compatível.
Propriedades AuditIfNotExists
A details
propriedade dos efeitos AuditIfNotExists tem todas as subpropriedades que definem os recursos relacionados a serem correspondidos.
type
(obrigatório)- Especifica o tipo do recurso relacionado a ser correspondido.
- Se
type
for um tipo de recurso abaixo doif
recurso de condição, a política consultará recursos destetype
dentro do escopo do recurso avaliado. Caso contrário, as consultas de política dentro do mesmo grupo de recursos ou assinatura que o recurso avaliado, dependendo doexistenceScope
.
name
(facultativo)- Especifica o nome exato do recurso a ser correspondido e faz com que a política busque um recurso específico em vez de todos os recursos do tipo especificado.
- Quando os valores de condição para
if.field.type
ethen.details.type
correspondem, entãoname
torna-se necessário e deve ser[field('name')]
, ou[field('fullName')]
para um recurso filho. No entanto, deve ser considerado um efeito de auditoria .
Nota
type
e name
segmentos podem ser combinados para recuperar genericamente recursos aninhados.
Para recuperar um recurso específico, você pode usar "type": "Microsoft.ExampleProvider/exampleParentType/exampleNestedType"
e "name": "parentResourceName/nestedResourceName"
.
Para recuperar uma coleção de recursos aninhados, um caractere ?
curinga pode ser fornecido no lugar do segmento de sobrenome. Por exemplo, "type": "Microsoft.ExampleProvider/exampleParentType/exampleNestedType"
e "name": "parentResourceName/?"
. Isso pode ser combinado com funções de campo para acessar recursos relacionados ao recurso avaliado, como "name": "[concat(field('name'), '/?')]"
."
resourceGroupName
(facultativo)- Permite que a correspondência do recurso relacionado venha de um grupo de recursos diferente.
- Não se aplica se
type
for um recurso que estaria abaixo doif
recurso de condição. - O padrão é o
if
grupo de recursos do recurso de condição.
existenceScope
(facultativo)- Os valores permitidos são Subscription e ResourceGroup.
- Define o escopo de onde buscar o recurso relacionado a ser correspondido.
- Não se aplica se
type
for um recurso que estaria abaixo doif
recurso de condição. - Para ResourceGroup, limitaria ao grupo de recursos em
resourceGroupName
se especificado. SeresourceGroupName
não for especificado, limitará aoif
grupo de recursos do recurso de condição, que é o comportamento padrão. - Para Assinatura, consulta toda a assinatura para o recurso relacionado. O escopo da atribuição deve ser definido como assinatura ou superior para uma avaliação adequada.
- O padrão é ResourceGroup.
evaluationDelay
(facultativo)- Especifica quando a existência dos recursos relacionados deve ser avaliada. O atraso é usado apenas para avaliações que são resultado de uma solicitação de recurso de criação ou atualização.
- Os valores permitidos são
AfterProvisioning
,AfterProvisioningSuccess
,AfterProvisioningFailure
, ou uma duração ISO 8601 entre 0 e 360 minutos. - Os valores AfterProvisioning inspecionam o resultado do provisionamento do recurso que foi avaliado na condição da regra de
if
política.AfterProvisioning
é executado após a conclusão do provisionamento, independentemente do resultado. O provisionamento que leva mais de seis horas é tratado como uma falha ao determinar atrasos na avaliação do AfterProvisioning . - O padrão é
PT10M
(10 minutos). - Especificar um longo atraso de avaliação pode fazer com que o estado de conformidade registrado do recurso não seja atualizado até o próximo gatilho de avaliação.
existenceCondition
(facultativo)- Se não for especificado, qualquer recurso relacionado de
type
satisfaz o efeito e não aciona a auditoria. - Usa a mesma linguagem que a regra de política para a
if
condição, mas é avaliado em relação a cada recurso relacionado individualmente. - Se qualquer recurso relacionado correspondente for avaliado como verdadeiro, o efeito será satisfeito e não acionará a auditoria.
- Pode usar [field()] para verificar a
if
equivalência com valores na condição. - Por exemplo, pode ser usado para validar que o recurso pai (na
if
condição) está no mesmo local do recurso que o recurso relacionado correspondente.
- Se não for especificado, qualquer recurso relacionado de
Exemplo de AuditIfNotExists
Exemplo: Avalia Máquinas Virtuais para determinar se a extensão Antimalware existe e, em seguida, audita quando falta.
{
"if": {
"field": "type",
"equals": "Microsoft.Compute/virtualMachines"
},
"then": {
"effect": "auditIfNotExists",
"details": {
"type": "Microsoft.Compute/virtualMachines/extensions",
"existenceCondition": {
"allOf": [
{
"field": "Microsoft.Compute/virtualMachines/extensions/publisher",
"equals": "Microsoft.Azure.Security"
},
{
"field": "Microsoft.Compute/virtualMachines/extensions/type",
"equals": "IaaSAntimalware"
}
]
}
}
}
}
Próximos passos
- Analise exemplos em Exemplos de Política do Azure.
- Reveja a estrutura de definição do Azure Policy.
- Entenda como criar políticas de forma programática.
- Saiba como obter dados de conformidade.
- Saiba como corrigir recursos não compatíveis.
- Revise os grupos de gerenciamento do Azure.