Aracılığıyla paylaş


Altyapınızı korumak için Azure kaynaklarınızı kilitleme

Yönetici olarak, bir Azure aboneliğini, kaynak grubunu veya kaynağı yanlışlıkla kullanıcı silme ve değişikliklerinden korumak için kilitleyebilirsiniz. Kilit, tüm kullanıcı izinlerini geçersiz kılar.

Silme veya değiştirme işlemlerini önlemek için kilitler ayarlayabilirsiniz. Portalda bu kilitlere Delete ve Read-only adı verilir. Komut satırında, bu kilitler CanNotDelete ve ReadOnly olarak adlandırılır.

  • CanNotDelete, yetkili kullanıcıların bir kaynağı okuyup değiştirebileceği ancak silemeyeceği anlamına gelir.
  • ReadOnly, yetkili kullanıcıların bir kaynağı okuyabileceği ancak silemeyeceği ve güncelleştiremeyeceği anlamına gelir. Bu kilidi uygulamak, tüm yetkili kullanıcıları Okuyucu rolünün sağladığı izinlerle kısıtlamaya benzer.

Rol tabanlı erişim denetiminin (RBAC) aksine, tüm kullanıcılara ve rollere kısıtlama uygulamak için yönetim kilitlerini kullanırsınız. Kullanıcılar ve roller için izinleri ayarlama hakkında bilgi edinmek için bkz . Azure RBAC.

Devralmayı kilitle

Bir üst kapsama kilit uyguladığınızda, bu kapsamdaki tüm kaynaklar aynı kilidi devralır. Daha sonra eklediğiniz kaynaklar bile aynı üst kilidi devralır. Devralma zincirindeki en kısıtlayıcı kilit önceliklidir.

Uzantı kaynakları , kilitleri uygulandıkları kaynaktan devralır. Örneğin, Microsoft.Insights/diagnosticSettings bir uzantı kaynak türüdür. Depolama blobuna tanılama ayarı uygular ve depolama hesabını kilitlerseniz, tanılama ayarını silemezsiniz. Tanılama ayarının tam kaynak kimliği şu olduğundan bu devralma mantıklıdır:

/subscriptions/{sub-id}/resourceGroups/{rg-name}/providers/Microsoft.Storage/storageAccounts/{storage-name}/blobServices/default/providers/microsoft.insights/diagnosticSettings/{setting-name}"

Kilitli kaynağın kaynak kimliği aşağıdaki biçimle eşleşmelidir:

/subscriptions/{sub-id}/resourceGroups/{rg-name}/providers/Microsoft.Storage/storageAccounts/{storage-name}

Bir kaynakta Delete kilidi varsa ve kaynak grubunu silmeye çalışırsanız, özellik silme işleminin tamamını engeller. Kaynak grubunun veya kaynak grubundaki diğer kaynakların kilidi açık olsa bile silme işlemi gerçekleşmez. Kısmi silme mümkün değildir.

Bir Azure aboneliğini iptal ettiğinizde:

  • Kaynak kilidi abonelik iptalini engellemez.
  • Azure, kaynaklarınızı hemen silmek yerine devre dışı bırakarak korur.
  • Azure, kaynaklarınızı yalnızca bir bekleme süresi sonunda kalıcı olarak siler.

Kilitlerin kapsamını anlama

Not

Kilitler yalnızca denetim düzlemi Azure işlemleri için geçerlidir, veri düzlemi işlemleri için geçerli değildir.

Azure denetim düzlemi işlemleri adresine https://management.azure.comgider. Azure veri düzlemi işlemleri gibi https://myaccount.blob.core.windows.net/hizmet örneğinize gider. Daha fazla bilgi için bkz . Azure denetim düzlemi ve veri düzlemi . Denetim düzlemi URL'sini kullanan işlemleri bulmak için bkz . Azure REST API.

Ayrım, bir kaynağı değişikliklerden korumayı kilitler, ancak bir kaynağın işlevlerini gerçekleştirme biçimini kısıtlamaz. Örneğin, bir SQL Veritabanı mantıksal sunucusundaki ReadOnly kilidi onu silme veya değişikliklerden korur. Sunucu veritabanında veri oluşturmanıza, güncelleştirmenize veya silmenize olanak tanır. Veri düzlemi işlemleri, veri işlemlerine izin verir. Bu istekler adresine https://management.azure.comgitmez.

