Sperren von Ressourcen, um unerwartete Änderungen zu verhindernLock resources to prevent unexpected changes

Als Administrator möchten Sie möglicherweise ein Abonnement, eine Ressourcengruppe oder eine Ressource sperren, um zu verhindern, dass andere Benutzer in Ihrer Organisation versehentlich wichtige Ressourcen löschen oder ändern.As an administrator, you may need to lock a subscription, resource group, or resource to prevent other users in your organization from accidentally deleting or modifying critical resources. Sie können die Sperrebene auf CanNotDelete oder ReadOnly festlegen.You can set the lock level to CanNotDelete or ReadOnly. Im Portal heißen die Sperren Löschen und Schreibgeschützt.In the portal, the locks are called Delete and Read-only respectively.

  • CanNotDelete bedeutet, dass autorisierte Benutzer weiterhin eine Ressource lesen und ändern, aber nicht löschen können.CanNotDelete means authorized users can still read and modify a resource, but they can't delete the resource.
  • ReadOnly bedeutet, dass autorisierte Benutzer eine Ressource zwar lesen, aber nicht löschen oder aktualisieren können.ReadOnly means authorized users can read a resource, but they can't delete or update the resource. Mit dieser Sperre erzielen Sie einen ähnlichen Effekt wie durch die Beschränkung sämtlicher autorisierter Benutzer auf die Berechtigungen der Leserolle.Applying this lock is similar to restricting all authorized users to the permissions granted by the Reader role.

Hinweis

Dieser Artikel wurde aktualisiert und beinhaltet jetzt das neue Az-Modul von Azure PowerShell.This article has been updated to use the new Azure PowerShell Az module. Sie können das AzureRM-Modul weiterhin verwenden, das bis mindestens Dezember 2020 weiterhin Fehlerbehebungen erhält.You can still use the AzureRM module, which will continue to receive bug fixes until at least December 2020. Weitere Informationen zum neuen Az-Modul und zur Kompatibilität mit AzureRM finden Sie unter Introducing the new Azure PowerShell Az module (Einführung in das neue Az-Modul von Azure PowerShell).To learn more about the new Az module and AzureRM compatibility, see Introducing the new Azure PowerShell Az module. Anweisungen zur Installation des Az-Moduls finden Sie unter Install Azure PowerShell (Installieren von Azure PowerShell).For Az module installation instructions, see Install Azure PowerShell.

Anwenden von SperrenHow locks are applied

Wenn Sie eine Sperre in einem übergeordneten Bereich anwenden, erben alle Ressourcen in diesem Bereich die entsprechende Sperre.When you apply a lock at a parent scope, all resources within that scope inherit the same lock. Auch Ressourcen, die Sie später hinzufügen, erben die Sperre aus dem übergeordneten Element.Even resources you add later inherit the lock from the parent. Die restriktivste Sperre in der Vererbung hat Vorrang.The most restrictive lock in the inheritance takes precedence.

Im Gegensatz zur rollenbasierten Zugriffssteuerung verwenden Sie Verwaltungssperren, um eine Einschränkung für alle Benutzer und Rollen zu aktivieren.Unlike role-based access control, you use management locks to apply a restriction across all users and roles. Informationen zum Festlegen von Benutzer- und Rollenberechtigungen finden Sie unter Rollenbasierte Zugriffssteuerung in Azure.To learn about setting permissions for users and roles, see Azure Role-based Access Control.

