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
unddeny
. - 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
- Sehen Sie sich die Beispiele unter Azure Policy-Beispiele an.
- Lesen Sie die Informationen unter Struktur von Azure Policy-Definitionen.
- Informieren Sie sich über das programmgesteuerte Erstellen von Richtlinien.
- Informieren Sie sich über das Abrufen von Konformitätsdaten.
- Erfahren Sie, wie Sie nicht konforme Ressourcen korrigieren können.
- Lesen Sie den Artikel zu Azure-Verwaltungsgruppen.