Azure Blueprints'te kaynak kilitlemeyi anlama

Önemli

11 Temmuz 2026'da Blueprints (Önizleme) kullanım dışı bırakılacaktır. Mevcut şema tanımlarınızı ve atamalarınızı Şablon Özellikleri ve Dağıtım Yığınları'na geçirin. Şema yapıtları ARM JSON şablonlarına veya dağıtım yığınlarını tanımlamak için kullanılan Bicep dosyalarına dönüştürülecek. Bir yapıtı ARM kaynağı olarak yazmayı öğrenmek için bkz:

Tutarlı ortamların büyük ölçekte oluşturulması yalnızca bu tutarlılığı korumak için bir mekanizma varsa gerçekten değerlidir. Bu makalede Azure Blueprints'te kaynak kilitlemenin nasıl çalıştığı açıklanmaktadır. Kaynak kilitleme ve reddetme atamalarının uygulanmasına ilişkin bir örnek görmek için yeni kaynakları koruma öğreticisine bakın.

Dekont

Azure Blueprints tarafından dağıtılan kaynak kilitleri yalnızca şema ataması tarafından dağıtılan uzantı dışı kaynaklara uygulanır. Zaten var olan kaynak gruplarındakiler gibi mevcut kaynaklara kilit eklenmez.

Modları ve durumları kilitleme

Kilitleme Modu şema ataması için geçerlidir ve üç seçeneği vardır: Kilitleme, Salt Okunur veya Silme. Kilitleme modu, şema ataması sırasında yapıt dağıtımı sırasında yapılandırılır. Şema ataması güncelleştirilerek farklı bir kilitleme modu ayarlanabilir. Ancak kilitleme modları Azure Blueprints dışında değiştirilemez.

Şema atamasında yapıtlar tarafından oluşturulan kaynakların dört durumu vardır: Kilitli Değil, Salt Okunur, Düzenlenemiyor/Silinemiyor veya Silinemiyor. Her yapıt türü Kilitli Değil durumunda olabilir. Aşağıdaki tablo bir kaynağın durumunu belirlemek için kullanılabilir:

Mod Yapıt Kaynak Türü Durum Açıklama
Kilitleme * Kilitli Değil Kaynaklar Azure Blueprints tarafından korunmaz. Bu durum, şema ataması dışından Salt Okunur veya Silme kaynak grubu yapıtına eklenen kaynaklar için de kullanılır.
Salt Okunur Kaynak grubu Düzenlenemiyor/Silinemiyor Kaynak grubu salt okunurdur ve etiketler dışındaki tüm özellikleri değiştirilemez. Kilitli olmayan kaynaklar bu kaynak grubundan eklenebilir, taşınabilir, değiştirilebilir veya silinemez.
Salt Okunur Kaynak dışı grup Salt Okunur Etiketler dışında kaynak değiştirilemez ve silinemez veya değiştirilemez.
Silme * Silinemiyor Kaynaklar değiştirilebilir, ancak silinemez. Kilitli olmayan kaynaklar bu kaynak grubundan eklenebilir, taşınabilir, değiştirilebilir veya silinemez.

Kilitleme durumlarını geçersiz kılma

Genellikle abonelikte uygun Azure rol tabanlı erişim denetimine (Azure RBAC) sahip birinin (örneğin, 'Sahip' rolü) herhangi bir kaynağı değiştirmesine veya silmesine izin verilebilir. Azure Blueprints dağıtılan atamanın bir parçası olarak kilitleme uyguladığında bu erişim söz konusu değildir. Atama Salt Okunur veya Silme seçeneğiyle ayarlandıysa, abonelik sahibi bile korumalı kaynakta engellenen eylemi gerçekleştiremez.

Bu güvenlik önlemi, tanımlanan şemanın tutarlılığını ve yanlışlıkla veya programlı silme veya değiştirme işleminden oluşturmak üzere tasarlandığı ortamı korur.

Yönetim grubunda atama

Abonelik sahiplerinin şema atamasını kaldırmasını önlemenin tek seçeneği şemayı bir yönetim grubuna atamaktır. Bu senaryoda, şema atamasını kaldırmak için gereken izinlere yalnızca yönetim grubunun sahipleri sahip olur.

Şemayı abonelik yerine bir yönetim grubuna atamak için REST API çağrısı şöyle görünür:

PUT https://management.azure.com/providers/Microsoft.Management/managementGroups/{assignmentMG}/providers/Microsoft.Blueprint/blueprintAssignments/{assignmentName}?api-version=2018-11-01-preview

tarafından {assignmentMG} tanımlanan yönetim grubu, yönetim grubu hiyerarşisinde veya şema tanımının kaydedildiği aynı yönetim grubu olmalıdır.

Şema atamasının istek gövdesi şöyle görünür:

{
    "identity": {
        "type": "SystemAssigned"
    },
    "location": "eastus",
    "properties": {
        "description": "enforce pre-defined simpleBlueprint to this XXXXXXXX subscription.",
        "blueprintId": "/providers/Microsoft.Management/managementGroups/{blueprintMG}/providers/Microsoft.Blueprint/blueprints/simpleBlueprint",
        "scope": "/subscriptions/{targetSubscriptionId}",
        "parameters": {
            "storageAccountType": {
                "value": "Standard_LRS"
            },
            "costCenter": {
                "value": "Contoso/Online/Shopping/Production"
            },
            "owners": {
                "value": [
                    "johnDoe@contoso.com",
                    "johnsteam@contoso.com"
                ]
            }
        },
        "resourceGroups": {
            "storageRG": {
                "name": "defaultRG",
                "location": "eastus"
            }
        }
    }
}

