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.
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
- Yeni kaynakları koruma öğreticisini izleyin.
- Şema yaşam döngüsü hakkında bilgi edinin.
- Statik ve dinamik parametrelerin kullanımını anlayın.
- Şema sıralama düzenini özelleştirmeyi öğrenin.
- Mevcut atamaları güncelleştirmeyi öğrenin.
- Genel sorun giderme adımlarıyla şema atama sorunlarını giderin.