Låsresurser för att förhindra oväntade ändringarLock resources to prevent unexpected changes

Som administratör kan behöva du låsa en prenumeration, resursgrupp eller resurs för att förhindra att andra användare i din organisation av misstag tar bort eller ändrar viktiga resurser.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. Du kan ange låsnivån till CanNotDelete eller ReadOnly.You can set the lock level to CanNotDelete or ReadOnly. I portalen låsen kallas ta bort och skrivskyddad respektive.In the portal, the locks are called Delete and Read-only respectively.

  • CanNotDelete innebär att behöriga användare kan fortfarande läsa och ändra en resurs, men de kan inte ta bort resursen.CanNotDelete means authorized users can still read and modify a resource, but they can't delete the resource.
  • Skrivskyddad innebär att behöriga användare kan läsa en resurs, men de kan inte ta bort eller uppdatera resursen.ReadOnly means authorized users can read a resource, but they can't delete or update the resource. Tillämpa den här Lås liknar att begränsa alla behöriga användare till de behörigheter som beviljas genom den läsare roll.Applying this lock is similar to restricting all authorized users to the permissions granted by the Reader role.

Anteckning

Den här artikeln har uppdaterats till att använda den nya Azure PowerShell Az-modulen.This article has been updated to use the new Azure PowerShell Az module. Du kan fortfarande använda modulen AzureRM som kommer att fortsätta att ta emot felkorrigeringar fram till december 2020 eller längre.You can still use the AzureRM module, which will continue to receive bug fixes until at least December 2020. Mer information om den nya Az-modulen och AzureRM-kompatibilitet finns i Introduktion till den nya Azure PowerShell Az-modulen.To learn more about the new Az module and AzureRM compatibility, see Introducing the new Azure PowerShell Az module. Instruktioner för installation av Az-modulen finns i Installera Azure PowerShell.For Az module installation instructions, see Install Azure PowerShell.

Hur Lås tillämpasHow locks are applied

När du använder ett lås på en överordnad omfattning, ärver alla resurser i detta omfång samma låset.When you apply a lock at a parent scope, all resources within that scope inherit the same lock. Även resurser som du lägger till senare ärver låset från överordnat.Even resources you add later inherit the lock from the parent. Den mest restriktiva Lås i arvet företräde.The most restrictive lock in the inheritance takes precedence.

Till skillnad från rollbaserad åtkomstkontroll använder du hanteringslås för att tillämpa en begränsning för alla användare och roller.Unlike role-based access control, you use management locks to apply a restriction across all users and roles. Läs om att ange behörigheter för användare och roller i Azure rollbaserad åtkomstkontroll.To learn about setting permissions for users and roles, see Azure Role-based Access Control.

Resource Manager-Lås gäller endast för åtgärder som sker i Hanteringsplanet, som består av åtgärder som skickas till https://management.azure.com.Resource Manager locks apply only to operations that happen in the management plane, which consists of operations sent to https://management.azure.com. Låsen begränsa inte hur resurser utföra egna funktioner.The locks don't restrict how resources perform their own functions. Resursändringar är begränsade men resursåtgärder är inte begränsade.Resource changes are restricted, but resource operations aren't restricted. Till exempel gör ett ReadOnly-lås på en SQL Database att du inte tar bort eller ändrar databasen.For example, a ReadOnly lock on a SQL Database prevents you from deleting or modifying the database. Den hindra inte dig från att skapa, uppdatera eller ta bort data i databasen.It doesn't prevent you from creating, updating, or deleting data in the database. Datatransaktioner tillåts eftersom dessa åtgärder inte skickas till https://management.azure.com.Data transactions are permitted because those operations aren't sent to https://management.azure.com.