Bu istek gövdesindeki ve aboneliğe atanan temel fark özelliğidir properties.scope . Bu gerekli özellik şema atamasının uygulandığı aboneliğe ayarlanmalıdır. Abonelik, şema atamasının depolandığı yönetim grubu hiyerarşisinin doğrudan alt öğesi olmalıdır.

Dekont

Yönetim grubu kapsamına atanmış bir şema, abonelik düzeyi şema ataması olarak çalışmaya devam eder. Tek fark, abonelik sahiplerinin atamayı ve ilişkili kilitleri kaldırmasını önlemek için şema atamasının depolandığı yerdir.

Kilitleme durumları kaldırılıyor

Atamayla korunan bir kaynağın değiştirilmesi veya silinmesi gerekli hale gelirse, bunu yapmanın iki yolu vardır.

  • Şema atamasını Kilitleme'nin kilitleme moduna güncelleştirme
  • Şema atamasını silme

Atama kaldırıldığında Azure Blueprints tarafından oluşturulan kilitler kaldırılır. Ancak, kaynak geride bırakılır ve normal yollarla silinmesi gerekir.

Şema kilitleri nasıl çalışır?

Atama Salt Okunur veya Silme seçeneğini belirlediyse, şema ataması sırasında yapıt kaynaklarına Azure RBAC reddetme atamaları reddetme eylemi uygulanır. Reddetme eylemi şema atamasının yönetilen kimliği tarafından eklenir ve yapıt kaynaklarından yalnızca aynı yönetilen kimlik tarafından kaldırılabilir. Bu güvenlik önlemi kilitleme mekanizmasını zorlar ve şema kilidinin Azure Blueprints dışında kaldırılmasını önler.

Screenshot of the Access control (I A M) page and the Deny assignments tab for a resource group.

Her modun reddetme atama özellikleri aşağıdaki gibidir:

Mod Permissions.Actions Permissions.NotActions Sorumlular[i]. Türü ExcludePrincipals[i]. Kimliği DoNotApplyToChildScopes
Salt Okunur * */Okuma
Microsoft.Authorization/locks/delete
Microsoft.Network/virtualNetwork/subnets/join/action
SystemDefined (Herkes) excludedPrincipals içinde şema ataması ve kullanıcı tanımlı Kaynak grubu - true; Kaynak - false
Silme */Silmek Microsoft.Authorization/locks/delete
Microsoft.Network/virtualNetwork/subnets/join/action
SystemDefined (Herkes) excludedPrincipals içinde şema ataması ve kullanıcı tanımlı Kaynak grubu - true; Kaynak - false

Önemli

Azure Resource Manager rol atama ayrıntılarını 30 dakikaya kadar önbelleğe alır. Sonuç olarak, şema kaynaklarında atamaları reddetme eylemi hemen tam olarak etkin olmayabilir. Bu süre boyunca, şema kilitleri tarafından korunması amaçlanan bir kaynağı silmek mümkün olabilir.

Bir sorumlusu reddetme atamasından dışlama

Bazı tasarım veya güvenlik senaryolarında, şema atamasının oluşturduğu reddetme atamasının bir sorumlusunun dışlanması gerekebilir. Bu adım, atama oluşturulurken locks özelliğindeki excludedPrincipals dizisine beş adede kadar değer eklenerek REST API'de gerçekleştirilir. Aşağıdaki atama tanımı, excludedPrincipals içeren bir istek gövdesi örneğidir:

{
  "identity": {
    "type": "SystemAssigned"
  },
  "location": "eastus",
  "properties": {
    "description": "enforce pre-defined simpleBlueprint to this XXXXXXXX subscription.",
    "blueprintId": "/providers/Microsoft.Management/managementGroups/{mgId}/providers/Microsoft.Blueprint/blueprints/simpleBlueprint",
    "locks": {
        "mode": "AllResourcesDoNotDelete",
        "excludedPrincipals": [
            "7be2f100-3af5-4c15-bcb7-27ee43784a1f",
            "38833b56-194d-420b-90ce-cff578296714"
        ]
    },
    "parameters": {
      "storageAccountType": {
        "value": "Standard_LRS"
      },
      "costCenter": {
        "value": "Contoso/Online/Shopping/Production"
      },
      "owners": {
        "value": [
          "johnDoe@contoso.com",
          "johnsteam@contoso.com"
        ]
      }
    },
    "resourceGroups": {
      "storageRG": {
        "name": "defaultRG",
        "location": "eastus"
      }
    }
  }
}

Bir eylemi reddetme atamasından dışlama

Şema atamasında reddetme atamasında sorumlu dışlamaya benzer şekilde, belirli Azure kaynak sağlayıcısı işlemlerini dışlayabilirsiniz. properties.locks bloğunun içinde excludedPrincipals ile aynı yerde excludedActions eklenebilir:

"locks": {
    "mode": "AllResourcesDoNotDelete",
    "excludedPrincipals": [
        "7be2f100-3af5-4c15-bcb7-27ee43784a1f",
        "38833b56-194d-420b-90ce-cff578296714"
    ],
    "excludedActions": [
        "Microsoft.ContainerRegistry/registries/push/write",
        "Microsoft.Authorization/*/read"
    ]
},

excludedPrincipals açık olmalıdır, ancak excludedActions girdileri kaynak sağlayıcısı işlemlerinin joker karakter eşleştirmesi için kullanabilir*.

Sonraki adımlar