Aracılığıyla paylaş


Altyapınızı korumak için kaynaklarınızı kilitleyin

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. Devralmadaki 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. Bir depolama blobu için 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}"

Bu, kilitli kaynağın kaynak kimliğinin kapsamıyla eşleşir:

/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. Hiçbir zaman kısmi silme işleminiz olmaz.

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. 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, SQL Veritabanı bir mantıksal sunucuda ReadOnly kilidi, 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ştirmiyor gibi görünen bazı işlemler engellenen eylemler gerektirir. Kilitler POST yönteminin Azure Resource Manager (ARM) 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 silinmesini veya değiştirilmesini engellemez. 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ı - Sil'i 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.

  • Ağ güvenlik grubundaki (NSG) salt okunur kilit, ilgili NSG akış günlüğünün oluşturulmasını engeller. Ağ güvenlik grubundaki (NSG) kilit silinemez, 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ğın başka bir kaynak grubuna taşınabileceğini unutmayın.

  • 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, Azure 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 grubundaki bir kilit silinemiyor, yedeklemelerin başarısız olmasına neden oluyor. 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ı depolayamıyor.

  • 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 bazı kaynak bağlantılarının düzgün bir şekilde kaldırılmasını engeller. VM'yi daha sonra yeniden korumayı planlıyorsanız, korumayı devre dışı bırakmadan önce kilidi kaldırmanız gerekir. Kilidi kaldırmazsanız, VM'yi koruyabilmeniz için önce eski bağlantıları temizlemek için bazı adımları izlemeniz gerekir. Daha fazla bilgi için bkz . Azure VM çoğaltma sorunlarını giderme.

  • Postgresql için, kilitler ağ ve DNS işlemlerini etkileyebilmiş olabileceğinden sanal ağda sanal ağ veya alt ağ düzeyinde ayarlanmış herhangi bir kaynak kilidi 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

Azure Databricks gibi bazı Azure hizmetleri, hizmeti uygulamak için yönetilen uygulamaları kullanı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

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 ARM şablonu veya Bicep dosyası kullanırken, dağıtım kapsamının ve kilit kapsamının birlikte nasıl çalıştığını anlamak iyi olur. Dağıtım kapsamında bir kaynak grubunu veya aboneliği kilitleme gibi bir kilit uygulamak için kapsam özelliğini ayarlamadan bırakın. Bir kaynağı kilitlerken, dağıtım kapsamında kilit üzerindeki 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 abonelik düzeyinde aşağıdaki şablonu 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ı New-AzResourceLock komutunu kullanarak Azure PowerShell ile kilitlersiniz.

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 grubunun 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

Azure CLI ile dağıtılan kaynakları az lock create komutunu kullanarak kilitlersiniz.

Bir kaynağı kilitlemek için kaynağın 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 grubunun 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 için ManagementLockClient.management_locks.create_or_update_at_resource_group_level komutunu kullanırsınız.

Bir kaynağı kilitlemek için kaynağın 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 ş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_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

  • Kaynaklarınızı mantıksal olarak düzenleme hakkında bilgi edinmek için bkz . Kaynaklarınızı düzenlemek için etiketleri kullanma.
  • Özelleştirilmiş ilkelerle aboneliğiniz genelinde kısıtlamalar ve kurallar uygulayabilirsiniz. Daha fazla bilgi için bkz. Azure İlkesi nedir?.
  • Kuruluşların abonelikleri etkili bir şekilde yönetmek için Resource Manager'ı nasıl kullanabileceği hakkında yönergeler için bkz. Azure kurumsal iskelesi: öngörücü abonelik idaresi.