Bloquear recursos pode prevenir alterações inesperadasLock resources to prevent unexpected changes

Como administrador, terá de bloquear uma subscrição, grupo de recursos ou recursos para impedir que outros utilizadores na sua organização acidentalmente eliminem ou modifiquem recursos críticos.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. Pode definir o nível do bloqueio para CanNotDelete ou ReadOnly.You can set the lock level to CanNotDelete or ReadOnly. No portal, os bloqueios são chamados elimine e só de leitura , respetivamente.In the portal, the locks are called Delete and Read-only respectively.

  • CanNotDelete significa que os utilizadores autorizados ainda podem ler e modificar um recurso, mas eles não é possível eliminar o recurso.CanNotDelete means authorized users can still read and modify a resource, but they can't delete the resource.
  • Só de leitura significa que os utilizadores autorizados podem ler um recurso, mas não é possível eliminar ou atualizar o recurso.ReadOnly means authorized users can read a resource, but they can't delete or update the resource. Aplicar esse bloqueio é semelhante ao restringir todos os utilizadores autorizados para as permissões concedidas pela leitor função.Applying this lock is similar to restricting all authorized users to the permissions granted by the Reader role.

Nota

Este artigo foi atualizado para utilizar o módulo Azure PowerShell Az novo.This article has been updated to use the new Azure PowerShell Az module. Pode continuar a utilizar o módulo de AzureRM, que vai continuar a receber correções de erros até que, pelo menos, Dezembro de 2020.You can still use the AzureRM module, which will continue to receive bug fixes until at least December 2020. Para saber mais sobre o novo módulo Az e AzureRM compatibilidade, veja apresentando o novo módulo Azure PowerShell Az.To learn more about the new Az module and AzureRM compatibility, see Introducing the new Azure PowerShell Az module. Para instruções de instalação do módulo de Az, consulte instalar o Azure PowerShell.For Az module installation instructions, see Install Azure PowerShell.

Como os bloqueios são aplicadosHow locks are applied

Quando aplica um bloqueio num âmbito principal, todos os recursos dentro daquele escopo herdam o mesmo bloqueio.When you apply a lock at a parent scope, all resources within that scope inherit the same lock. Recursos até mesmo que adicionar posteriormente herdam o bloqueio do pai.Even resources you add later inherit the lock from the parent. O bloqueio mais restritivo na herança tem precedência.The most restrictive lock in the inheritance takes precedence.

Ao contrário do controlo de acesso baseado em funções, usar os bloqueios de gestão para aplicar uma restrição em todos os utilizadores e funções.Unlike role-based access control, you use management locks to apply a restriction across all users and roles. Para saber mais sobre como definir permissões para utilizadores e funções, veja controlo de acesso baseado em funções do Azure.To learn about setting permissions for users and roles, see Azure Role-based Access Control.

Bloqueios de Gestor de recursos aplicam-se apenas às operações que ocorrem no plano de gestão, que consiste em operações enviadas para 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. Os bloqueios não restringem como recursos executam suas próprias funções.The locks don't restrict how resources perform their own functions. As alterações de recursos são restritas, mas as operações de recursos não restritas.Resource changes are restricted, but resource operations aren't restricted. Por exemplo, um bloqueio só de leitura numa base de dados SQL impede-eliminem ou modifiquem o banco de dados.For example, a ReadOnly lock on a SQL Database prevents you from deleting or modifying the database. Ele não impede de criar, atualizar ou eliminar dados na base de dados.It doesn't prevent you from creating, updating, or deleting data in the database. Transações de dados são permitidas porque essas operações não são enviadas para https://management.azure.com.Data transactions are permitted because those operations aren't sent to https://management.azure.com.

Aplicando só de leitura pode levar a resultados inesperados, uma vez que algumas operações que parecem modificar o recurso não exigem realmente ações que são bloqueadas pelo bloqueio.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. O só de leitura bloqueio pode ser aplicado ao recurso ou para o grupo de recursos que contém o recurso.The ReadOnly lock can be applied to the resource or to the resource group containing the resource. Alguns exemplos comuns das operações que estão bloqueadas por uma só de leitura bloqueio são:Some common examples of the operations that are blocked by a ReadOnly lock are:

  • R só de leitura bloqueio numa conta de armazenamento impede que todos os utilizadores de listar as chaves.A ReadOnly lock on a storage account prevents all users from listing the keys. A lista de operação de chaves é tratada por meio de um pedido POST porque as chaves retornadas estão disponíveis para operações de escrita.The list keys operation is handled through a POST request because the returned keys are available for write operations.

  • R só de leitura bloqueio num recurso de serviço de aplicações impede que o Visual Studio Server Explorer de apresentar ficheiros para o recurso porque essa interação requer acesso de escrita.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.

  • R só de leitura bloqueio no grupo de recursos que contém uma máquina virtual impede que todos os utilizadores de iniciar ou reiniciar a máquina virtual.A ReadOnly lock on a resource group that contains a virtual machine prevents all users from starting or restarting the virtual machine. Estas operações exigem um pedido POST.These operations require a POST request.

