Effet denyAction des définitions Azure Policy

L’effet denyAction est utilisé pour bloquer des demandes en fonction de l’action prévue sur des ressources à l’échelle. La seule action prise en charge aujourd’hui est DELETE. Cet effet et ce nom d’action permet d’éviter toute suppression accidentelle de ressources critiques.

Évaluation DenyAction

Lorsqu’un appel de demande avec un nom d’action applicable et une étendue ciblée est envoyé, denyAction empêche la demande de réussir. La requête renvoie une erreur 403 (Forbidden). Dans le portail, vous pouvez voir le Forbidden comme un état de déploiement qui a été empêché par l’attribution de stratégie.

Microsoft.Authorization/policyAssignments, Microsoft.Authorization/denyAssignments, Microsoft.Blueprint/blueprintAssignments, Microsoft.Resources/deploymentStacks, Microsoft.Resources/subscriptions et Microsoft.Authorization/locks sont tous exemptés de l’application denyAction pour empêcher les scénarios de verrouillage.

Suppression de l’abonnement

La stratégie ne bloque pas la suppression des ressources qui se produit lors d’une suppression d’abonnement.

Suppression du groupe de ressources

La stratégie évalue les ressources qui prennent en charge l’emplacement et les balises par rapport aux denyAction stratégies lors d’une suppression de groupe de ressources. Seules les stratégies qui ont la cascadeBehaviors valeur définie deny sur dans la règle de stratégie bloquent la suppression d’un groupe de ressources. La stratégie ne bloque pas la suppression des ressources qui ne prennent pas en charge l’emplacement et les balises, ni aucune stratégie avec mode:all.

Suppression en cascade

La suppression en cascade se produit lorsque la suppression d’une ressource parente supprime implicitement toutes ses ressources d’extension et enfants. La stratégie ne bloque pas la suppression des ressources d’extension et enfants lorsqu’une action de suppression cible les ressources parentes. Par exemple, Microsoft.Insights/diagnosticSettings est une ressource d’extension de Microsoft.Storage/storageaccounts. Si une stratégie denyAction cible Microsoft.Insights/diagnosticSettings, un appel de suppression au paramètre de diagnostic (enfant) échoue, mais une suppression du compte de stockage (parent) supprime implicitement le paramètre de diagnostic (enfant).

Ce tableau indique si une ressource est protégée contre la suppression compte tenu de la ressource applicable à la stratégie denyAction attribuée et de l’étendue ciblée de l’appel DELETE. Dans le contexte de cette table, une ressource indexée est une ressource qui prend en charge les balises et les emplacements, et une ressource non indexée est une ressource qui ne prend pas en charge les étiquettes ou les emplacements. Pour plus d’informations sur les ressources indexées et non indexées, accédez aux modes de définition. Les ressources enfants sont des ressources qui existent uniquement dans le contexte d’une autre ressource. Par exemple, une ressource d’extension de machines virtuelles est un enfant de la machine virtuelle, qui est la ressource parente.

Entité en cours de suppression Entité applicable aux conditions de stratégie Action entreprise
Ressource Ressource Protected
Abonnement Ressource Deleted
Resource group Ressource indexée Dépend de cascadeBehaviors
Resource group Ressource non indexée Deleted
Ressource enfant Ressource parent Le parent est protégé ; l’enfant est supprimé
Ressource parent Ressource enfant Deleted

Propriétés DenyAction

La propriété details de l’effet denyAction comporte toutes les sous-propriétés qui définissent l’action et les comportements.

  • actionNames (requis)
    • Tableau qui spécifie les actions à empêcher d’être exécutées.
    • Voici les noms d’action pris en charge : delete.
  • cascadeBehaviors (facultatif)
    • Un objet qui permet de définir le comportement suivi quand une ressource est implicitement supprimée lors de la suppression d’un groupe de ressources.
    • Pris en charge uniquement dans les définitions de stratégie avec le mode défini sur indexed.
    • Valeurs autorisées : allow ou deny.
    • La valeur par défaut est deny.

Exemple DenyAction

Exemple : refusez tout appel de suppression ciblant des comptes de base de données dont l’environnement de balise est égal à prod. Étant donné que le comportement en cascade est défini sur deny, bloquez tout appel DELETE qui cible un groupe de ressources avec un compte de base de données applicable.

{
  "if": {
    "allOf": [
      {
        "field": "type",
        "equals": "Microsoft.DocumentDb/accounts"
      },
      {
        "field": "tags.environment",
        "equals": "prod"
      }
    ]
  },
  "then": {
    "effect": "denyAction",
    "details": {
      "actionNames": [
        "delete"
      ],
      "cascadeBehaviors": {
        "resourceGroup": "deny"
      }
    }
  }
}

Étapes suivantes