Tillämpa ReadOnly kan leda till oväntade resultat eftersom vissa åtgärder som inte verkar ändra resursen faktiskt kräver åtgärder som blockerats av låset.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. Den ReadOnly Lås kan användas till resursen eller resursgruppen som innehåller resursen.The ReadOnly lock can be applied to the resource or to the resource group containing the resource. Några vanliga exempel på åtgärder som blockeras av en ReadOnly Lås är:Some common examples of the operations that are blocked by a ReadOnly lock are:

  • En ReadOnly låset på ett lagringskonto som förhindrar att alla användare lista nycklarna.A ReadOnly lock on a storage account prevents all users from listing the keys. Listan med nycklar åtgärden hanteras via en POST-begäran eftersom de returnerade nycklarna är tillgängliga för skrivåtgärder.The list keys operation is handled through a POST request because the returned keys are available for write operations.

  • En ReadOnly lås på en App Service-resurs som förhindrar att Visual Studio Server Explorer visar filer för resursen eftersom den interaktionen kräver skrivbehörighet.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.

  • En ReadOnly låset på en resursgrupp som innehåller en virtuell dator förhindrar alla användare från att starta eller starta om den virtuella datorn.A ReadOnly lock on a resource group that contains a virtual machine prevents all users from starting or restarting the virtual machine. Dessa åtgärder kräver en POST-begäran.These operations require a POST request.

Vem som kan skapa eller ta bort låsWho can create or delete locks

