Verrouiller les ressources pour empêcher les modifications inattenduesLock resources to prevent unexpected changes

En tant qu’administrateur, vous pouvez avoir besoin de verrouiller un abonnement, une ressource ou un groupe de ressources afin d’empêcher d’autres utilisateurs de votre organisation de supprimer ou modifier de manière accidentelle des ressources critiques.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. Vous pouvez définir le niveau de verrouillage sur CanNotDelete ou ReadOnly.You can set the lock level to CanNotDelete or ReadOnly. Dans le portail, les verrous sont appelés Supprimer et Lecture seule respectivement.In the portal, the locks are called Delete and Read-only respectively.

  • CanNotDelete signifie que les utilisateurs autorisés peuvent lire et modifier une ressource, mais pas la supprimer.CanNotDelete means authorized users can still read and modify a resource, but they can't delete the resource.
  • ReadOnly signifie que les utilisateurs autorisés peuvent lire une ressource, mais pas la supprimer ni la mettre à jour.ReadOnly means authorized users can read a resource, but they can't delete or update the resource. Appliquer ce verrou revient à limiter à tous les utilisateurs autorisés les autorisations accordées par le rôle Lecteur.Applying this lock is similar to restricting all authorized users to the permissions granted by the Reader role.

Application des verrousHow locks are applied

Lorsque vous appliquez un verrou à une étendue parente, toutes les ressources de cette étendue héritent du même verrou.When you apply a lock at a parent scope, all resources within that scope inherit the same lock. Même les ressources que vous ajoutez par la suite héritent du verrou du parent.Even resources you add later inherit the lock from the parent. Le verrou le plus restrictif de l’héritage est prioritaire.The most restrictive lock in the inheritance takes precedence.

Contrairement au contrôle d'accès basé sur les rôles, vous utilisez des verrous de gestion pour appliquer une restriction à tous les utilisateurs et rôles.Unlike role-based access control, you use management locks to apply a restriction across all users and roles. Pour en savoir plus sur la définition des autorisations pour les utilisateurs et les rôles, consultez Contrôle d’accès en fonction du rôle Azure.To learn about setting permissions for users and roles, see Azure Role-based Access Control.

Les verrous Resource Manager s'appliquent uniquement aux opérations qui se produisent dans le plan de gestion, c'est-à-dire les opérations envoyées à 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. Les verrous ne limitent pas la manière dont les ressources exécutent leurs propres fonctions.The locks don't restrict how resources perform their own functions. Les modifications des ressources sont limitées, mais pas les opérations sur les ressources.Resource changes are restricted, but resource operations aren't restricted. Par exemple, un verrou ReadOnly une base de données SQL empêche la suppression ou la modification de la base de données.For example, a ReadOnly lock on a SQL Database prevents you from deleting or modifying the database. Il ne vous empêche pas de créer, de mettre à jour ou de supprimer des données dans la base de données.It doesn't prevent you from creating, updating, or deleting data in the database. Les transactions de données sont autorisées, car ces opérations ne sont pas envoyées à https://management.azure.com.Data transactions are permitted because those operations aren't sent to https://management.azure.com.

Si vous appliquez le paramètre ReadOnly, il se peut que vous obteniez des résultats inattendus, car certaines opérations qui, en apparence, ne modifient pas la ressource nécessitent en réalité des actions qui sont bloquées par ce verrou.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. Le verrou ReadOnly peut être appliqué à la ressource ou au groupe de ressources qui la contient.The ReadOnly lock can be applied to the resource or to the resource group containing the resource. Voici quelques exemples courants d’opérations bloquées par un verrou ReadOnly :Some common examples of the operations that are blocked by a ReadOnly lock are:

  • Un verrou ReadOnly appliqué à un compte de stockage empêche tous les utilisateurs de répertorier les clés.A ReadOnly lock on a storage account prevents all users from listing the keys. L’opération de listage de clés est gérée via une demande POST, car les clés retournées sont disponibles pour les opérations d’écriture.The list keys operation is handled through a POST request because the returned keys are available for write operations.

  • Un verrou ReadOnly sur une ressource App Service empêche l’Explorateur de serveurs Visual Studio d’afficher les fichiers de la ressource, car cette interaction requiert un accès en écriture.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.

  • Un verrou ReadOnly appliqué à un groupe de ressources contenant une machine virtuelle empêche tous les utilisateurs de démarrer ou de redémarrer cette dernière.A ReadOnly lock on a resource group that contains a virtual machine prevents all users from starting or restarting the virtual machine. Ces opérations nécessitent une demande POST.These operations require a POST request.