Quem pode criar ou eliminar bloqueiosWho can create or delete locks

Para criar ou eliminar bloqueios de gestão, tem de ter acesso ao Microsoft.Authorization/* ou Microsoft.Authorization/locks/* ações.To create or delete management locks, you must have access to Microsoft.Authorization/* or Microsoft.Authorization/locks/* actions. Das funções incorporadas, apenas Proprietário e Administrador de Acesso dos Utilizadores têm acesso a essas ações.Of the built-in roles, only Owner and User Access Administrator are granted those actions.

Aplicações e bloqueiosManaged Applications and locks

Alguns serviços do Azure, como o Azure Databricks, utilizam aplicativos gerenciados para implementar o serviço.Some Azure services, such as Azure Databricks, use managed applications to implement the service. Nesse caso, o serviço cria dois grupos de recursos.In that case, the service creates two resource groups. Um grupo de recursos contém uma descrição geral do serviço e não está bloqueado.One resource group contains an overview of the service and isn't locked. O grupo de recursos contém a infraestrutura para o serviço e é bloqueado.The other resource group contains the infrastructure for the service and is locked.

Se tentar eliminar o grupo de recursos de infraestrutura, obterá um erro a indicar que o grupo de recursos está bloqueado.If you try to delete the infrastructure resource group, you get an error stating that the resource group is locked. Se tentar eliminar o bloqueio para o grupo de recursos de infraestrutura, obterá um erro a indicar que o bloqueio não pode ser eliminado porque o proprietário é uma aplicação de sistema.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.

Em vez disso, elimine o serviço, que também elimina o grupo de recursos de infraestrutura.Instead, delete the service, which also deletes the infrastructure resource group.

Para aplicativos gerenciados, selecione o serviço que implementou.For managed applications, select the service you deployed.

Selecionar serviço

Observe que o serviço inclui uma ligação para uma grupo de recursos gerido.Notice the service includes a link for a Managed Resource Group. Grupo de recursos possui a infra-estrutura e está bloqueado.That resource group holds the infrastructure and is locked. Não é possível eliminá-lo diretamente.It can't be directly deleted.

Mostrar grupo gerido por

Para eliminar tudo para o serviço, incluindo o grupo de recursos de infraestrutura bloqueado, selecione eliminar para o serviço.To delete everything for the service, including the locked infrastructure resource group, select Delete for the service.

Eliminar serviço

PortalPortal

  1. No painel de definições para o recurso, grupo de recursos ou subscrição que pretende bloquear, selecione bloqueia.In the Settings blade for the resource, resource group, or subscription that you wish to lock, select Locks.

    Selecione o bloqueio

  2. Para adicionar um bloqueio, selecione adicionar.To add a lock, select Add. Se pretender criar um bloqueio no nível principal, selecione o elemento principal.If you want to create a lock at a parent level, select the parent. O recurso atualmente selecionado herda o bloqueio do pai.The currently selected resource inherits the lock from the parent. Por exemplo, pode bloquear o grupo de recursos para aplicar um bloqueio para todos os respetivos recursos.For example, you could lock the resource group to apply a lock to all its resources.

    Adicionar bloqueio

  3. Dê o bloqueio de um nível de bloqueio e nome.Give the lock a name and lock level. Opcionalmente, pode adicionar notas que descrevem o bloqueio.Optionally, you can add notes that describe the lock.

    bloqueio de conjunto

  4. Para eliminar o bloqueio, selecione as reticências e eliminar nas opções disponíveis.To delete the lock, select the ellipsis and Delete from the available options.

    Bloqueio de eliminação

ModeloTemplate

Ao utilizar um modelo do Resource Manager para implementar um bloqueio, utilizar valores diferentes para o nome e tipo, dependendo do escopo do bloqueio.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.

Ao aplicar um bloqueio para um recursos, utilize os seguintes formatos:When applying a lock to a resource, use the following formats:

  • name - {resourceName}/Microsoft.Authorization/{lockName}name - {resourceName}/Microsoft.Authorization/{lockName}
  • tipo de- {resourceProviderNamespace}/{resourceType}/providers/lockstype - {resourceProviderNamespace}/{resourceType}/providers/locks

Ao aplicar um bloqueio para um grupo de recursos ou subscrição, utilize os seguintes formatos:When applying a lock to a resource group or subscription, use the following formats:

  • name - {lockName}name - {lockName}
  • tipo de- Microsoft.Authorization/lockstype - Microsoft.Authorization/locks

O exemplo seguinte mostra um modelo que cria um plano do serviço de aplicações, um web site e um bloqueio no web site.The following example shows a template that creates an app service plan, a web site, and a lock on the web site. O tipo de recurso do bloqueio é o tipo de recurso do recurso para bloquear e /fornecedores/bloqueios.The resource type of the lock is the resource type of the resource to lock and /providers/locks. O nome do bloqueio é criado pela concatenação com o nome do recurso /Microsoft.Authorization/ e o nome do bloqueio.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."
            }
        }
    ]
}

Para obter um exemplo de configuração de um bloqueio num grupo de recursos, consulte criar um grupo de recursos e bloqueá-lo.For an example of setting a lock on a resource group, see Create a resource group and lock it.

PowerShellPowerShell

O bloqueio é implementada recursos com o Azure PowerShell com o New-AzResourceLock comando.You lock deployed resources with Azure PowerShell by using the New-AzResourceLock command.

Para bloquear um recurso, forneça o nome do recurso, o respetivo tipo de recurso e o seu nome de grupo de recursos.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

Para bloquear um grupo de recursos, forneça o nome do grupo de recursos.To lock a resource group, provide the name of the resource group.

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

Para obter informações sobre um bloqueio, utilize Get-AzResourceLock.To get information about a lock, use Get-AzResourceLock. Para obter todos os bloqueios na sua subscrição, utilize:To get all the locks in your subscription, use:

Get-AzResourceLock

Para obter todos os bloqueios de um recurso, utilize:To get all locks for a resource, use:

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

Para obter todos os bloqueios para um grupo de recursos, utilize:To get all locks for a resource group, use:

Get-AzResourceLock -ResourceGroupName exampleresourcegroup

Para eliminar um bloqueio, utilize:To delete a lock, use:

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

CLI do AzureAzure CLI

O bloqueio é implementada recursos com a CLI do Azure com o bloqueio az criar comando.You lock deployed resources with Azure CLI by using the az lock create command.

Para bloquear um recurso, forneça o nome do recurso, o respetivo tipo de recurso e o seu nome de grupo de recursos.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

Para bloquear um grupo de recursos, forneça o nome do grupo de recursos.To lock a resource group, provide the name of the resource group.

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

Para obter informações sobre um bloqueio, utilize lista de bloqueio de az.To get information about a lock, use az lock list. Para obter todos os bloqueios na sua subscrição, utilize:To get all the locks in your subscription, use:

az lock list

Para obter todos os bloqueios de um recurso, utilize:To get all locks for a resource, use:

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

Para obter todos os bloqueios para um grupo de recursos, utilize:To get all locks for a resource group, use:

az lock list --resource-group exampleresourcegroup

Para eliminar um bloqueio, utilize: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

API RESTREST API

É possível bloquear recursos implementados com o API REST para bloqueios de gestão.You can lock deployed resources with the REST API for management locks. A API REST permite-lhe criar e eliminar bloqueios e obter informações sobre bloqueios existentes.The REST API enables you to create and delete locks, and retrieve information about existing locks.

Para criar um bloqueio, execute:To create a lock, run:

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

O âmbito pode ser uma subscrição, grupo de recursos ou recurso.The scope could be a subscription, resource group, or resource. O nome de bloqueio é tudo o que deseja chamar o bloqueio.The lock-name is whatever you want to call the lock. Para a versão de api, utilize 2016-09-01.For api-version, use 2016-09-01.

Na solicitação, incluem um objeto JSON que especifica as propriedades para o bloqueio.In the request, include a JSON object that specifies the properties for the lock.

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

Passos SeguintesNext steps