För att skapa eller ta bort hanteringslås, måste du ha åtkomst till Microsoft.Authorization/* eller Microsoft.Authorization/locks/* åtgärder.To create or delete management locks, you must have access to Microsoft.Authorization/* or Microsoft.Authorization/locks/* actions. Av de inbyggda rollerna har endast Ägare och Administratör för användaråtkomst åtkomst till dessa åtgärder.Of the built-in roles, only Owner and User Access Administrator are granted those actions.

Hanterade program och låsManaged Applications and locks

Vissa Azure-tjänster, till exempel Azure Databricks, använda hanterade program du implementerar tjänsten.Some Azure services, such as Azure Databricks, use managed applications to implement the service. I så fall kan skapar tjänsten två resursgrupper.In that case, the service creates two resource groups. En resursgrupp som innehåller en översikt över tjänsten och inte är låst.One resource group contains an overview of the service and isn't locked. Andra resursgruppen innehåller infrastrukturen för tjänsten och är låst.The other resource group contains the infrastructure for the service and is locked.

Om du försöker ta bort resursgruppen infrastruktur, får du ett felmeddelande om att resursgruppen är låst.If you try to delete the infrastructure resource group, you get an error stating that the resource group is locked. Om du försöker ta bort låset för resursgruppen infrastruktur, får du ett felmeddelande om att låset inte kan tas bort eftersom den ägs av ett systemprogram för.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.

Ta bort tjänsten, vilket även tar bort resursgruppen infrastruktur i stället.Instead, delete the service, which also deletes the infrastructure resource group.

Välj den tjänst som du har distribuerat för hanterade program.For managed applications, select the service you deployed.

Välj tjänst

Observera tjänsten innehåller en länk för en hanterad resursgrupp.Notice the service includes a link for a Managed Resource Group. Resursgruppen innehåller infrastrukturen och är låst.That resource group holds the infrastructure and is locked. Det går inte att direkt ta bort.It can't be directly deleted.

Visa grupp

Om du vill ta bort allt innehåll för tjänsten, inklusive den låsta infrastrukturresursgrupp Välj ta bort för tjänsten.To delete everything for the service, including the locked infrastructure resource group, select Delete for the service.

Ta bort tjänsten

PortalenPortal

  1. I bladet inställningar för resurs, resursgrupp eller prenumeration som du vill låsa väljer låser.In the Settings blade for the resource, resource group, or subscription that you wish to lock, select Locks.

    Välj Lås

  2. Om du vill lägga till ett lås, Välj Lägg till.To add a lock, select Add. Om du vill skapa ett lås på överordnad nivå väljer du överordnat.If you want to create a lock at a parent level, select the parent. Den markerade resursen ärver låset från överordnat.The currently selected resource inherits the lock from the parent. Exempelvis kan du låsa resursgruppen du vill tillämpa ett lås på alla dess resurser.For example, you could lock the resource group to apply a lock to all its resources.

    Lägg till Lås

  3. Ge låset ett namn och på låsskärmen.Give the lock a name and lock level. Alternativt kan du lägga till uppgifter som beskriver låset.Optionally, you can add notes that describe the lock.

    set-Lås

  4. Välj ellipsen för att ta bort låset och ta bort bland de tillgängliga alternativen.To delete the lock, select the ellipsis and Delete from the available options.

    Ta bort lås

MallTemplate

När du använder Resource Manager-mall för att distribuera ett lås kan använda du olika värden för namn och typ beroende på omfattningen av låset.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.

När du använder ett lås till en resource, Använd följande format:When applying a lock to a resource, use the following formats:

  • namn – {resourceName}/Microsoft.Authorization/{lockName}name - {resourceName}/Microsoft.Authorization/{lockName}
  • typ- {resourceProviderNamespace}/{resourceType}/providers/lockstype - {resourceProviderNamespace}/{resourceType}/providers/locks

När du använder ett lås till en resursgrupp eller prenumeration, Använd följande format:When applying a lock to a resource group or subscription, use the following formats:

  • namn – {lockName}name - {lockName}
  • typ- Microsoft.Authorization/lockstype - Microsoft.Authorization/locks

I följande exempel visas en mall som skapar en app service-plan, en webbplats och ett lås på webbplatsen.The following example shows a template that creates an app service plan, a web site, and a lock on the web site. Resurstypen för låset är resurstypen för resurs att låsa och /providers/ Lås.The resource type of the lock is the resource type of the resource to lock and /providers/locks. Namnet på låset har skapats genom att sammanfoga resursnamnet med /Microsoft.Authorization/ och namnet på låset.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."
            }
        }
    ]
}

Ett exempel på hur ett lås på en resursgrupp, se skapa en resursgrupp och låsa det.For an example of setting a lock on a resource group, see Create a resource group and lock it.

PowerShellPowerShell

Du Lås distribuerade resurser med Azure PowerShell med hjälp av den New AzResourceLock kommando.You lock deployed resources with Azure PowerShell by using the New-AzResourceLock command.

Ange namnet på resursen och dess resurstyp dess resursgruppens namn om du vill låsa en resurs.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

Om du vill låsa en resursgrupp, ange namnet på resursgruppen.To lock a resource group, provide the name of the resource group.

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

Hämta information om ett lås Get-AzResourceLock.To get information about a lock, use Get-AzResourceLock. Hämta alla Lås i din prenumeration med:To get all the locks in your subscription, use:

Get-AzResourceLock

Hämta alla Lås för en resurs med:To get all locks for a resource, use:

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

Hämta alla Lås för en resursgrupp med:To get all locks for a resource group, use:

Get-AzResourceLock -ResourceGroupName exampleresourcegroup

Om du vill ta bort ett lås, använder du:To delete a lock, use:

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

Azure CLIAzure CLI

Du Lås distribuerade resurser med Azure CLI med hjälp av den az lock skapa kommando.You lock deployed resources with Azure CLI by using the az lock create command.

Ange namnet på resursen och dess resurstyp dess resursgruppens namn om du vill låsa en resurs.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

Om du vill låsa en resursgrupp, ange namnet på resursgruppen.To lock a resource group, provide the name of the resource group.

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

Hämta information om ett lås az lock list.To get information about a lock, use az lock list. Hämta alla Lås i din prenumeration med:To get all the locks in your subscription, use:

az lock list

Hämta alla Lås för en resurs med:To get all locks for a resource, use:

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

Hämta alla Lås för en resursgrupp med:To get all locks for a resource group, use:

az lock list --resource-group exampleresourcegroup

Om du vill ta bort ett lås, använder du: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

Du kan låsa distribuerade resurser med den REST API för hanteringslås.You can lock deployed resources with the REST API for management locks. REST API kan du skapa och ta bort lås och hämta information om befintliga Lås.The REST API enables you to create and delete locks, and retrieve information about existing locks.

Om du vill skapa ett lås, kör du:To create a lock, run:

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

Omfånget kan vara en prenumeration, resursgrupp eller resurs.The scope could be a subscription, resource group, or resource. Lås-namnet är vad du vill anropa låset.The lock-name is whatever you want to call the lock. Api-versionen, använda 2016-09-01.For api-version, use 2016-09-01.

På begäran, innehåller ett JSON-objekt som anger egenskaperna för låset.In the request, include a JSON object that specifies the properties for the lock.

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

Nästa stegNext steps