Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Jako administrator możesz zablokować subskrypcję platformy Azure, grupę zasobów lub zasób, aby chronić je przed przypadkowymi usunięciami i modyfikacjami użytkowników. Mechanizm blokujący unieważnia wszystkie uprawnienia użytkownika.
Możesz ustawiać blokady, które zapobiegają usunięciom lub modyfikacjom. W portalu te blokady są nazywane Usuń i tylko do odczytu. W wierszu polecenia te blokady mają nazwy CanNotDelete i ReadOnly.
- CanNotDelete oznacza, że użytkownicy autoryzowani mogą odczytywać i modyfikować zasób, ale nie mogą go usunąć.
- ReadOnly oznacza, że autoryzowani użytkownicy mogą odczytywać zasób, ale nie mogą go usunąć ani zaktualizować. Zastosowanie tej blokady jest podobne do ograniczenia wszystkich autoryzowanych użytkowników do uprawnień zapewnianych przez rolę Czytelnik .
W przeciwieństwie do kontroli dostępu opartej na rolach (RBAC) blokady zarządzania są stosowane w celu zastosowania ograniczeń dla wszystkich użytkowników i ról. Aby dowiedzieć się więcej o ustawianiu uprawnień dla użytkowników i ról, zobacz RBAC platformy Azure.
Blokowanie dziedziczenia
Jeśli zastosujesz ograniczenie na poziomie nadrzędnego zakresu, wszystkie zasoby w tym zakresie odziedziczą to samo ograniczenie. Nawet dodane później zasoby dziedziczą tę samą blokadę nadrzędną. Najbardziej restrykcyjna blokada w łańcuchu dziedziczenia ma pierwszeństwo.
Zasoby rozszerzenia dziedziczą blokady z zasobu, do którego są one stosowane. Na przykład Microsoft.Insights/diagnosticSettings jest typem zasobu rozszerzenia. Jeśli zastosujesz ustawienie diagnostyczne do obiektu blob magazynu i zablokujesz konto magazynu, nie możesz usunąć ustawienia diagnostycznego. To dziedziczenie ma sens, ponieważ pełny identyfikator zasobu ustawienia diagnostycznego to:
/subscriptions/{sub-id}/resourceGroups/{rg-name}/providers/Microsoft.Storage/storageAccounts/{storage-name}/blobServices/default/providers/microsoft.insights/diagnosticSettings/{setting-name}"
Identyfikator zablokowanego zasobu musi być zgodny z następującym formatem:
/subscriptions/{sub-id}/resourceGroups/{rg-name}/providers/Microsoft.Storage/storageAccounts/{storage-name}
Jeśli masz blokadę Usuń dla zasobu i spróbujesz usunąć grupę zasobów, funkcja blokuje całą operację usuwania. Nawet jeśli grupa zasobów lub inne zasoby w grupie zasobów zostaną odblokowane, usunięcie nie nastąpi. Częściowe usunięcie nie jest możliwe.
Po anulowaniu subskrypcji platformy Azure:
- Blokada zasobu nie blokuje anulowania subskrypcji.
- Platforma Azure zachowuje zasoby, dezaktywując je zamiast natychmiast je usuwać.
- Platforma Azure usuwa zasoby trwale dopiero po upływie okresu oczekiwania.
Omówienie zakresu blokad
Uwaga
Blokady dotyczą tylko operacji płaszczyzny sterowania platformy Azure, a nie operacji płaszczyzny danych.
Operacje płaszczyzny sterowania platformy Azure trafią do https://management.azure.com. Operacje płaszczyzny danych platformy Azure przechodzą do wystąpienia usługi, takiego jak https://myaccount.blob.core.windows.net/. Aby uzyskać więcej informacji, zobacz Płaszczyzna sterowania i płaszczyzna danych platformy Azure. Aby dowiedzieć się, które operacje używają adresu URL płaszczyzny sterowania, zapoznaj się z interfejsem REST API platformy Azure.
Rozróżnienie oznacza, że blokady chronią zasób przed zmianami, ale nie ograniczają sposobu działania zasobu. Na przykład blokada ReadOnly na serwerze logicznym usługi SQL Database chroni ją przed usunięciem lub modyfikacjami. Umożliwia tworzenie, aktualizowanie lub usuwanie danych w bazie danych serwera. Operacje płaszczyzny danych umożliwiają transakcje danych. Te żądania nie trafiają do https://management.azure.com.
Rozważania przed zastosowaniem blokad
Stosowanie blokad może prowadzić do nieoczekiwanych wyników. Niektóre operacje, które nie wydają się modyfikować zasobu, wymagają zablokowanych akcji. Blokady uniemożliwiają metodę POST wysyłanie danych do interfejsu API usługi Azure Resource Manager. Oto kilka typowych przykładów zablokowanych operacji:
Blokada do odczytu na koncie magazynowania uniemożliwia użytkownikom wyświetlanie kluczy konta. Żądanie POST obsługuje operację List Keys usługi Azure Storage w celu ochrony dostępu do kluczy konta. Klucze konta zapewniają pełny dostęp do danych na koncie pamięci masowej. Po skonfigurowaniu blokady tylko do odczytu dla konta magazynowego, użytkownicy bez kluczy konta muszą używać poświadczeń usługi Microsoft Entra, aby uzyskać dostęp do danych obiektów blob lub kolejek. Blokada w trybie tylko do odczytu uniemożliwia również przypisanie ról RBAC platformy Azure, które są zdefiniowane dla konta magazynowego lub kontenera danych (kontenera obiektów blob lub kolejki).
Blokada tylko do odczytu na koncie magazynu chroni przypisania RBAC w ramach konta magazynu lub kontenera danych (kontener obiektów blob lub kolejki).
Blokada tylko do odczytu na koncie magazynu uniemożliwia utworzenie kontenera obiektów blob.
Blokada tylko do odczytu na koncie magazynu uniemożliwia utworzenie kontenera obiektów blob. Jednak operacje tworzenia na koncie magazynowym można wykonywać zarówno za pomocą płaszczyzny sterowania, jak i płaszczyzny danych. Blokady tylko do odczytu blokują jedynie żądania tworzenia na płaszczyźnie sterowania, ale użytkownik nadal może wykonać prawidłową operację tworzenia zasobu za pośrednictwem płaszczyzny danych.
Blokada tylko do odczytu lub blokada uniemożliwiająca usunięcie na koncie przechowywania nie chroni danych przed usunięciem ani modyfikacją. Nie chroni również danych w obiekcie blob, kolejce, tabeli ani pliku.
Interfejs API konta magazynu uwidacznia operacje płaszczyzny danych i płaszczyzny sterowania. Jeśli żądanie używa operacji warstwy danych, blokada na koncie magazynu nie chroni obiektów blob, kolejek, tabel ani danych pliku na tym koncie magazynu. Blokada chroni jednak te zasoby, jeśli żądanie używa operacji płaszczyzny sterowania.
Jeśli na przykład żądanie używa udziałów plików — Usuwanie, operacja płaszczyzny sterowania kończy się niepowodzeniem. Jeśli żądanie używa Usuń zasób, operacja na płaszczyźnie danych zakończy się pomyślnie. Zalecamy zastosowanie operacji control plane.
Blokada tylko do odczytu w sieciowej grupie zabezpieczeń (NSG) uniemożliwia utworzenie odpowiedniego dziennika przepływu NSG. Blokada nieusuwalności na NSG nie uniemożliwia tworzenia ani modyfikowania odpowiedniego dziennika przepływu NSG.
Blokada tylko do odczytu w zasobie usługi App Service uniemożliwia eksploratorowi programu Visual Studio Server wyświetlanie plików dla zasobu, ponieważ ta interakcja wymaga dostępu do zapisu.
Blokada tylko do odczytu w grupie zasobów, która zawiera plan usługi App Service, uniemożliwia skalowanie w górę lub poza planem.
Blokada tylko do odczytu w grupie zasobów, która zawiera maszynę wirtualną, uniemożliwia wszystkim użytkownikom uruchamianie lub ponowne uruchamianie maszyny wirtualnej. Te operacje wymagają żądania metody POST.
Blokada tylko do odczytu w grupie zasobów uniemożliwia przenoszenie istniejących zasobów do lub z grupy zasobów. Można jednak przenieść zasób z blokadą tylko do odczytu do innej grupy zasobów.
pl-PL: Blokada tylko do odczytu w grupie zasobów zawierającej konto automatyzacji uniemożliwia uruchamianie wszystkich Runbooków. Te operacje wymagają żądania metody POST.
Blokada uniemożliwiająca usunięcie zasobu lub grupy zasobów uniemożliwia usunięcie przypisań Azure RBAC.
Blokada nieusuwalna na grupie zasobów uniemożliwia usłudze Resource Manager automatyczne usuwanie wdrożeń w historii. Jeśli osiągniesz 800 wdrożeń w historii, wdrożenia kończą się niepowodzeniem.
Tworzenie kopii zapasowych kończy się niepowodzeniem, gdy na grupie zasobów utworzonej przez Azure Backup Service znajduje się blokada "cannot-delete". Usługa obsługuje maksymalnie 18 punktów przywracania. Po zablokowaniu usługa kopii zapasowej nie może wyczyścić punktów przywracania. Aby uzyskać więcej informacji, zobacz Często zadawane pytania — tworzenie kopii zapasowych maszyn wirtualnych platformy Azure.
Blokada nie może zostać usunięta w grupie zasobów, która zawiera obszary robocze usługi Azure Machine Learning , uniemożliwia poprawne działanie automatycznego skalowania klastrów obliczeniowych usługi Azure Machine Learning. Dzięki blokadzie skalowanie automatyczne nie może usunąć nieużywanych węzłów. Rozwiązanie zużywa więcej zasobów niż są wymagane dla obciążenia.
Blokada tylko do odczytu w obszarze roboczym usługi Log Analytics uniemożliwia włączanie analizy zachowań użytkowników i jednostek (UEBA).
Blokada, której nie można usunąć, w obszarze roboczym Log Analytics nie uniemożliwia operacji czyszczenia danych. Zamiast tego usuń rolę przeczyszczania danych z użytkownika.
Blokada tylko do odczytu w subskrypcji uniemożliwia poprawne działanie usługi Azure Advisor . Usługa Advisor nie może przechowywać wyników zapytań.
Blokada tylko do odczytu na Application Gateway uniemożliwia uzyskanie stanu zdrowia zaplecza bramy aplikacji. Ta operacja używa metody POST, którą blokuje blokada tylko do odczytu.
Blokada tylko do odczytu w klastrze usługi Azure Kubernetes Service (AKS) ogranicza dostęp do zasobów klastra za pośrednictwem portalu. Blokada tylko do odczytu uniemożliwia korzystanie z sekcji zasobów Kubernetes klastra AKS w witrynie Azure Portal w celu wybrania zasobu klastra. Te operacje wymagają żądania metody POST na potrzeby uwierzytelniania.
Blokada nieusuwalna na maszynie wirtualnej chronionej przez usługę Site Recovery uniemożliwia usunięcie niektórych łączy zasobów związanych z usługą Site Recovery po usunięciu ochrony lub wyłączeniu replikacji. Jeśli planujesz ponownie chronić maszynę wirtualną później, usuń blokadę przed wyłączeniem ochrony. Jeśli blokada nie zostanie usunięta, należy wykonać pewne kroki, aby wyczyścić nieaktualne linki, zanim będzie można chronić maszynę wirtualną. Aby uzyskać więcej informacji, zobacz Rozwiązywanie problemów z błędami replikacji maszyn wirtualnych z platformy Azure do Azure.
W przypadku bazy danych PostgreSQL sieć wirtualna nie powinna mieć żadnych blokad zasobów ustawionych na poziomie sieci wirtualnej lub podsieci, ponieważ blokady mogą zakłócać operacje sieci i systemu nazw domen. Przed utworzeniem serwera w sieci wirtualnej upewnij się, że wszystkie blokady usuwania lub tylko do odczytu są usuwane z sieci wirtualnej i wszystkich podsieci. Blokady można ponownie zastosować po utworzeniu serwera.
Kto może tworzyć lub usuwać blokady
Aby móc tworzyć lub usuwać blokady zarządzania, musisz mieć dostęp do działań Microsoft.Authorization/* lub Microsoft.Authorization/locks/*. Użytkownicy przypisani do ról Właściciel i Administrator dostępu użytkowników mają wymagany dostęp. Niektóre wyspecjalizowane role wbudowane również przyznają ten dostęp. Możesz utworzyć rolę niestandardową z wymaganymi uprawnieniami.
Aplikacje zarządzane i blokady
Niektóre usługi platformy Azure używają aplikacji zarządzanych do implementowania usługi; Usługa Azure Databricks w jednym przykładzie. W takim przypadku usługa tworzy dwie grupy zasobów. Jedną z nich jest odblokowana grupa zasobów zawierająca przegląd usługi. Druga to zablokowana grupa zasobów zawierająca infrastrukturę usługi.
Jeśli spróbujesz usunąć grupę zasobów infrastruktury, zostanie wyświetlony błąd informujący, że grupa zasobów jest zablokowana. Jeśli spróbujesz usunąć blokadę dla grupy zasobów infrastruktury, zostanie wyświetlony błąd informujący, że nie można usunąć blokady, ponieważ aplikacja systemowa jest jej właścicielem.
Zamiast tego usuń usługę, która również usuwa grupę zasobów infrastruktury.
W przypadku aplikacji zarządzanych wybierz wdrożoną usługę.
Zwróć uwagę, że usługa zawiera link dla zarządzanej grupy zasobów. Ta grupa zasobów przechowuje infrastrukturę i jest zablokowana. Można je usunąć tylko pośrednio.
Aby usunąć wszystkie elementy usługi, w tym zablokowaną grupę zasobów infrastruktury, wybierz pozycję Usuń dla usługi.
Konfigurowanie blokad
Azure Portal
W panelu nawigacyjnym po lewej stronie, nazwa funkcji blokady subskrypcji to Blokady zasobów, a nazwa funkcji blokady grupy zasobów to Blokady.
W bloku Ustawienia dla zasobu, grupy zasobów lub subskrypcji do zablokowania wybierz pozycję Blokady.
Uwaga
Nie można dodać blokady do grup zarządzania.
Aby dodać blokadę, wybierz pozycję Dodaj. Jeśli chcesz utworzyć blokadę na poziomie nadrzędnym, wybierz element nadrzędny. Aktualnie wybrany zasób dziedziczy blokadę z obiektu nadrzędnego. Możesz na przykład zablokować grupę zasobów, aby zastosować blokadę do wszystkich jej zasobów.
Nadaj blokadzie nazwę i poziom blokady. Opcjonalnie możesz dodać notatki opisujące blokadę.
Aby usunąć blokadę, wybierz przycisk Usuń.
Szablon
Jeśli używasz szablonu usługi Resource Manager (szablonu usługi ARM) lub pliku Bicep do wdrożenia blokady, musisz zrozumieć, jak zakres wdrożenia i zakres blokady współpracują ze sobą. Aby nałożyć blokadę na zakres wdrażania, na przykład podczas blokowania grupy zasobów lub subskrypcji, nie ustawiaj właściwości zakresu. Podczas blokowania zasobu w zakresie wdrożenia ustaw właściwość zakresu na blokadzie.
Poniższy szablon stosuje blokadę do grupy zasobów. Zwróć uwagę, że w zasobie blokady nie ma właściwości zakresu, ponieważ zakres blokady jest zgodny z zakresem wdrożenia. Wdróż ten szablon na poziomie grupy zasobów.
{
"$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."
}
}
]
}
Aby utworzyć grupę zasobów i ją zablokować, wdróż poprzedni szablon na poziomie subskrypcji.
{
"$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": {}
}
Podczas stosowania blokady do zasobu w grupie zasobów dodaj właściwość zakresu. Ustaw zakres na nazwę zasobu, który chcesz zablokować.
Poniższy przykład przedstawia szablon, który tworzy plan usługi App Service, witrynę internetową i blokadę na witrynie internetowej. Zakres blokady jest ustawiony na witrynę internetową.
{
"$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żyj Azure PowerShell do zablokowania wdrożonych zasobów za pomocą polecenia New-AzResourceLock.
Aby zablokować zasób, podaj nazwę zasobu, typ zasobu i nazwę grupy zasobów.
New-AzResourceLock -LockLevel CanNotDelete -LockName LockSite -ResourceName examplesite -ResourceType Microsoft.Web/sites -ResourceGroupName exampleresourcegroup
Aby zablokować grupę zasobów, podaj nazwę grupy zasobów.
New-AzResourceLock -LockName LockGroup -LockLevel CanNotDelete -ResourceGroupName exampleresourcegroup
Aby uzyskać informacje o blokadzie, użyj polecenia Get-AzResourceLock. Aby uzyskać wszystkie blokady w subskrypcji, użyj:
Get-AzResourceLock
Aby uzyskać wszystkie blokady zasobu, użyj:
Get-AzResourceLock -ResourceName examplesite -ResourceType Microsoft.Web/sites -ResourceGroupName exampleresourcegroup
Aby uzyskać wszystkie blokady dla grupy zasobów, użyj:
Get-AzResourceLock -ResourceGroupName exampleresourcegroup
Aby usunąć blokadę zasobu, użyj:
$lockId = (Get-AzResourceLock -ResourceGroupName exampleresourcegroup -ResourceName examplesite -ResourceType Microsoft.Web/sites).LockId
Remove-AzResourceLock -LockId $lockId
Aby usunąć blokadę dla grupy zasobów, użyj:
$lockId = (Get-AzResourceLock -ResourceGroupName exampleresourcegroup).LockId
Remove-AzResourceLock -LockId $lockId
Azure CLI (Interfejs wiersza polecenia Azure)
Aby zablokować wdrożone zasoby za pomocą interfejsu wiersza polecenia platformy az lock create Azure, użyj polecenia .
Aby zablokować zasób, podaj nazwę zasobu, typ zasobu i nazwę grupy zasobów.
az lock create --name LockSite --lock-type CanNotDelete --resource-group exampleresourcegroup --resource-name examplesite --resource-type Microsoft.Web/sites
Aby zablokować grupę zasobów, podaj nazwę grupy zasobów.
az lock create --name LockGroup --lock-type CanNotDelete --resource-group exampleresourcegroup
Aby uzyskać informacje o blokadzie, użyj polecenia az lock list. Aby uzyskać wszystkie blokady w subskrypcji, użyj:
az lock list
Aby uzyskać wszystkie blokady zasobu, użyj:
az lock list --resource-group exampleresourcegroup --resource-name examplesite --namespace Microsoft.Web --resource-type sites --parent ""
Aby uzyskać wszystkie blokady dla grupy zasobów, użyj:
az lock list --resource-group exampleresourcegroup
Aby usunąć blokadę zasobu, użyj:
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
Aby usunąć blokadę dla grupy zasobów, użyj:
lockid=$(az lock show --name LockSite --resource-group exampleresourcegroup --output tsv --query id)
az lock delete --ids $lockid
Python
Aby zablokować wdrożone zasoby przy użyciu języka Python, użyj ManagementLockClient.management_locks.create_or_update_at_resource_group_level polecenia .
Aby zablokować zasób, podaj nazwę zasobu, typ zasobu i nazwę grupy zasobów.
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"
}
)
Aby zablokować grupę zasobów, podaj nazwę grupy zasobów.
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"
}
)
Aby uzyskać informacje o wszystkich blokadach w subskrypcji, użyj polecenia ManagementLockClient.management_locks.get.
Aby uzyskać wszystkie blokady w subskrypcji, użyj:
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}")
Aby uzyskać blokadę zasobu, użyj:
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}")
Aby uzyskać blokadę dla grupy zasobów, użyj następującego kodu:
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}")
Aby usunąć blokadę zasobu, użyj:
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"
)
Aby usunąć blokadę dla grupy zasobów, użyj:
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")
interfejs API REST
Wdrożone zasoby można zablokować za pomocą interfejsu API REST dla blokad zarządzania. Interfejs API REST umożliwia tworzenie i usuwanie blokad oraz pobieranie informacji o istniejących blokadach.
Aby utworzyć blokadę, uruchom polecenie:
PUT https://management.azure.com/{scope}/providers/Microsoft.Authorization/locks/{lock-name}?api-version={api-version}
Zakres może być subskrypcją, grupą zasobów lub zasobem. Nazwa blokady może być dowolna, jaką wybierzesz. W przypadku wersji interfejsu API użyj 2016-09-01.
W żądaniu dołącz obiekt JSON określający właściwości blokady.
{
"properties": {
"level": "CanNotDelete",
"notes": "Optional text notes."
}
}
Następne kroki
- Aby dowiedzieć się, jak logicznie organizować zasoby, zobacz Organizowanie zasobów platformy Azure i hierarchii zarządzania przy użyciu tagów.
- Ograniczenia i konwencje można stosować w ramach subskrypcji przy użyciu dostosowanych zasad. Aby uzyskać więcej informacji, zobacz Co to jest usługa Azure Policy?
- Aby uzyskać wskazówki dotyczące sposobu używania witryny Azure Portal do zarządzania zasadami subskrypcji, zobacz Zarządzanie zasadami subskrypcji platformy Azure.