Kilitlerinizi uygulamadan önce dikkat edilmesi gerekenler

Kilitlerin uygulanması beklenmeyen sonuçlara neden olabilir. Bir kaynağı değiştirmemiş gibi görünen bazı işlemler engellenen eylemler gerektirir. Kilitler POST yönteminin Azure Resource Manager API'sine veri göndermesini engeller. Engellenen işlemlerin bazı yaygın örnekleri şunlardır:

  • Depolama hesabındaki salt okunur kilit, kullanıcıların hesap anahtarlarını listelemesini engeller. POST isteği, hesap anahtarlarına erişimi korumak için Azure Depolama Listesi Anahtarları işlemini işler. Hesap anahtarları, depolama hesabındaki verilere tam erişim sağlar. Depolama hesabı için salt okunur kilit yapılandırıldığında, hesap anahtarları olmayan kullanıcıların blob veya kuyruk verilerine erişmek için Microsoft Entra kimlik bilgilerini kullanması gerekir. Salt okunur kilit, kapsamı depolama hesabına veya bir veri kapsayıcısına (blob kapsayıcısı veya kuyruk) belirlenmiş Azure RBAC rollerinin atanmasını da engeller.

  • Depolama hesabındaki salt okunur kilit, depolama hesabı veya veri kapsayıcısı (blob kapsayıcısı veya kuyruk) için kapsamı belirlenmiş RBAC atamalarını korur.

  • Depolama hesabındaki salt okunur kilit, blob kapsayıcısının oluşturulmasını engeller.

  • Depolama hesabındaki salt okunur kilit, blob kapsayıcısının oluşturulmasını engeller. Ancak, depolama hesabında oluşturma işlemleri hem denetim düzlemi hem de veri düzlemi aracılığıyla yapılabilir. Salt okunur kilitler yalnızca engelleme denetim düzlemi oluşturma isteklerini kilitler, ancak kullanıcı veri düzlemi aracılığıyla kaynak üzerinde geçerli bir oluşturma işlemi gerçekleştirmeye devam edebilir.

  • Depolama hesabındaki salt okunur veya silinemeyen kilit, verilerinin silinmesine veya değiştirilmesine karşı korunmaz. Ayrıca blob, kuyruk, tablo veya dosyadaki verileri korumaz.

  • Depolama Hesabı API'si veri düzlemi ve denetim düzlemi işlemlerini kullanıma sunar. bir istek veri düzlemi işlemlerini kullanıyorsa, depolama hesabındaki kilit bu depolama hesabındaki blob, kuyruk, tablo veya dosya verilerini korumaz. Ancak istek denetim düzlemi işlemlerini kullanıyorsa kilit bu kaynakları korur.

    Örneğin, bir istek bir denetim düzlemi işlemi olan Dosya Paylaşımları - Silme'yi kullanıyorsa silme işlemi başarısız olur. İstek bir veri düzlemi işlemi olan Paylaşımı Sil'i kullanıyorsa silme işlemi başarılı olur. Bir kontrol düzlemi işlemi kullanmanızı öneririz.

  • güvenlik grubundaki (NSG) salt okunur kilit, ilgili NSG akış günlüğünün oluşturulmasını engeller. NSG'de kilit silinemiyor, ilgili NSG akış günlüğünün oluşturulmasını veya değiştirilmesini engellemez.

  • App Service kaynağındaki salt okunur kilit, etkileşim yazma erişimi gerektirdiğinden Visual Studio Server Explorer'ın kaynak dosyalarını görüntülemesini engeller.

  • App Service planı içeren bir kaynak grubundaki salt okunur kilit, planın ölçeğini artırmanızı veya genişletmenizi engeller.

  • Sanal makine içeren bir kaynak grubundaki salt okunur kilit, tüm kullanıcıların bir sanal makineyi başlatmasını veya yeniden başlatmasını engeller. Bu işlemler bir POST yöntemi isteği gerektirir.

  • Kaynak grubundaki salt okunur kilit, mevcut kaynakları kaynak grubuna veya kaynak grubundan dışarı taşımanızı engeller. Ancak, salt okunur kilidi olan bir kaynağı başka bir kaynak grubuna taşıyabilirsiniz.

  • Otomasyon hesabı içeren bir kaynak grubundaki salt okunur kilit, tüm runbook'ların başlatılmasını engeller. Bu işlemler bir POST yöntemi isteği gerektirir.

  • Kaynak veya kaynak grubundaki bir kilit silinemiyor, Azure RBAC atamalarının silinmesini engeller.

  • Kaynak grubundaki bir kilit silinemiyor, Resource Manager'ın geçmişteki dağıtımları otomatik olarak silmesini engeller. Geçmişte 800 dağıtıma ulaşırsanız dağıtımlarınız başarısız olur.

  • Azure Backup Hizmeti tarafından oluşturulan kaynak grubunda silinemiyor kilidi olduğunda yedeklemeler başarısız olur. Hizmet en fazla 18 geri yükleme noktası destekler. Kilitlendiğinde, yedekleme hizmeti geri yükleme noktalarını temizleyemez. Daha fazla bilgi için bkz . Sık sorulan sorular-Azure VM'lerini yedekleme.

  • Azure Machine Learning çalışma alanlarını içeren bir kaynak grubundaki kilit silinemiyor, Azure Machine Learning işlem kümelerinin otomatik ölçeklendirmesinin düzgün çalışmasını engeller. Kilitle, otomatik ölçeklendirme kullanılmayan düğümleri kaldıramaz. Çözümünüz iş yükü için gerekenden daha fazla kaynak kullanıyor.

  • Log Analytics çalışma alanındaki salt okunur kilit, Kullanıcı ve Varlık Davranış Analizi'nin (UEBA) etkinleştirilmesini engeller.

  • Log Analytics çalışma alanında kilit silinemez, veri temizleme işlemlerini engellemez. Bunun yerine, kullanıcıdan Veri Temizleme rolünü kaldırın.

  • Abonelikte salt okunur kilit, Azure Danışmanı'nın düzgün çalışmasını engeller. Danışman, sorgularının sonuçlarını depolayamaz.

  • Application Gateway'de salt okunur kilit , uygulama ağ geçidinin arka uç durumunu almanızı engeller. Bu işlem, salt okunur kilit blokları olan bir POST yöntemi kullanır.

  • Azure Kubernetes Service (AKS) kümesindeki salt okunur kilit, portal üzerinden küme kaynaklarına nasıl erişebileceğinizi sınırlar. Salt okunur kilit, bir küme kaynağı seçmek için Azure portalındaki AKS kümesinin Kubernetes kaynakları bölümünü kullanmanızı engeller. Bu işlemler için kimlik doğrulaması için post yöntemi isteği gerekir.

  • Site Recovery tarafından korunan bir Sanal Makinedeki kilit silinemiyor, korumayı kaldırdığınızda veya çoğaltmayı devre dışı bırakdığınızda Site Recovery ile ilgili belirli kaynak bağlantılarını kaldırmanızı engeller. Daha sonra sanal makineyi yeniden korumayı planlıyorsanız, korumayı devre dışı bırakmadan önce kilidi kaldırın. Kilidi kaldırmazsanız, sanal makineyi koruyabilmeniz için önce eski bağlantıları temizlemek için bazı adımları izlemeniz gerekir. Daha fazla bilgi için bkz . Azure'den Azure'a VM çoğaltma hatalarını giderme.

  • PostgreSQL için, kilitler ağ ve Etki Alanı Adı Sistemi işlemlerini etkileyebileceğinden, sanal ağda sanal ağ veya alt ağ düzeyinde ayarlanmış kaynak kilitleri olmamalıdır. Sunucuyu bir sanal ağda oluşturmadan önce, sanal ağınızdan ve tüm alt ağlardan silme veya salt okunur kilitleri kaldırdığınızdan emin olun. Sunucu oluşturulduktan sonra kilitleri yeniden kullanabilirsiniz.