Resource Manager-Sperren gelten nur für Vorgänge auf der Verwaltungsebene (also für Vorgänge, die an https://management.azure.com gesendet werden).Resource Manager locks apply only to operations that happen in the management plane, which consists of operations sent to https://management.azure.com. Die Ausführung ressourceneigener Funktionen wird durch die Sperren nicht eingeschränkt.The locks don't restrict how resources perform their own functions. Die Ressourcenänderungen sind eingeschränkt, die Ressourcenvorgänge jedoch nicht.Resource changes are restricted, but resource operations aren't restricted. Beispielsweise verhindert eine ReadOnly-Sperre für eine SQL-Datenbank das Löschen oder Ändern der Datenbank.For example, a ReadOnly lock on a SQL Database prevents you from deleting or modifying the database. Sie verhindert jedoch nicht das Erstellen, Aktualisieren oder Löschen von Daten in der Datenbank.It doesn't prevent you from creating, updating, or deleting data in the database. Datentransaktionen sind zulässig, da diese Vorgänge nicht an https://management.azure.com gesendet werden.Data transactions are permitted because those operations aren't sent to https://management.azure.com.

Das Aktivieren von ReadOnly kann zu unerwarteten Ergebnissen führen, da einige Vorgänge, die die Ressource nicht zu ändern scheinen, tatsächlich Aktionen erfordern, die von der Sperre blockiert werden.Applying ReadOnly can lead to unexpected results because some operations that don't seem to modify the resource actually require actions that are blocked by the lock. Die Sperre ReadOnly kann auf die Ressource oder auf die Ressourcengruppe angewendet werden, die die Ressource enthält.The ReadOnly lock can be applied to the resource or to the resource group containing the resource. Einige gängige Beispiele für die Vorgänge, die durch eine ReadOnly-Sperre blockiert werden, sind:Some common examples of the operations that are blocked by a ReadOnly lock are:

  • Eine ReadOnly-Sperre für ein Speicherkonto hindert alle Benutzer am Auflisten der Schlüssel.A ReadOnly lock on a storage account prevents all users from listing the keys. Der Vorgang zum Auflisten von Schlüsseln wird über eine POST-Anforderung behandelt, da die zurückgegebenen Schlüssel für Schreibvorgänge zur Verfügung stehen.The list keys operation is handled through a POST request because the returned keys are available for write operations.

  • Das Festlegen einer ReadOnly-Sperre für eine App Service-Ressource verhindert, dass der Server-Explorer von Visual Studio Dateien für die Ressource anzeigen kann, da für diese Interaktion Schreibzugriff erforderlich ist.A ReadOnly lock on an App Service resource prevents Visual Studio Server Explorer from displaying files for the resource because that interaction requires write access.

  • Eine ReadOnly-Sperre für eine Ressourcengruppe, die einen virtuellen Computer enthält, hindert alle Benutzer am Starten bzw. Neustarten des virtuellen Computers.A ReadOnly lock on a resource group that contains a virtual machine prevents all users from starting or restarting the virtual machine. Diese Vorgänge erfordern eine POST-Anforderung.These operations require a POST request.

Voraussetzungen für das Erstellen oder Löschen von SperrenWho can create or delete locks

Zum Erstellen oder Löschen von Verwaltungssperren benötigen Sie Zugriff auf Microsoft.Authorization/*- oder Microsoft.Authorization/locks/*-Aktionen.To create or delete management locks, you must have access to Microsoft.Authorization/* or Microsoft.Authorization/locks/* actions. Unter den integrierten Rollen können nur Besitzer und Benutzerzugriffsadministrator diese Aktionen ausführen.Of the built-in roles, only Owner and User Access Administrator are granted those actions.

Verwaltete Anwendungen und SperrenManaged Applications and locks

Einige Azure-Dienste wie Azure Databricks verwenden für die Implementierung des Diensts verwaltete Anwendungen.Some Azure services, such as Azure Databricks, use managed applications to implement the service. In diesem Fall erstellt der Dienst zwei Ressourcengruppen.In that case, the service creates two resource groups. Eine Ressourcengruppe enthält eine Übersicht über den Dienst und ist nicht gesperrt.One resource group contains an overview of the service and isn't locked. Die andere Ressourcengruppe enthält die Infrastruktur für den Dienst und ist gesperrt.The other resource group contains the infrastructure for the service and is locked.

Wenn Sie versuchen, die Infrastrukturressourcengruppe zu löschen, wird eine Fehlermeldung ausgegeben, dass die Ressourcengruppe gesperrt ist.If you try to delete the infrastructure resource group, you get an error stating that the resource group is locked. Wenn Sie versuchen, die Sperre für die Infrastrukturressourcengruppe aufzuheben, wird eine Fehlermeldung ausgegeben, dass die Sperre nicht gelöscht werden kann, da sie einer Systemanwendung angehört.If you try to delete the lock for the infrastructure resource group, you get an error stating that the lock can't be deleted because it's owned by a system application.

Löschen Sie stattdessen den Dienst, dann wird auch die Infrastrukturressourcengruppe gelöscht.Instead, delete the service, which also deletes the infrastructure resource group.

Wählen Sie für verwaltete Anwendungen den Dienst, den Sie bereitgestellt haben, aus.For managed applications, select the service you deployed.

Auswählen des Diensts

Beachten Sie, dass der Dienst einen Link für eine verwaltete Ressourcengruppe aufweist.Notice the service includes a link for a Managed Resource Group. In dieser Ressourcengruppe befindet sich die Infrastruktur, und sie ist gesperrt.That resource group holds the infrastructure and is locked. Sie kann nicht direkt gelöscht werden.It can't be directly deleted.

Anzeigen der verwalteten Gruppe

Um alle Elemente für den Dienst zu löschen, einschließlich der gesperrten Infrastrukturressourcengruppe, wählen Sie Löschen für den Dienst aus.To delete everything for the service, including the locked infrastructure resource group, select Delete for the service.

Suchdienst löschen

PortalPortal

  1. Wählen Sie im Blatt „Einstellungen“ für die Ressourcen, Ressourcengruppen oder Abonnements, die Sie sperren möchten, die Option Sperren.In the Settings blade for the resource, resource group, or subscription that you wish to lock, select Locks.

    Sperre auswählen

  2. Wählen Sie zum Hinzufügen einer Sperre Hinzufügen.To add a lock, select Add. Wenn Sie eine Sperre auf einer übergeordneten Ebene erstellen möchten, wählen Sie das übergeordnete Element.If you want to create a lock at a parent level, select the parent. Die derzeit ausgewählte Ressource erbt die Sperre vom übergeordneten Element.The currently selected resource inherits the lock from the parent. Sie könnten z.B. die Ressourcengruppe sperren, um eine Sperre auf alle ihre Ressourcen anzuwenden.For example, you could lock the resource group to apply a lock to all its resources.

    Sperre hinzufügen

  3. Weisen Sie der Sperre einen Namen und eine Ebene zu.Give the lock a name and lock level. Optional können Sie Notizen hinzufügen, die die Sperre beschreiben.Optionally, you can add notes that describe the lock.

    Sperre festlegen

  4. Um die Sperre zu löschen, wählen Sie die Schaltfläche mit den Auslassungszeichen und dann in den verfügbaren Optionen Löschen .To delete the lock, select the ellipsis and Delete from the available options.

    Sperre löschen

VorlageTemplate

Wenn Sie eine Sperre mithilfe einer Resource Manager-Vorlage bereitstellen, verwenden Sie je nach Umfang der Sperre unterschiedliche Werte für den Namen und den Typ.When using a Resource Manager template to deploy a lock, you use different values for the name and type depending on the scope of the lock.

Beim Anwenden einer Sperre für eine Ressource verwenden Sie die folgenden Formate:When applying a lock to a resource, use the following formats:

  • Name: {resourceName}/Microsoft.Authorization/{lockName}name - {resourceName}/Microsoft.Authorization/{lockName}
  • Typ: {resourceProviderNamespace}/{resourceType}/providers/lockstype - {resourceProviderNamespace}/{resourceType}/providers/locks

Beim Anwenden einer Sperre für eine Ressourcengruppe oder ein Abonnement verwenden Sie die folgenden Formate:When applying a lock to a resource group or subscription, use the following formats:

  • Name: {lockName}name - {lockName}
  • Typ: Microsoft.Authorization/lockstype - Microsoft.Authorization/locks

Das folgende Beispiel zeigt eine Vorlage, die einen App Service-Plan, eine Website und eine Sperre für die Website erstellt.The following example shows a template that creates an app service plan, a web site, and a lock on the web site. Der Ressourcentyp der Sperre ist der Ressourcentyp der zu sperrenden Ressource und /providers/locks.The resource type of the lock is the resource type of the resource to lock and /providers/locks. Der Name der Sperre wird erstellt, indem der Ressourcenname mit /Microsoft.Authorization/ und dem Namen der Sperre verkettet wird.The name of the lock is created by concatenating the resource name with /Microsoft.Authorization/ and the name of the lock.

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "hostingPlanName": {
            "type": "string"
        }
    },
    "variables": {
        "siteName": "[concat('ExampleSite', uniqueString(resourceGroup().id))]"
    },
    "resources": [
        {
            "apiVersion": "2016-09-01",
            "type": "Microsoft.Web/serverfarms",
            "name": "[parameters('hostingPlanName')]",
            "location": "[resourceGroup().location]",
            "sku": {
                "tier": "Free",
                "name": "f1",
                "capacity": 0
            },
            "properties": {
                "targetWorkerCount": 1
            }
        },
        {
            "apiVersion": "2016-08-01",
            "name": "[variables('siteName')]",
            "type": "Microsoft.Web/sites",
            "location": "[resourceGroup().location]",
            "dependsOn": [
                "[resourceId('Microsoft.Web/serverfarms', parameters('hostingPlanName'))]"
            ],
            "properties": {
                "serverFarmId": "[parameters('hostingPlanName')]"
            }
        },
        {
            "type": "Microsoft.Web/sites/providers/locks",
            "apiVersion": "2016-09-01",
            "name": "[concat(variables('siteName'), '/Microsoft.Authorization/siteLock')]",
            "dependsOn": [
                "[resourceId('Microsoft.Web/sites', variables('siteName'))]"
            ],
            "properties": {
                "level": "CanNotDelete",
                "notes": "Site should not be deleted."
            }
        }
    ]
}

Ein Beispiel für das Festlegen einer Sperre für eine Ressourcengruppe finden Sie unter Erstellen und Sperren einer Ressourcengruppe.For an example of setting a lock on a resource group, see Create a resource group and lock it.

PowerShellPowerShell

Sie sperren bereitgestellte Ressourcen mit Azure PowerShell über den Befehl New-AzResourceLock.You lock deployed resources with Azure PowerShell by using the New-AzResourceLock command.

Geben Sie zum Sperren einer Ressource den Namen der Ressource, ihren Ressourcentyp und ihren Ressourcengruppennamen an.To lock a resource, provide the name of the resource, its resource type, and its resource group name.

New-AzResourceLock -LockLevel CanNotDelete -LockName LockSite -ResourceName examplesite -ResourceType Microsoft.Web/sites -ResourceGroupName exampleresourcegroup

Geben Sie zum Sperren einer Ressourcengruppe ihren Namen an.To lock a resource group, provide the name of the resource group.

New-AzResourceLock -LockName LockGroup -LockLevel CanNotDelete -ResourceGroupName exampleresourcegroup

Rufen Sie Informationen zu einer Sperre mithilfe von Get-AzResourceLock ab.To get information about a lock, use Get-AzResourceLock. Rufen Sie alle Sperren im Abonnement mit dem folgenden Befehl ab:To get all the locks in your subscription, use:

Get-AzResourceLock

Rufen Sie alle Sperren für eine Ressource mit dem folgenden Befehl ab:To get all locks for a resource, use:

Get-AzResourceLock -ResourceName examplesite -ResourceType Microsoft.Web/sites -ResourceGroupName exampleresourcegroup

Rufen Sie alle Sperren für eine Ressourcengruppe mit dem folgenden Befehl ab:To get all locks for a resource group, use:

Get-AzResourceLock -ResourceGroupName exampleresourcegroup

Eine Sperre löschen Sie folgendermaßen:To delete a lock, use:

$lockId = (Get-AzResourceLock -ResourceGroupName exampleresourcegroup -ResourceName examplesite -ResourceType Microsoft.Web/sites).LockId
Remove-AzResourceLock -LockId $lockId

Azure-BefehlszeilenschnittstelleAzure CLI

Sperren Sie bereitgestellte Ressourcen mit der Azure CLI, indem Sie den Befehl az lock create verwenden.You lock deployed resources with Azure CLI by using the az lock create command.

Geben Sie zum Sperren einer Ressource den Namen der Ressource, ihren Ressourcentyp und ihren Ressourcengruppennamen an.To lock a resource, provide the name of the resource, its resource type, and its resource group name.

az lock create --name LockSite --lock-type CanNotDelete --resource-group exampleresourcegroup --resource-name examplesite --resource-type Microsoft.Web/sites

Geben Sie zum Sperren einer Ressourcengruppe ihren Namen an.To lock a resource group, provide the name of the resource group.

az lock create --name LockGroup --lock-type CanNotDelete --resource-group exampleresourcegroup

Verwenden Sie zum Abrufen von Informationen zu einer Sperre az lock list.To get information about a lock, use az lock list. Rufen Sie alle Sperren im Abonnement mit dem folgenden Befehl ab:To get all the locks in your subscription, use:

az lock list

Rufen Sie alle Sperren für eine Ressource mit dem folgenden Befehl ab:To get all locks for a resource, use:

az lock list --resource-group exampleresourcegroup --resource-name examplesite --namespace Microsoft.Web --resource-type sites --parent ""

Rufen Sie alle Sperren für eine Ressourcengruppe mit dem folgenden Befehl ab:To get all locks for a resource group, use:

az lock list --resource-group exampleresourcegroup

Eine Sperre löschen Sie folgendermaßen:To delete a lock, use:

lockid=$(az lock show --name LockSite --resource-group exampleresourcegroup --resource-type Microsoft.Web/sites --resource-name examplesite --output tsv --query id)
az lock delete --ids $lockid

REST-APIREST API

Sie können bereitgestellte Ressourcen mit der REST-API für Verwaltungssperren sperren.You can lock deployed resources with the REST API for management locks. Die REST-API ermöglicht es Ihnen, Sperren zu erstellen und zu löschen sowie Informationen zu vorhandenen Sperren abzurufen.The REST API enables you to create and delete locks, and retrieve information about existing locks.

Führen Sie zum Erstellen einer Sperre Folgendes durch:To create a lock, run:

PUT https://management.azure.com/{scope}/providers/Microsoft.Authorization/locks/{lock-name}?api-version={api-version}

Bei dem Bereich kann es sich um ein Abonnement, die Ressourcengruppe oder die Ressource handeln.The scope could be a subscription, resource group, or resource. Geben Sie für "lock-name" den jeweiligen Namen der Sperre ein.The lock-name is whatever you want to call the lock. Verwenden Sie als „api-version“ die Einstellung 2016-09-01.For api-version, use 2016-09-01.

Schließen Sie in die Anforderung ein JSON-Objekt ein, das die Eigenschaften für die Sperre angibt.In the request, include a JSON object that specifies the properties for the lock.

{
  "properties": {
    "level": "CanNotDelete",
    "notes": "Optional text notes."
  }
} 

Nächste SchritteNext steps