Efeito denyAction das definições do Azure Policy
O efeito denyAction
é usado para bloquear solicitações com base na ação pretendida para recursos em escala. No momento, a única ação compatível é DELETE
. Esse efeito e o nome da ação ajudam a evitar qualquer exclusão acidental de recursos críticos.
Avaliação de DenyAction
Quando uma chamada de solicitação com um nome de ação aplicável e escopo de destino é enviada, denyAction
impede que a solicitação seja bem-sucedida. A solicitação é retornada como um 403 (Forbidden)
. No portal, Forbidden
pode ser exibido como um status de implantação que foi impedido pela atribuição de política.
Microsoft.Authorization/policyAssignments
, Microsoft.Authorization/denyAssignments
, Microsoft.Blueprint/blueprintAssignments
, Microsoft.Resources/deploymentStacks
, Microsoft.Resources/subscriptions
e Microsoft.Authorization/locks
são todos isentos da imposição de denyAction
para evitar cenários de bloqueio.
Exclusão de assinatura
A política não bloqueará a remoção de recursos que ocorre durante uma exclusão de assinatura.
Exclusão do grupo de recursos
A política avaliará os recursos compatíveis com a localização e as marcas em relação a políticas denyAction
durante uma exclusão do grupo de recursos. Somente as políticas que têm o cascadeBehaviors
definido como deny
na regra de política bloquearão uma exclusão do grupo de recursos. A política não bloqueará a remoção de recursos incompatíveis com a localização e as marcas nem qualquer política com mode:all
.
Exclusão em cascata
A exclusão em cascata ocorre quando a exclusão de um recurso pai exclui implicitamente todos os seus recursos filho e de extensão. A política não bloqueará a remoção de recursos filho e de extensão quando uma ação de exclusão for direcionada aos recursos pai. Por exemplo, Microsoft.Insights/diagnosticSettings
é um recurso de extensão de Microsoft.Storage/storageaccounts
. Se uma política denyAction
for direcionada a Microsoft.Insights/diagnosticSettings
, uma chamada de exclusão para a configuração de diagnóstico (filho) falhará, mas uma exclusão para a conta de armazenamento (pai) excluirá implicitamente a configuração de diagnóstico (extensão).
Esta tabela descreve se um recurso está protegido contra exclusão, considerando o recurso aplicável à política denyAction
atribuída e o escopo de destino da chamada DELETE
. No contexto dessa tabela, um recurso indexado dá suporte a marcas e locais, e um recurso não indexado não dá suporte a marcas ou locais. Para obter mais informações sobre recursos indexados e não indexados, acesse modo de definição. Recursos filho são recursos que existem apenas no contexto de outro recurso. Por exemplo, um recurso de extensão de máquinas virtuais é filho da máquina virtual, que é o recurso pai.
Entidade sendo excluída | Entidade aplicável às condições de política | Ação executada |
---|---|---|
Recurso | Recurso | Protegido |
Subscription | Recurso | Excluído |
Grupo de recursos | Recurso indexado | Depende de cascadeBehaviors |
Grupo de recursos | Recurso não indexado | Excluído |
Recurso filho | Recurso pai | O pai está protegido; o filho é excluído |
Recurso pai | Recurso filho | Excluído |
Propriedades DenyAction
A propriedade details
do efeito denyAction
tem todas as subpropriedades que definem a ação e os comportamentos.
actionNames
(obrigatório)- Uma matriz que especifica quais ações impedir que sejam executadas.
- Os nomes de ação com suporte são:
delete
.
cascadeBehaviors
(opcional)- Um objeto que define qual comportamento é seguido quando um recurso é excluído implicitamente quando um grupo de recursos é removido.
- Há suporte apenas para definições de política com o modo definido como
indexed
. - Os valores permitidos são:
allow
oudeny
. - O valor padrão é
deny
.
Exemplo de DenyAction
Exemplo: negar todas as chamadas de exclusão direcionadas a contas de banco de dados que tenham um ambiente de marca que seja igual a prod. Como o comportamento em cascata é definido como deny, bloqueie qualquer chamada DELETE
direcionada a um grupo de recursos com uma conta de banco de dados aplicável.
{
"if": {
"allOf": [
{
"field": "type",
"equals": "Microsoft.DocumentDb/accounts"
},
{
"field": "tags.environment",
"equals": "prod"
}
]
},
"then": {
"effect": "denyAction",
"details": {
"actionNames": [
"delete"
],
"cascadeBehaviors": {
"resourceGroup": "deny"
}
}
}
}
Próximas etapas
- Examine os exemplos em amostras do Azure Policy.
- Revise 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 fora de conformidade.
- Revisar os Grupos de gerenciamento do Azure.