Uw resources vergrendelen om uw infrastructuur te beveiligen
Als beheerder kunt u een Azure-abonnement, resourcegroep of resource vergrendelen om ze te beschermen tegen onbedoelde verwijderingen en wijzigingen van gebruikers. De vergrendeling overschrijft alle gebruikersmachtigingen.
U kunt de vergrendelingen instellen om verwijderingen of wijzigingen te voorkomen. In de portal worden deze vergrendelingen Verwijderen en Alleen-lezen genoemd. In de opdrachtregel worden deze vergrendelingen CanNotDelete en ReadOnly genoemd.
- CanNotDelete betekent dat gemachtigde gebruikers een resource nog steeds kunnen lezen en wijzigen, maar dat ze de resource niet kunnen verwijderen.
- Alleen-lezen betekent dat gemachtigde gebruikers een resource kunnen lezen, maar ze kunnen deze niet verwijderen of bijwerken. Het toepassen van deze vergrendeling is vergelijkbaar met het beperken van alle geautoriseerde gebruikers tot de machtigingen die de rol Lezer biedt.
In tegenstelling tot op rollen gebaseerd toegangsbeheer (RBAC) gebruikt u beheervergrendelingen om een beperking toe te passen voor alle gebruikers en rollen. Zie Azure RBAC voor meer informatie over het instellen van machtigingen voor gebruikers en rollen.
Overname vergrendelen
Wanneer u een vergrendeling toepast op een bovenliggend bereik, nemen alle resources binnen dat bereik dezelfde vergrendeling over. Zelfs resources die u later toevoegt, nemen dezelfde bovenliggende vergrendeling over. De meest beperkende vergrendeling in de overname heeft voorrang.
Extensieresources nemen vergrendelingen over van de resource waarvoor ze worden toegepast. Microsoft.Insights/diagnosticSettings is bijvoorbeeld een type extensieresource. Als u een diagnostische instelling toepast op een opslagblob en het opslagaccount vergrendelt, kunt u de diagnostische instelling niet verwijderen. Deze overname is logisch omdat de volledige resource-id van de diagnostische instelling het volgende is:
/subscriptions/{sub-id}/resourceGroups/{rg-name}/providers/Microsoft.Storage/storageAccounts/{storage-name}/blobServices/default/providers/microsoft.insights/diagnosticSettings/{setting-name}"
Dit komt overeen met het bereik van de resource-id van de resource die is vergrendeld:
/subscriptions/{sub-id}/resourceGroups/{rg-name}/providers/Microsoft.Storage/storageAccounts/{storage-name}
Als u een verwijderingsvergrendeling voor een resource hebt en de resourcegroep probeert te verwijderen, blokkeert de functie de hele verwijderbewerking. Zelfs als de resourcegroep of andere resources in de resourcegroep zijn ontgrendeld, gebeurt het verwijderen niet. U hebt nooit een gedeeltelijke verwijdering.
Wanneer u een Azure-abonnement annuleert:
- Een resourcevergrendeling blokkeert de annulering van het abonnement niet.
- Azure behoudt uw resources door ze te deactiveren in plaats van ze onmiddellijk te verwijderen.
- Azure verwijdert uw resources alleen permanent na een wachttijd.
Bereik van vergrendelingen begrijpen
Notitie
Vergrendelingen zijn alleen van toepassing op Azure-bewerkingen op besturingsvlak en niet op gegevensvlakbewerkingen.
Azure-besturingsvlakbewerkingen gaan naar https://management.azure.com
. Azure-gegevensvlakbewerkingen gaan naar uw service-exemplaar, zoals https://myaccount.blob.core.windows.net/
. Zie het Azure-besturingsvlak en het gegevensvlak. Zie de Azure REST API om te ontdekken welke bewerkingen gebruikmaken van de URL van het besturingsvlak.
Het onderscheid betekent dat een resource wordt vergrendeld tegen wijzigingen, maar ze beperken niet hoe een resource de functies uitvoert. Een ReadOnly-vergrendeling, bijvoorbeeld op een logische SQL Database-server, beschermt deze tegen verwijderingen of wijzigingen. Hiermee kunt u gegevens in de serverdatabase maken, bijwerken of verwijderen. Gegevensvlakbewerkingen staan gegevenstransacties toe. Deze aanvragen gaan niet naar https://management.azure.com
.
Overwegingen voordat u uw vergrendelingen toepast
Het toepassen van vergrendelingen kan leiden tot onverwachte resultaten. Voor sommige bewerkingen, die geen resource lijken te wijzigen, zijn geblokkeerde acties vereist. Vergrendelingen voorkomen dat de POST-methode gegevens verzendt naar de ARM-API (Azure Resource Manager). Enkele veelvoorkomende voorbeelden van geblokkeerde bewerkingen zijn:
Een alleen-lezenvergrendeling voor een opslagaccount voorkomt dat gebruikers de accountsleutels vermelden. Een POST-aanvraag verwerkt de bewerking Azure Storage List Keys om de toegang tot de accountsleutels te beveiligen. De accountsleutels bieden volledige toegang tot gegevens in het opslagaccount. Wanneer een alleen-lezenvergrendeling is geconfigureerd voor een opslagaccount, moeten gebruikers die de accountsleutels niet hebben, Microsoft Entra-referenties gebruiken om toegang te krijgen tot blob- of wachtrijgegevens. Met een alleen-lezenvergrendeling voorkomt u ook dat Azure RBAC-rollen worden toegewezen aan het opslagaccount of aan een gegevenscontainer (blobcontainer of wachtrij).
Een alleen-lezenvergrendeling voor een opslagaccount beveiligt RBAC-toewijzingen die zijn gericht op een opslagaccount of een gegevenscontainer (blobcontainer of wachtrij).
Een alleen-lezenvergrendeling voor een opslagaccount voorkomt het maken van een blobcontainer.
Een alleen-lezenvergrendeling voor een opslagaccount voorkomt het maken van een blobcontainer. Het maken van bewerkingen in een opslagaccount kan echter worden uitgevoerd via zowel het besturingsvlak als het gegevensvlak. Alleen-lezen vergrendelt aanvragen voor het maken van besturingsvlakken, maar een gebruiker kan nog steeds een geldige maakbewerking uitvoeren op de resource via het gegevensvlak.
Een alleen-lezenvergrendeling of kan vergrendeling voor een opslagaccount niet verwijderen, voorkomt niet dat de gegevens worden verwijderd of gewijzigd. De gegevens worden ook niet beveiligd in een blob, wachtrij, tabel of bestand.
De Storage Account-API maakt bewerkingen voor het gegevensvlak en besturingsvlak beschikbaar. Als een aanvraag gegevensvlakbewerkingen gebruikt, beveiligt de vergrendeling van het opslagaccount geen blob-, wachtrij-, tabel- of bestandsgegevens in dat opslagaccount. Als de aanvraag echter besturingsvlakbewerkingen gebruikt, beveiligt de vergrendeling deze resources.
Als een aanvraag bijvoorbeeld bestandsshares gebruikt : verwijderen, wat een besturingsvlakbewerking is, mislukt de verwijdering. Als in de aanvraag Delete Share wordt gebruikt, wat een gegevensvlakbewerking is, wordt de verwijdering voltooid. U wordt aangeraden een besturingsvlakbewerking te gebruiken.
Een alleen-lezenvergrendeling voor een netwerkbeveiligingsgroep (NSG) voorkomt dat het bijbehorende NSG-stroomlogboek wordt gemaakt. Het maken of wijzigen van het bijbehorende NSG-stroomlogboek wordt niet voorkomen door een vergrendeling te verwijderen voor een netwerkbeveiligingsgroep (NSG ).
Met een alleen-lezenvergrendeling voor een App Service-resource voorkomt u dat Visual Studio Server Explorer bestanden voor de resource weergeeft omdat voor deze interactie schrijftoegang is vereist.
Een alleen-lezenvergrendeling voor een resourcegroep die een App Service-plan bevat, voorkomt dat u omhoog of uit het plan kunt schalen.
Een alleen-lezenvergrendeling voor een resourcegroep die een virtuele machine bevat, voorkomt dat alle gebruikers een virtuele machine starten of opnieuw starten. Voor deze bewerkingen is een POST-methodeaanvraag vereist.
Een alleen-lezenvergrendeling voor een resourcegroep voorkomt dat u bestaande resources in of uit de resourcegroep verplaatst. Houd er echter rekening mee dat een resource met alleen-lezenvergrendeling kan worden verplaatst naar een andere resourcegroep.
Een alleen-lezenvergrendeling voor een resourcegroep die een Automation-account bevat, voorkomt dat alle runbooks worden gestart. Voor deze bewerkingen is een POST-methodeaanvraag vereist.
Een vergrendeling die niet kan worden verwijderd voor een resource of resourcegroep voorkomt het verwijderen van Azure RBAC-toewijzingen.
Een vergrendeling die niet kan worden verwijderd voor een resourcegroep , voorkomt dat Azure Resource Manager implementaties in de geschiedenis automatisch verwijdert. Als u 800 implementaties in de geschiedenis bereikt, mislukken uw implementaties.
Een vergrendeling die niet kan worden verwijderd voor de resourcegroep die door de Azure Backup-service is gemaakt, zorgt ervoor dat back-ups mislukken. De service ondersteunt maximaal 18 herstelpunten. Wanneer de back-upservice is vergrendeld, kunnen herstelpunten niet worden opgeschoond. Zie Veelgestelde vragen: Een back-up maken van Azure-VM's voor meer informatie.
Een vergrendeling die niet kan worden verwijderd voor een resourcegroep die Azure Machine Learning-werkruimten bevat, voorkomt dat automatisch schalen van Azure Machine Learning-rekenclusters correct werkt. Met de vergrendeling kan automatisch schalen ongebruikte knooppunten niet verwijderen. Uw oplossing verbruikt meer resources dan vereist is voor de workload.
Een alleen-lezenvergrendeling voor een Log Analytics-werkruimte voorkomt dat UEBA (User and Entity Behavior Analytics) wordt ingeschakeld.
Een vergrendeling die niet kan worden verwijderd voor een Log Analytics-werkruimte , voorkomt geen opschoonbewerkingen voor gegevens. Verwijder in plaats daarvan de rol gegevens opschonen van de gebruiker.
Een alleen-lezenvergrendeling voor een abonnement voorkomt dat Azure Advisor correct werkt. Advisor kan de resultaten van de query's niet opslaan.
Een alleen-lezenvergrendeling op een Application Gateway voorkomt dat u de back-endstatus van de toepassingsgateway krijgt. Deze bewerking maakt gebruik van een POST-methode, die een alleen-lezen vergrendeling blokkeert.
Een alleen-lezenvergrendeling op een AKS-cluster (Azure Kubernetes Service) beperkt de toegang tot clusterbronnen via de portal. Een alleen-lezenvergrendeling voorkomt dat u de kubernetes-resourcessectie van het AKS-cluster in Azure Portal kunt gebruiken om een clusterresource te kiezen. Voor deze bewerkingen is een POST-methodeaanvraag voor verificatie vereist.
Een vergrendeling die niet kan worden verwijderd op een virtuele machine die wordt beveiligd door Site Recovery , voorkomt dat bepaalde resourcekoppelingen met betrekking tot Site Recovery correct worden verwijderd wanneer u de beveiliging verwijdert of replicatie uitschakelt. Als u de virtuele machine later opnieuw wilt beveiligen, moet u de vergrendeling verwijderen voordat u de beveiliging uitschakelt. Als u de vergrendeling niet verwijdert, moet u bepaalde stappen uitvoeren om de verlopen koppelingen op te schonen voordat u de virtuele machine kunt beveiligen. Zie Problemen met Azure VM-replicatie oplossen voor meer informatie.
Voor Postgresql mag voor het virtuele netwerk geen resourcevergrendelingen zijn ingesteld op het niveau van het virtuele netwerk of subnet, omdat vergrendelingen kunnen interfereren met netwerk- en DNS-bewerkingen. Voordat u de server in een virtueel netwerk maakt, moet u ervoor zorgen dat u alle verwijderings- of alleen-lezenvergrendelingen verwijdert uit uw virtuele netwerk en alle subnetten. U kunt de vergrendelingen opnieuw gebruiken nadat de server is gemaakt.
Wie kan vergrendelingen maken of verwijderen
Als u beheervergrendelingen wilt maken of verwijderen, moet u toegang hebben tot Microsoft.Authorization/*
- of Microsoft.Authorization/locks/*
-acties. Gebruikers die zijn toegewezen aan de rol Eigenaar en Gebruikerstoegangsbeheerder hebben de vereiste toegang. Sommige gespecialiseerde ingebouwde rollen verlenen deze toegang. U kunt een aangepaste rol maken met de vereiste machtigingen.
Beheerde toepassingen en vergrendelingen
Sommige Azure-services, zoals Azure Databricks, gebruiken beheerde toepassingen om de service te implementeren. In dat geval maakt de service twee resourcegroepen. Een daarvan is een ontgrendelde resourcegroep die een serviceoverzicht bevat. De andere is een vergrendelde resourcegroep die de service-infrastructuur bevat.
Als u de infrastructuurresourcegroep probeert te verwijderen, krijgt u een foutmelding waarin wordt aangegeven dat de resourcegroep is vergrendeld. Als u de vergrendeling voor de infrastructuurresourcegroep probeert te verwijderen, krijgt u een foutmelding dat de vergrendeling niet kan worden verwijderd omdat een systeemtoepassing eigenaar is van de vergrendeling.
Verwijder in plaats daarvan de service, waarmee ook de infrastructuurresourcegroep wordt verwijderd.
Kies voor beheerde toepassingen de service die u hebt geïmplementeerd.
U ziet dat de service een koppeling bevat voor een beheerde resourcegroep. Deze resourcegroep bevat de infrastructuur en is vergrendeld. U kunt deze alleen indirect verwijderen.
Als u alles voor de service wilt verwijderen, inclusief de resourcegroep voor de vergrendelde infrastructuur, kiest u Verwijderen voor de service.
Vergrendelingen configureren
Portal
In het linkernavigatiedeelvenster is de naam van de functie Abonnementsvergrendeling resourcevergrendelingen, terwijl de naam van de functie Voor het vergrendelen van de resourcegroep vergrendeling vergrendelingen is.
Ga naar de blade Vergrendelingen voor de resource, de resourcegroep of het abonnement waarvoor u een vergrendeling wilt instellen en selecteer Vergrendelingen.
Notitie
U kunt geen vergrendeling toevoegen aan beheergroepen.
Als u een vergrendeling wilt toevoegen, selecteert u Toevoegen. Als u een vergrendeling op bovenliggend niveau wilt maken, selecteert u het bovenliggende item. De momenteel geselecteerde resource neemt de vergrendeling over van het bovenliggende item. U kunt bijvoorbeeld de resourcegroep vergrendelen om een vergrendeling toe te passen op alle bijbehorende resources.
Geef de vergrendeling een naam en vergrendelingsniveau. U kunt desgewenst ook notities toevoegen waarin de vergrendeling wordt beschreven.
Als u de vergrendeling wilt verwijderen, selecteert u de knop Verwijderen.
Template
Wanneer u een ARM-sjabloon of Bicep-bestand gebruikt om een vergrendeling te implementeren, is het goed om te begrijpen hoe het implementatiebereik en het vergrendelingsbereik samenwerken. Als u een vergrendeling wilt toepassen op het implementatiebereik, zoals het vergrendelen van een resourcegroep of een abonnement, laat u de eigenschap bereik uitgeschakeld. Wanneer u een resource vergrendelt, stelt u binnen het implementatiebereik de bereikeigenschap in op de vergrendeling.
Met de volgende sjabloon wordt een vergrendeling toegepast op de resourcegroep. U ziet dat er geen bereikeigenschap is voor de vergrendelingsresource, omdat het vergrendelingsbereik overeenkomt met het implementatiebereik. Implementeer deze sjabloon op het niveau van de resourcegroep.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
},
"resources": [
{
"type": "Microsoft.Authorization/locks",
"apiVersion": "2016-09-01",
"name": "rgLock",
"properties": {
"level": "CanNotDelete",
"notes": "Resource group should not be deleted."
}
}
]
}
Als u een resourcegroep wilt maken en deze wilt vergrendelen, implementeert u de volgende sjabloon op abonnementsniveau.
{
"$schema": "https://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"rgName": {
"type": "string"
},
"rgLocation": {
"type": "string"
}
},
"variables": {},
"resources": [
{
"type": "Microsoft.Resources/resourceGroups",
"apiVersion": "2021-04-01",
"name": "[parameters('rgName')]",
"location": "[parameters('rgLocation')]",
"properties": {}
},
{
"type": "Microsoft.Resources/deployments",
"apiVersion": "2021-04-01",
"name": "lockDeployment",
"resourceGroup": "[parameters('rgName')]",
"dependsOn": [
"[resourceId('Microsoft.Resources/resourceGroups/', parameters('rgName'))]"
],
"properties": {
"mode": "Incremental",
"template": {
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {},
"variables": {},
"resources": [
{
"type": "Microsoft.Authorization/locks",
"apiVersion": "2016-09-01",
"name": "rgLock",
"properties": {
"level": "CanNotDelete",
"notes": "Resource group and its resources should not be deleted."
}
}
],
"outputs": {}
}
}
}
],
"outputs": {}
}
Wanneer u een vergrendeling toepast op een resource binnen de resourcegroep, voegt u de bereikeigenschap toe. Stel het bereik in op de naam van de resource die moet worden vergrendeld.
In het volgende voorbeeld ziet u een sjabloon waarmee een App Service-plan, een website en een vergrendeling op de website worden gemaakt. Het bereik van de vergrendeling is ingesteld op de website.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"hostingPlanName": {
"type": "string"
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]"
}
},
"variables": {
"siteName": "[concat('ExampleSite', uniqueString(resourceGroup().id))]"
},
"resources": [
{
"type": "Microsoft.Web/serverfarms",
"apiVersion": "2020-12-01",
"name": "[parameters('hostingPlanName')]",
"location": "[parameters('location')]",
"sku": {
"tier": "Free",
"name": "f1",
"capacity": 0
},
"properties": {
"targetWorkerCount": 1
}
},
{
"type": "Microsoft.Web/sites",
"apiVersion": "2020-12-01",
"name": "[variables('siteName')]",
"location": "[parameters('location')]",
"dependsOn": [
"[resourceId('Microsoft.Web/serverfarms', parameters('hostingPlanName'))]"
],
"properties": {
"serverFarmId": "[parameters('hostingPlanName')]"
}
},
{
"type": "Microsoft.Authorization/locks",
"apiVersion": "2016-09-01",
"name": "siteLock",
"scope": "[concat('Microsoft.Web/sites/', variables('siteName'))]",
"dependsOn": [
"[resourceId('Microsoft.Web/sites', variables('siteName'))]"
],
"properties": {
"level": "CanNotDelete",
"notes": "Site should not be deleted."
}
}
]
}
Azure PowerShell
U vergrendelt geïmplementeerde resources met Azure PowerShell met behulp van de opdracht New-AzResourceLock .
Als u een resource wilt vergrendelen, geeft u de naam van de resource, het resourcetype en de naam van de resourcegroep op.
New-AzResourceLock -LockLevel CanNotDelete -LockName LockSite -ResourceName examplesite -ResourceType Microsoft.Web/sites -ResourceGroupName exampleresourcegroup
Als u een resourcegroep wilt vergrendelen, geeft u de naam van de resourcegroep op.
New-AzResourceLock -LockName LockGroup -LockLevel CanNotDelete -ResourceGroupName exampleresourcegroup
Gebruik Get-AzResourceLock om informatie over een vergrendeling op te halen. Als u alle vergrendelingen in uw abonnement wilt ophalen, gebruikt u:
Get-AzResourceLock
Als u alle vergrendelingen voor een resource wilt ophalen, gebruikt u:
Get-AzResourceLock -ResourceName examplesite -ResourceType Microsoft.Web/sites -ResourceGroupName exampleresourcegroup
Als u alle vergrendelingen voor een resourcegroep wilt ophalen, gebruikt u:
Get-AzResourceLock -ResourceGroupName exampleresourcegroup
Als u een vergrendeling voor een resource wilt verwijderen, gebruikt u:
$lockId = (Get-AzResourceLock -ResourceGroupName exampleresourcegroup -ResourceName examplesite -ResourceType Microsoft.Web/sites).LockId
Remove-AzResourceLock -LockId $lockId
Als u een vergrendeling voor een resourcegroep wilt verwijderen, gebruikt u:
$lockId = (Get-AzResourceLock -ResourceGroupName exampleresourcegroup).LockId
Remove-AzResourceLock -LockId $lockId
Azure-CLI
U vergrendelt geïmplementeerde resources met Azure CLI met behulp van de opdracht az lock create .
Als u een resource wilt vergrendelen, geeft u de naam van de resource, het resourcetype en de naam van de resourcegroep op.
az lock create --name LockSite --lock-type CanNotDelete --resource-group exampleresourcegroup --resource-name examplesite --resource-type Microsoft.Web/sites
Als u een resourcegroep wilt vergrendelen, geeft u de naam van de resourcegroep op.
az lock create --name LockGroup --lock-type CanNotDelete --resource-group exampleresourcegroup
Gebruik az lock list om informatie over een vergrendeling op te halen. Als u alle vergrendelingen in uw abonnement wilt ophalen, gebruikt u:
az lock list
Als u alle vergrendelingen voor een resource wilt ophalen, gebruikt u:
az lock list --resource-group exampleresourcegroup --resource-name examplesite --namespace Microsoft.Web --resource-type sites --parent ""
Als u alle vergrendelingen voor een resourcegroep wilt ophalen, gebruikt u:
az lock list --resource-group exampleresourcegroup
Als u een vergrendeling voor een resource wilt verwijderen, gebruikt u:
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
Als u een vergrendeling voor een resourcegroep wilt verwijderen, gebruikt u:
lockid=$(az lock show --name LockSite --resource-group exampleresourcegroup --output tsv --query id)
az lock delete --ids $lockid
Python
U vergrendelt geïmplementeerde resources met Python met behulp van de opdracht ManagementLockClient.management_locks.create_or_update_at_resource_group_level .
Als u een resource wilt vergrendelen, geeft u de naam van de resource, het resourcetype en de naam van de resourcegroep op.
import os
from azure.identity import AzureCliCredential
from azure.mgmt.resource import ManagementLockClient
credential = AzureCliCredential()
subscription_id = os.environ["AZURE_SUBSCRIPTION_ID"]
lock_client = ManagementLockClient(credential, subscription_id)
lock_result = lock_client.management_locks.create_or_update_at_resource_level(
"exampleGroup",
"Microsoft.Web",
"",
"sites",
"examplesite",
"lockSite",
{
"level": "CanNotDelete"
}
)
Als u een resourcegroep wilt vergrendelen, geeft u de naam van de resourcegroep op.
import os
from azure.identity import AzureCliCredential
from azure.mgmt.resource import ManagementLockClient
credential = AzureCliCredential()
subscription_id = os.environ["AZURE_SUBSCRIPTION_ID"]
lock_client = ManagementLockClient(credential, subscription_id)
lock_result = lock_client.management_locks.create_or_update_at_resource_group_level(
"exampleGroup",
"lockGroup",
{
"level": "CanNotDelete"
}
)
Gebruik ManagementLockClient.management_locks.get om informatie over alle vergrendelingen in uw abonnement op te halen. Als u alle vergrendelingen in uw abonnement wilt ophalen, gebruikt u:
import os
from azure.identity import AzureCliCredential
from azure.mgmt.resource import ManagementLockClient
credential = AzureCliCredential()
subscription_id = os.environ["AZURE_SUBSCRIPTION_ID"]
lock_client = ManagementLockClient(credential, subscription_id)
lock_result = lock_client.management_locks.list_at_subscription_level()
for lock in lock_result:
print(f"Lock name: {lock.name}")
print(f"Lock level: {lock.level}")
print(f"Lock notes: {lock.notes}")
Als u een vergrendeling voor een resource wilt ophalen, gebruikt u:
import os
from azure.identity import AzureCliCredential
from azure.mgmt.resource import ManagementLockClient
credential = AzureCliCredential()
subscription_id = os.environ["AZURE_SUBSCRIPTION_ID"]
lock_client = ManagementLockClient(credential, subscription_id)
lock_result = lock_client.management_locks.get_at_resource_level(
"exampleGroup",
"Microsoft.Web",
"",
"sites",
"examplesite",
"lockSite"
)
print(f"Lock ID: {lock_result.id}")
print(f"Lock Name: {lock_result.name}")
print(f"Lock Level: {lock_result.level}")
Als u een vergrendeling voor een resourcegroep wilt ophalen, gebruikt u:
import os
from azure.identity import AzureCliCredential
from azure.mgmt.resource import ManagementLockClient
credential = AzureCliCredential()
subscription_id = os.environ["AZURE_SUBSCRIPTION_ID"]
lock_client = ManagementLockClient(credential, subscription_id)
lock_result = lock_client.management_locks.get_at_resource_group_level(
"exampleGroup",
"lockGroup"
)
print(f"Lock ID: {lock_result.id}")
print(f"Lock Level: {lock_result.level}")
Als u een vergrendeling voor een resource wilt verwijderen, gebruikt u:
import os
from azure.identity import AzureCliCredential
from azure.mgmt.resource import ManagementLockClient
credential = AzureCliCredential()
subscription_id = os.environ["AZURE_SUBSCRIPTION_ID"]
lock_client = ManagementLockClient(credential, subscription_id)
lock_client.management_locks.delete_at_resource_level(
"exampleGroup",
"Microsoft.Web",
"",
"sites",
"examplesite",
"lockSite"
)
Als u een vergrendeling voor een resourcegroep wilt verwijderen, gebruikt u:
import os
from azure.identity import AzureCliCredential
from azure.mgmt.resource import ManagementLockClient
credential = AzureCliCredential()
subscription_id = os.environ["AZURE_SUBSCRIPTION_ID"]
lock_client = ManagementLockClient(credential, subscription_id)
lock_client.management_locks.delete_at_resource_group_level("exampleGroup", "lockGroup")
REST-API
U kunt geïmplementeerde resources vergrendelen met de REST API voor beheervergrendelingen. Met de REST API kunt u vergrendelingen maken en verwijderen en informatie over bestaande vergrendelingen ophalen.
Voer het volgende uit om een vergrendeling te maken:
PUT https://management.azure.com/{scope}/providers/Microsoft.Authorization/locks/{lock-name}?api-version={api-version}
Het bereik kan een abonnement, resourcegroep of resource zijn. De naam van de vergrendeling kan zijn wat u wilt noemen. Gebruik 2016-09-01 voor de API-versie.
Neem in de aanvraag een JSON-object op waarmee de vergrendelingseigenschappen worden opgegeven.
{
"properties": {
"level": "CanNotDelete",
"notes": "Optional text notes."
}
}
Volgende stappen
- Zie Tags gebruiken om uw resources te ordenen voor meer informatie over het logisch ordenen van uw resources.
- U kunt beperkingen en conventies toepassen in uw abonnement met aangepaste beleidsregels. Zie Wat is Azure Policy? voor meer informatie.
- Voor begeleiding bij de manier waarop ondernemingen Resource Manager effectief kunnen gebruiken voor het beheer van abonnementen, gaat u naar Azure enterprise-platform - Prescriptieve abonnementsgovernance.