Partilhar via


Azure Policy definitions denyAction effect

O denyAction efeito é usado para bloquear solicitações com base na ação pretendida para recursos em escala. A única ação apoiada atualmente é DELETEa . Esse efeito e nome de ação ajuda 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 direcionado é enviada, denyAction impede que a solicitação seja bem-sucedida. A solicitação é retornada como um 403 (Forbidden)arquivo . No portal, o Forbidden pode ser visto 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/subscriptionse Microsoft.Authorization/locks todos estão isentos de aplicação para evitar cenários de denyAction bloqueio.

Eliminação da subscrição

A política não bloqueia a remoção de recursos que acontece durante a exclusão de uma assinatura.

Exclusão de grupo de recursos

A política avalia os recursos que oferecem suporte à localização e às tags em relação às denyAction políticas durante a exclusão de um grupo de recursos. Somente as cascadeBehaviors políticas definidas como deny na regra de política bloqueiam a exclusão de um grupo de recursos. A política não bloqueia a remoção de recursos que não suportam localização e etiquetas, nem qualquer política com mode:allo .

Eliminação em cascata

A exclusão em cascata ocorre quando a exclusão de um recurso pai é implicitamente excluída todos os seus recursos filho e de extensão. A política não bloqueia a remoção de recursos filho e de extensão quando uma ação de exclusão tem como alvo os recursos pai. Por exemplo, Microsoft.Insights/diagnosticSettings é um recurso de extensão de Microsoft.Storage/storageaccounts. Se uma denyAction política tiver como destino 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, dado o recurso aplicável à política atribuída denyAction e o escopo de destino da DELETE chamada. No contexto desta tabela, um recurso indexado é aquele que suporta tags e locais e um recurso não indexado é aquele que não suporta tags ou locais. Para obter mais informações sobre recursos indexados e não indexados, vá para o 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 a ser eliminada Entidade aplicável às condições da apólice Medidas tomadas
Recurso Recurso Protegido
Subscrição Recurso Eliminado
Grupo de recursos Recurso indexado Depende de cascadeBehaviors
Grupo de recursos Recurso não indexado Eliminado
Recurso filho Recurso pai O progenitor está protegido; criança é excluída
Recurso pai Recurso filho Eliminado

Propriedades DenyAction

A details propriedade do denyAction efeito tem todas as subpropriedades que definem a ação e os comportamentos.

  • actionNames (obrigatório)
    • Uma matriz que especifica quais ações impedir de serem executadas.
    • Os nomes das ações suportadas são: delete.
  • cascadeBehaviors (facultativo)
    • Um objeto que define qual comportamento é seguido quando um recurso é excluído implicitamente quando um grupo de recursos é removido.
    • Suportado apenas em definições de política com o modo definido como indexed.
    • Os valores permitidos são allow ou deny.
    • O valor predefinido é deny.

Exemplo de DenyAction

Exemplo: Negar qualquer chamada de exclusão direcionada a contas de banco de dados que tenham um ambiente de tags igual a prod. Como o comportamento em cascata está definido como negar, bloqueie qualquer DELETE chamada 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óximos passos