Utilisateurs autorisés à créer ou à supprimer des verrousWho can create or delete locks

Pour créer ou supprimer des verrous de gestion, vous devez avoir accès à des actions Microsoft.Authorization/* ou Microsoft.Authorization/locks/*.To create or delete management locks, you must have access to Microsoft.Authorization/* or Microsoft.Authorization/locks/* actions. Parmi les rôles prédéfinis, seuls les rôles Propriétaire et Administrateur de l'accès utilisateur peuvent effectuer ces actions.Of the built-in roles, only Owner and User Access Administrator are granted those actions.

Applications et verrous managésManaged Applications and locks

Certains services Azure, tels qu’Azure Databricks, utilisent des applications managées pour implémenter le service.Some Azure services, such as Azure Databricks, use managed applications to implement the service. Dans ce cas, le service crée deux groupes de ressources.In that case, the service creates two resource groups. Un groupe de ressources contient une vue d’ensemble du service et n’est pas verrouillé.One resource group contains an overview of the service and isn't locked. L’autre groupe contient l’infrastructure du service et est verrouillé.The other resource group contains the infrastructure for the service and is locked.

Si vous essayez de supprimer le groupe de ressources contenant l’infrastructure, vous obtenez une erreur, qui indique que le groupe de ressources est verrouillé.If you try to delete the infrastructure resource group, you get an error stating that the resource group is locked. Si vous tentez de supprimer ce verrou, vous obtenez une erreur, qui indique que le verrou ne peut pas être supprimé, car il appartient à une application système.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.

Au lieu de cela, supprimez le service, ce qui supprime également le groupe de ressources contenant l’infrastructure.Instead, delete the service, which also deletes the infrastructure resource group.

Pour les applications managées, sélectionnez le service que vous avez déployé.For managed applications, select the service you deployed.

Sélectionner un service

Notez que le service inclut un lien vers un groupe de ressources managé.Notice the service includes a link for a Managed Resource Group. Ce groupe de ressources contient l’infrastructure et est verrouillé.That resource group holds the infrastructure and is locked. Il ne peut pas être supprimé directement.It can't be directly deleted.

Afficher un groupe managé

Pour supprimer tous les éléments associés au service, y compris le groupe de ressources contenant l’infrastructure (qui est donc verrouillé), sélectionnez l’option Supprimer relative au service.To delete everything for the service, including the locked infrastructure resource group, select Delete for the service.

Suppression du service

Sauvegarde Azure et verrousAzure Backups and locks

Si vous verrouillez le groupe de ressources créé par le service Sauvegarde Azure, les sauvegardes échoueront.If you lock the resource group created by Azure Backup Service, backups will start to fail. Le service prend en charge un maximum de 18 points de restauration.The service supports a maximum of 18 restore points. Avec un verrou CanNotDelete, le service de sauvegarde ne peut pas nettoyer les points de restauration.With a CanNotDelete lock, the backup service is unable to clean up restore points. Pour plus d’informations, consultez le Forum aux questions – Sauvegarde de machines virtuelles Azure.For more information, see Frequently asked questions-Back up Azure VMs.

PortailPortal

  1. Dans le panneau Paramètres de la ressource, du groupe de ressources ou de l’abonnement que vous voulez verrouiller, sélectionnez Verrous.In the Settings blade for the resource, resource group, or subscription that you wish to lock, select Locks.

    sélectionner verrou

  2. Pour ajouter un verrou, sélectionnez Ajouter.To add a lock, select Add. Si vous souhaitez créer un verrou au niveau du parent, sélectionnez le parent.If you want to create a lock at a parent level, select the parent. La ressource actuellement sélectionnée hérite du verrou du parent.The currently selected resource inherits the lock from the parent. Vous pouvez par exemple verrouiller le groupe de ressources afin d’appliquer un verrou à toutes ses ressources.For example, you could lock the resource group to apply a lock to all its resources.

    ajouter verrou

  3. Choisissez un nom et un niveau de verrouillage pour le verrou.Give the lock a name and lock level. Si vous le souhaitez, vous pouvez ajouter des notes décrivant le verrou.Optionally, you can add notes that describe the lock.

    définir verrou

  4. Pour supprimer le verrou, sélectionnez les points de suspension, puis Supprimer parmi les options disponibles.To delete the lock, select the ellipsis and Delete from the available options.

    supprimer verrou

ModèleTemplate

Lorsque vous utilisez un modèle Resource Manager pour déployer un verrou, vous utilisez des valeurs différentes pour le nom et le type, en fonction de la portée du verrou.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.

Pour appliquer un verrou à une ressource, utilisez les formats suivants :When applying a lock to a resource, use the following formats:

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

Pour appliquer un verrou à un groupe de ressources ou à un abonnement, utilisez les formats suivants :When applying a lock to a resource group or subscription, use the following formats:

  • nom : {lockName}name - {lockName}
  • type : Microsoft.Authorization/lockstype - Microsoft.Authorization/locks

L’exemple suivant représente un modèle créant un verrou sur un compte de stockage.plan App Service et un verrou sur le site web.The following example shows a template that creates an app service plan, a web site, and a lock on the web site. Le type de ressource du verrou est le type de ressource de la ressource à verrouiller et /providers/locks.The resource type of the lock is the resource type of the resource to lock and /providers/locks. Le nom du verrou résulte de la concaténation du nom de la ressource avec /Microsoft.Authorization/ et le nom du verrou.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."
            }
        }
    ]
}

Pour obtenir un exemple de définition d’un verrou pour un groupe de ressources, voir Créer un groupe de ressources et de le verrouiller (Créer un groupe de ressources et le verrouiller).For an example of setting a lock on a resource group, see Create a resource group and lock it.

PowerShellPowerShell

Vous pouvez verrouiller des ressources déployées avec Azure PowerShell en utilisant la commande New-AzResourceLock.You lock deployed resources with Azure PowerShell by using the New-AzResourceLock command.

Pour verrouiller une ressource, indiquez le nom de la ressource, son type de ressource et son nom de groupe de ressources.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

Pour verrouiller un groupe de ressources : indiquez le nom du groupe de ressources.To lock a resource group, provide the name of the resource group.

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

Pour obtenir des informations sur un verrou, utilisez Get-AzResourceLock.To get information about a lock, use Get-AzResourceLock. Pour obtenir tous les verrous de votre abonnement, utilisez :To get all the locks in your subscription, use:

Get-AzResourceLock

Pour obtenir tous les verrous d’une ressource, utilisez :To get all locks for a resource, use:

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

Pour obtenir tous les verrous d’un groupe de ressources, utilisez :To get all locks for a resource group, use:

Get-AzResourceLock -ResourceGroupName exampleresourcegroup

Pour supprimer un verrou, utilisez :To delete a lock, use:

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

Azure CLIAzure CLI

Verrouillez les ressources déployées avec Azure CLI à l’aide de la commande az lock create.You lock deployed resources with Azure CLI by using the az lock create command.

Pour verrouiller une ressource, indiquez le nom de la ressource, son type de ressource et son nom de groupe de ressources.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

Pour verrouiller un groupe de ressources : indiquez le nom du groupe de ressources.To lock a resource group, provide the name of the resource group.

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

Pour obtenir des informations sur un verrou, utilisez la commande az lock list.To get information about a lock, use az lock list. Pour obtenir tous les verrous de votre abonnement, utilisez :To get all the locks in your subscription, use:

az lock list

Pour obtenir tous les verrous d’une ressource, utilisez :To get all locks for a resource, use:

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

Pour obtenir tous les verrous d’un groupe de ressources, utilisez :To get all locks for a resource group, use:

az lock list --resource-group exampleresourcegroup

Pour supprimer un verrou, utilisez :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

Vous pouvez verrouiller des ressources déployées à l’aide de l’ API REST pour les verrous de gestion.You can lock deployed resources with the REST API for management locks. L’API REST vous permet de créer et de supprimer des verrous, et de récupérer des informations relatives aux verrous existants.The REST API enables you to create and delete locks, and retrieve information about existing locks.

Pour créer un verrou, exécutez :To create a lock, run:

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

Le verrou peut être appliqué à un abonnement, à un groupe de ressources ou à une ressource.The scope could be a subscription, resource group, or resource. Le nom du verrou est personnalisable.The lock-name is whatever you want to call the lock. Pour la version de l’API, utilisez 2016-09-01.For api-version, use 2016-09-01.

Dans la demande, incluez un objet JSON spécifiant les propriétés du verrou.In the request, include a JSON object that specifies the properties for the lock.

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

Étapes suivantesNext steps