Grundlegendes zur Ressourcensperre in Azure Blueprint
Wichtig
Am 11. Juli 2026 läuft Blueprints (Vorschau) aus. Migrieren Sie Ihre vorhandenen Blaupausendefinitionen und -zuweisungen zu Vorlagenspezifikationen und Bereitstellungsstapeln. Blaupausenartefakte müssen in ARM-JSON-Vorlagen oder Bicep-Dateien konvertiert werden, die zum Definieren von Bereitstellungsstapeln verwendet werden. Informationen zum Erstellen eines Artefakts als ARM-Ressource finden Sie unter:
Die bedarfsabhängige Erstellung konsistenter Umgebungen hat nur dann wirklich Vorteile, wenn ein Mechanismus vorhanden ist, mit dem die Wahrung der Konsistenz sichergestellt werden kann. In diesem Artikel wird beschrieben, wie das Sperren von Ressourcen in Azure Blueprint funktioniert. Im Tutorial Schützen neuer Ressourcen finden Sie ein Beispiel für Ressourcensperren und die Anwendung von Ablehnungszuweisungen.
Hinweis
Von Azure Blueprints bereitgestellte Ressourcensperren werden nur auf Ressourcen ohne Erweiterung angewendet, die durch die Blaupausenzuweisung bereitgestellt wurden. Vorhandenen Ressourcen, z. B. Ressourcen in bereits vorhandenen Ressourcengruppen, werden keine Sperren hinzugefügt.
Modi und Zustände von Sperren
Der Sperrmodus gilt für die Blaupausenzuweisung und verfügt über drei Optionen: Nicht sperren, Schreibgeschützt oder Nicht löschen. Der Sperrmodus wird konfiguriert, wenn während der Blaupausenzuweisung Artefakte bereitgestellt werden. Um einen anderen Sperrmodus festzulegen, aktualisieren Sie die Blaupausenzuweisung. Außerhalb von Azure Blueprints können Sperrmodi jedoch nicht geändert werden.
Für Ressourcen, die von Artefakten in einer Blaupausenzuweisung erstellt wurden, gibt es vier Zustände: Nicht gesperrt, Schreibgeschützt, Bearbeiten/Löschen nicht möglich oder Löschen nicht möglich. Jeder Artefakttyp kann sich im Zustand Nicht gesperrt befinden. Mithilfe der folgende Tabelle kann der Zustand einer Ressource bestimmt werden:
Mode | Artefaktressourcentyp | State | BESCHREIBUNG |
---|---|---|---|
Nicht sperren | * | Nicht gesperrt | Ressourcen werden nicht durch Azure Blueprints geschützt. Dieser Zustand wird auch für Ressourcen verwendet, die einem Ressourcengruppenartefakt mit dem Zustand Schreibgeschützt oder Nicht löschen außerhalb einer Blaupausenzuweisung hinzugefügt wurden. |
Nur Leseberechtigung | Resource group | Bearbeiten/Löschen nicht möglich | Die Ressourcengruppe ist schreibgeschützt, und alle zugehörigen Eigenschaften, mit Ausnahme von Tags, können nicht geändert werden. Ressourcen mit dem Zustand Nicht gesperrt können dieser Ressourcengruppe hinzugefügt bzw. darin verschoben, geändert oder gelöscht werden. |
Nur Leseberechtigung | Keine Ressourcengruppe | Nur Leseberechtigung | Mit Ausnahme von Tags ist die Ressource wieder Standard unveränderlich und kann nicht gelöscht oder geändert werden. |
Nicht löschen | * | Löschen nicht möglich | Die Ressourcen können geändert, aber nicht gelöscht werden. Ressourcen mit dem Zustand Nicht gesperrt können dieser Ressourcengruppe hinzugefügt bzw. darin verschoben, geändert oder gelöscht werden. |
Außerkraftsetzen von Zuständen
In der Regel kann es Benutzern mit entsprechender rollenbasierter Zugriffssteuerung in Azure (Azure RBAC) für das Abonnement (z. B. mit der Rolle „Besitzer“) gestattet werden, Änderungs- oder Löschvorgänge für beliebige Ressourcen auszuführen. Dies ist jedoch nicht der Fall, wenn Azure Blueprints im Rahmen einer Zuweisungsbereitstellung eine Sperre anwendet. Wenn die Zuweisung mit der Option Schreibgeschützt oder Nicht löschen festgelegt wurde, ist selbst der Besitzer des Abonnements nicht in der Lage, die blockierte Aktion für die geschützte Ressource auszuführen.
Diese Sicherheitsmaßnahme schützt die Konsistenz der definierten Blaupause und die Umgebung, die damit erstellt werden soll, vor versehentlichen oder programmgesteuerten Lösch- oder Änderungsvorgängen.
Zuweisen in der Verwaltungsgruppe
Die einzige Möglichkeit zum Verhindern, dass Abonnementbesitzer die Zuweisung einer Blaupause entfernen, besteht darin, die Blaupause einer Verwaltungsgruppe zuzuweisen. In diesem Szenario haben nur Besitzer der Verwaltungsgruppe die erforderlichen Berechtigungen, um die Blaupausenzuweisung zu entfernen.
Um die Blaupause einer Verwaltungsgruppe anstelle eines Abonnements zuzuweisen, ändert sich der REST-API-Aufruf so, dass er wie folgt aussieht:
PUT https://management.azure.com/providers/Microsoft.Management/managementGroups/{assignmentMG}/providers/Microsoft.Blueprint/blueprintAssignments/{assignmentName}?api-version=2018-11-01-preview
Die durch {assignmentMG}
definierte Verwaltungsgruppe muss entweder innerhalb der Verwaltungsgruppenhierarchie liegen oder dieselbe Verwaltungsgruppe sein, in der die Blaupausendefinition gespeichert ist.
Der Anforderungstext des Blaupausenauftrags sieht wie folgt aus:
{
"identity": {
"type": "SystemAssigned"
},
"location": "eastus",
"properties": {
"description": "enforce pre-defined simpleBlueprint to this XXXXXXXX subscription.",
"blueprintId": "/providers/Microsoft.Management/managementGroups/{blueprintMG}/providers/Microsoft.Blueprint/blueprints/simpleBlueprint",
"scope": "/subscriptions/{targetSubscriptionId}",
"parameters": {
"storageAccountType": {
"value": "Standard_LRS"
},
"costCenter": {
"value": "Contoso/Online/Shopping/Production"
},
"owners": {
"value": [
"johnDoe@contoso.com",
"johnsteam@contoso.com"
]
}
},
"resourceGroups": {
"storageRG": {
"name": "defaultRG",
"location": "eastus"
}
}
}
}
Der Hauptunterschied zwischen diesem Anforderungstext und einem, der einem Abonnement zugewiesen wird, ist die Eigenschaft properties.scope
. Diese erforderliche Eigenschaft muss auf das Abonnement festgelegt werden, auf das sich die Blaupausenzuweisung bezieht. Das Abonnement muss ein direktes untergeordnetes Element der Verwaltungsgruppenhierarchie sein, in der die Blaupausenzuweisung gespeichert ist.
Hinweis
Eine Blaupause, die dem Gültigkeitsbereich der Verwaltungsgruppe zugewiesen wurde, fungiert immer noch als Blaupausenzuweisung auf Abonnementebene. Der einzige Unterschied besteht darin, wo die Blaupausenzuweisung gespeichert wird, um zu verhindern, dass die Abonnementbesitzer die Zuweisung und die damit verbundenen Sperren entfernen können.
Entfernen von Sperrzuständen
Falls es erforderlich wird, eine durch eine Zuweisung geschützte Ressource zu ändern oder zu löschen, gibt es zwei Möglichkeiten.
- Aktualisieren der Blaupausenzuweisung auf den Sperrmodus Nicht sperren
- Löschen der Blaupausenzuweisung
Wenn die Zuweisung entfernt wird, werden auch die von Azure Blueprints erstellten Sperren entfernt. Die Ressource bleibt jedoch zurück und muss auf herkömmliche Weise gelöscht werden.
Funktionsweise von Blaupausensperren
Eine Ablehnungsaktion im Rahmen von Azure RBAC-Ablehnungszuweisungen wird während der Zuweisung einer Blaupause auf Artefaktressourcen angewendet, wenn für die Zuweisung die Option Schreibgeschützt oder Nicht löschen ausgewählt wurde. Die Ablehnungsaktion wird von der verwalteten Identität der Blaupausenzuweisung hinzugefügt und kann nur von derselben verwalteten Identität aus den Artefaktressourcen entfernt werden. Diese Sicherheitsmaßnahme erzwingt den Sperrmechanismus und verhindert die Aufhebung der Blaupausensperre außerhalb von Azure Blueprints.
Die Eigenschaften von Ablehnungszuweisungen der einzelnen Modi lauten wie folgt:
Mode | Permissions.Actions | Permissions.NotActions | Principals[i].Type | ExcludePrincipals[i].Id | DoNotApplyToChildScopes |
---|---|---|---|---|---|
Nur Leseberechtigung | * | */read Microsoft.Authorization/locks/delete Microsoft.Network/virtualNetwork/subnets/join/action |
SystemDefined (Alle) | Blaupausenzuweisung und benutzerdefiniert in excludedPrincipals | Ressourcengruppe – true; Ressource – false |
Nicht löschen | */delete | Microsoft.Authorization/locks/delete Microsoft.Network/virtualNetwork/subnets/join/action |
SystemDefined (Alle) | Blaupausenzuweisung und benutzerdefiniert in excludedPrincipals | Ressourcengruppe – true; Ressource – false |
Wichtig
Azure Resource Manager speichert Details zu Rollenzuweisungen bis zu 30 Minuten lang zwischen. Daher sind Ablehnungsaktionen von Ablehnungszuweisungen für Blaupausenressourcen möglicherweise nicht sofort in vollem Umfang wirksam. Während dieser Zeit ist es ggf. möglich, eine Ressource zu löschen, die eigentlich durch Blaupausensperren geschützt werden sollte.
Ausschließen eines Prinzipals von einer Ablehnungszuweisung
In einigen Entwurfs- oder Sicherheitsszenarien kann es erforderlich sein, einen Prinzipal von der Ablehnungszuweisung auszuschließen, die von der Blaupausenzuweisung erstellt wird. Dieser Schritt erfolgt in REST-API durch Hinzufügen von bis zu fünf Werten zum Array excludedPrincipals in der Eigenschaft locks, wenn die Zuweisung erstellt wird. Die folgende Zuweisungsdefinition ist ein Beispiel für einen Anforderungstext, der excludedPrincipals enthält:
{
"identity": {
"type": "SystemAssigned"
},
"location": "eastus",
"properties": {
"description": "enforce pre-defined simpleBlueprint to this XXXXXXXX subscription.",
"blueprintId": "/providers/Microsoft.Management/managementGroups/{mgId}/providers/Microsoft.Blueprint/blueprints/simpleBlueprint",
"locks": {
"mode": "AllResourcesDoNotDelete",
"excludedPrincipals": [
"7be2f100-3af5-4c15-bcb7-27ee43784a1f",
"38833b56-194d-420b-90ce-cff578296714"
]
},
"parameters": {
"storageAccountType": {
"value": "Standard_LRS"
},
"costCenter": {
"value": "Contoso/Online/Shopping/Production"
},
"owners": {
"value": [
"johnDoe@contoso.com",
"johnsteam@contoso.com"
]
}
},
"resourceGroups": {
"storageRG": {
"name": "defaultRG",
"location": "eastus"
}
}
}
}
Ausschließen einer Aktion von einer Ablehnungszuweisung
Ähnlich wie beim Ausschließen eines Prinzipals von einer Ablehnungszuweisung in einer Blaupausenzuweisung können Sie auch bestimmte Vorgänge für Azure-Ressourcenanbieter ausschließen. Innerhalb des Blocks properties.locks kann an derselben Stelle, an der auch excludedPrincipals steht, ein excludedActions-Element hinzugefügt werden:
"locks": {
"mode": "AllResourcesDoNotDelete",
"excludedPrincipals": [
"7be2f100-3af5-4c15-bcb7-27ee43784a1f",
"38833b56-194d-420b-90ce-cff578296714"
],
"excludedActions": [
"Microsoft.ContainerRegistry/registries/push/write",
"Microsoft.Authorization/*/read"
]
},
Während excludedPrincipals explizit sein muss, können excludedActions-Einträge *
als Platzhalter für Vergleiche von Ressourcenanbietervorgängen verwenden.
Nächste Schritte
- Führen Sie die Schritte im Tutorial Schützen neuer Ressourcen aus.
- Erfahren Sie mehr über den Lebenszyklus von Blaupausen.
- Machen Sie sich mit der Verwendung statischer und dynamischer Parameter vertraut.
- Erfahren Sie, wie Sie die Abfolge von Blaupausen anpassen können.
- Lernen Sie, wie Sie vorhandene Zuweisungen aktualisieren.
- Beheben Sie Probleme bei der Blaupausenzuweisung mithilfe des allgemeinen Leitfadens zur Problembehandlung.