Auswirkung „denyAction“ von Azure Policy-Definitionen

Die Auswirkung denyAction wird verwendet, um Anforderungen basierend auf der beabsichtigten Aktion für Ressourcen im großen Stil zu blockieren. Die einzige unterstützte Aktion ist derzeit DELETE. Dieser Effekt und die Bezeichnung der Aktion tragen dazu bei, ein versehentliches Löschen wichtiger Ressourcen zu verhindern.

Auswertung von DenyAction

Wenn eine Anforderung mit einem zutreffenden Aktionsnamen und einem bestimmten Bereich aufgerufen wird, verhindert denyAction den Erfolg der Anforderung. Für die Anforderung wird 403 (Forbidden) zurückgegeben. Im Portal kann Forbidden als ein Bereitstellungsstatus angezeigt werden, der durch die Richtlinienzuweisung verhindert wurde.

Microsoft.Authorization/policyAssignments, Microsoft.Authorization/denyAssignments, Microsoft.Blueprint/blueprintAssignments, Microsoft.Resources/deploymentStacks, Microsoft.Resources/subscriptions und Microsoft.Authorization/locks sind alle von der Erzwingung von denyAction ausgenommen, um Sperrszenarien zu verhindern.

Löschen eines Abonnements

Durch die Richtlinie wird die Entfernung von Ressourcen beim Löschen von Abonnements nicht blockiert.

Löschen einer Ressourcengruppe

Während der Löschung einer Ressourcengruppe wertet die Richtlinie Ressourcen, die Standort und Tags unterstützen, anhand von denyAction-Richtlinien aus. Nur Richtlinien, bei denen in der Richtlinienregel cascadeBehaviors auf deny festgelegt ist, blockieren das Löschen von Ressourcengruppen. Die Richtlinie blockiert weder das Entfernen von Ressourcen, die keinen Standort und keine Tags unterstützen, noch Richtlinien mit mode:all.

Kaskadierendes DELETE

Kaskadierendes DELETE erfolgt, wenn beim Löschen einer übergeordneten Ressource alle ihre untergeordneten Ressourcen und Erweiterungsressourcen implizit gelöscht werden. Durch die Richtlinie wird das Entfernen von untergeordneten Ressourcen und Erweiterungsressourcen nicht blockiert, wenn eine Löschaktion auf die übergeordneten Ressourcen abzielt. Microsoft.Insights/diagnosticSettings ist beispielsweise eine Erweiterungsressource von Microsoft.Storage/storageaccounts. Wenn die Richtlinie denyAction auf Microsoft.Insights/diagnosticSettings abzielt, schlägt ein Löschaufruf für die Diagnoseeinstellung (untergeordnet) fehl, aber bei einem Löschvorgang für das Speicherkonto (übergeordnet) wird die Diagnoseeinstellung (Erweiterung) implizit gelöscht.

In dieser Tabelle wird beschrieben, ob eine Ressource vor Löschung geschützt wird, wenn die Ressource der zugewiesenen Richtlinie denyAction und dem Zielbereich des Aufrufs von DELETE entspricht. Im Kontext dieser Tabelle ist eine indizierte Ressource eine Ressource, die Tags und Speicherorte unterstützt, und eine nicht indizierte Ressource ist eine Ressource, die weder Tags noch Speicherorte unterstützt. Weitere Informationen zu indizierten und nicht indizierten Ressourcen finden Sie unter Definitionsmodi. Untergeordnete Ressourcen sind Ressourcen, die nur im Kontext einer anderen Ressource verfügbar sind. Beispielsweise ist eine VM-Erweiterungsressource ein untergeordnetes Element der VM, die als übergeordnete Ressource fungiert.

Gelöschte Entität Richtlinienbedingungen unterliegende Entität Ausgeführte Aktion
Resource Resource Protected
Subscription Resource Deleted
Resource group Indizierte Ressource Abhängig voncascadeBehaviors
Resource group Nicht indizierte Ressource Deleted
Untergeordnete Ressource Übergeordnete Ressource Übergeordnetes Element wird geschützt, untergeordnetes Element wird gelöscht
Übergeordnete Ressource Untergeordnete Ressource Deleted

DenyAction-Eigenschaften

Die Eigenschaft details der Auswirkung denyAction umfasst alle Untereigenschaften zur Definition von Aktion und Verhalten.

  • actionNames (erforderlich)
    • Ein Array, das angibt, welche Aktionen verhindert werden sollen.
    • Unterstützte Aktionsnamen: delete.
  • cascadeBehaviors (optional)
    • Ein Objekt, das definiert, welches Verhalten eingehalten wird, wenn eine Ressource beim Entfernen einer Ressourcengruppe implizit gelöscht wird.
    • Wird nur in Richtliniendefinitionen unterstützt, bei denen der Modus (mode) auf indexed festgelegt ist.
    • Zulässige Werte: allow und deny.
    • Der Standardwert ist deny.

Beispiel für DenyAction

Beispiel: Verweigern aller Löschaufrufe für Datenbankkonten mit einer Umgebung des Typs „tag“, die „prod“ entspricht. Da das kaskadierende Verhalten auf „Deny“ festgelegt ist, werden alle DELETE-Aufrufe blockiert, die auf eine Ressourcengruppe mit einem entsprechenden Datenbankkonto abzielen.

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

Nächste Schritte