Kilitleri kim oluşturabilir veya silebilir?

Yönetim kilitleri oluşturmak veya silmek için Microsoft.Authorization/* veya Microsoft.Authorization/locks/* eylemlerine erişim sahibi olmanız gerekir. Sahip ve Kullanıcı Erişim Yöneticisi rollerine atanan kullanıcılar gerekli erişime sahiptir. Bazı özelleştirilmiş yerleşik roller de bu erişimi verir. Gerekli izinlere sahip özel bir rol oluşturabilirsiniz.

Yönetilen uygulamalar ve kilitler

Bazı Azure hizmetleri, hizmeti uygulamak için yönetilen uygulamaları kullanır; Azure Databricks bir örnekte yer alır. Bu durumda hizmet iki kaynak grubu oluşturur. Bunlardan biri, hizmete genel bakış içeren kilitli olmayan bir kaynak grubudur. Diğeri, hizmet altyapısını içeren kilitli bir kaynak grubudur.

Altyapı kaynak grubunu silmeye çalışırsanız, kaynak grubunun kilitlendiğini belirten bir hata alırsınız. Altyapı kaynak grubunun kilidini silmeye çalışırsanız, sistem uygulaması sahip olduğundan kilidin silinemediğini belirten bir hata alırsınız.

Bunun yerine, altyapı kaynak grubunu da silen hizmeti silin.

Yönetilen uygulamalar için dağıtmış olduğunuz hizmeti seçin.

Azure Databricks örneğinin seçili olduğu Azure portalının ekran görüntüsü.

Hizmetin Yönetilen Kaynak Grubu için bir bağlantı içerdiğine dikkat edin. Bu kaynak grubu altyapıyı barındırıyor ve kilitli. Yalnızca dolaylı olarak silebilirsiniz.

Azure portalında Yönetilen Kaynak Grubu bağlantısını gösteren ekran görüntüsü.

Kilitli altyapı kaynak grubu da dahil olmak üzere hizmetin her şeyini silmek için hizmet için Sil'i seçin.

Seçili hizmet için Sil seçeneğini içeren Azure portalının ekran görüntüsü.

Kilitleri yapılandırma

Azure portal

Sol gezinti panelinde abonelik kilidi özelliğinin adı Kaynak kilitleri, kaynak grubu kilit özelliğinin adı ise Kilitler'dir.

  1. Kilitlemek istediğiniz kaynağın, kaynak grubunun veya aboneliğin Ayarlar dikey penceresinde Kilitler'i seçin.

    Kilit'i seçin.

    Not

    Yönetim gruplarına kilit ekleyemezsiniz.

  2. Kilit eklemek için Ekle'yi seçin. Üst düzeyde kilit oluşturmak istiyorsanız üst öğeyi seçin. Seçili durumdaki kaynak, kilidi üst öğeden devralır. Örneğin, tüm kaynaklarına kilit uygulamak için kaynak grubunu kilitleyebilirsiniz.

    Kilit ekleyin.

  3. Kilide bir ad ve kilit düzeyi verin. İsteğe bağlı olarak kilidi açıklayan notlar ekleyebilirsiniz.

    Kilidi ayarlayın.

  4. Kilidi silmek için Sil düğmesini seçin.

    Kilidi silin.

Template

Bir kilidi dağıtmak için Resource Manager şablonu (ARM şablonu) veya Bicep dosyası kullandığınızda, dağıtım kapsamının ve kilit kapsamının birlikte nasıl çalıştığını anlamanız gerekir. Bir kaynak grubunu veya aboneliği kilitlerken olduğu gibi dağıtım kapsamında kilit uygulamak için kapsam özelliğini ayarlamayın. Dağıtım kapsamındaki bir kaynağı kilitlerken, kilitte kapsam özelliğini ayarlayın.

Aşağıdaki şablon kaynak grubuna bir kilit uygular. Kilit kapsamı dağıtım kapsamıyla eşleştiğinden kilit kaynağında kapsam özelliği olmadığına dikkat edin. Bu şablonu kaynak grubu düzeyinde dağıtın.

{
  "$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."
      }
    }
  ]
}

Bir kaynak grubu oluşturmak ve grubu kilitlemek için önceki şablonu abonelik düzeyinde dağıtın.

{
  "$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": {}
}

Kaynak grubu içindeki bir kaynağa kilit uygularken kapsam özelliğini ekleyin. Kapsamı, kilitlenecek kaynağın adı olarak ayarlayın.

Aşağıdaki örnekte app service planı, web sitesi ve web sitesinde kilit oluşturan bir şablon gösterilmektedir. Kilidin kapsamı web sitesine ayarlanır.

{
  "$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

Dağıtılan kaynakları komutuyla kilitlemek için Azure PowerShell'i New-AzResourceLock kullanın.

Bir kaynağı kilitlemek için kaynağın adını, kaynak türünü ve kaynak grubu adını belirtin.

New-AzResourceLock -LockLevel CanNotDelete -LockName LockSite -ResourceName examplesite -ResourceType Microsoft.Web/sites -ResourceGroupName exampleresourcegroup

Bir kaynak grubunu kilitlemek için kaynak grubu adını belirtin.

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

Kilit hakkında bilgi almak için Get-AzResourceLock kullanın. Aboneliğinizdeki tüm kilitleri almak için şunu kullanın:

Get-AzResourceLock

Bir kaynağın tüm kilitlerini almak için şunu kullanın:

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

Bir kaynak grubunun tüm kilitlerini almak için şunu kullanın:

Get-AzResourceLock -ResourceGroupName exampleresourcegroup

Bir kaynağın kilidini silmek için şunu kullanın:

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

Kaynak grubunun kilidini silmek için şunu kullanın:

$lockId = (Get-AzResourceLock -ResourceGroupName exampleresourcegroup).LockId
Remove-AzResourceLock -LockId $lockId

Azure CLI

Dağıtılan kaynakları Azure CLI ile kilitlemek az lock create için komutunu kullanın.

Bir kaynağı kilitlemek için kaynak adını, kaynak türünü ve kaynak grubu adını belirtin.

az lock create --name LockSite --lock-type CanNotDelete --resource-group exampleresourcegroup --resource-name examplesite --resource-type Microsoft.Web/sites

Bir kaynak grubunu kilitlemek için kaynak grubu adını belirtin.

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

Kilit hakkında bilgi almak için az lock list komutunu kullanın. Aboneliğinizdeki tüm kilitleri almak için şunu kullanın:

az lock list

Bir kaynağın tüm kilitlerini almak için şunu kullanın:

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

Bir kaynak grubunun tüm kilitlerini almak için şunu kullanın:

az lock list --resource-group exampleresourcegroup

Bir kaynağın kilidini silmek için şunu kullanın:

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

Kaynak grubunun kilidini silmek için şunu kullanın:

lockid=$(az lock show --name LockSite --resource-group exampleresourcegroup  --output tsv --query id)
az lock delete --ids $lockid

Python

Dağıtılan kaynakları Python ile kilitlemek ManagementLockClient.management_locks.create_or_update_at_resource_group_level için komutunu kullanın.

Bir kaynağı kilitlemek için kaynak adını, kaynak türünü ve kaynak grubu adını belirtin.

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"
    }
)

Bir kaynak grubunu kilitlemek için kaynak grubunun adını belirtin.

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"
    }
)

Aboneliğinizdeki tüm kilitler hakkında bilgi almak için ManagementLockClient.management_locks.get kullanın.

Aboneliğinizdeki tüm kilitleri almak için şunu kullanın:

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}")

Bir kaynağın kilidini almak için şunu kullanın:

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}")

Kaynak grubunun kilidini almak için aşağıdaki kodu kullanın:

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}")

Bir kaynağın kilidini silmek için şunu kullanın:

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"
)

Kaynak grubunun kilidini silmek için şunu kullanın:

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

Dağıtılan kaynakları yönetim kilitleri için REST API ile kilitleyebilirsiniz. REST API, kilit oluşturup silmenize ve mevcut kilitlerle ilgili bilgileri almanıza olanak tanır.

Kilit oluşturmak için şunu çalıştırın:

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

Kapsam bir abonelik, kaynak grubu veya kaynak olabilir. Kilit adı, istediğiniz ad olabilir. API sürümü için 2016-09-01 kullanın.

İstekte kilit özelliklerini belirten bir JSON nesnesi ekleyin.

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

Sonraki adımlar