Azure şemaları 'nda kaynak kilitlemeyi anlama
Ölçekteki tutarlı ortamların oluşturulması, bu tutarlılığı sürdürmek için bir mekanizma varsa gerçek anlamda değerlidir. Bu makalede, Azure şemaları 'nda kaynak kilitleme 'nin nasıl çalıştığı açıklanmaktadır. Kaynak kilitleme ve reddetme atamalarından oluşan bir örnek görmek için bkz. yeni kaynakları koruma öğreticisi.
Not
Azure şemaları tarafından dağıtılan kaynak kilitleri yalnızca şema atama tarafından dağıtılan uzantı olmayan kaynaklara uygulanır. Zaten var olan kaynak gruplarında olanlar gibi mevcut kaynaklar bunlara kilit eklenmez.
Kilitleme modları ve durumlar
Kilitleme modu, şema ataması için geçerlidir ve üç seçeneğe sahiptir: kilitleme, salt okuma veya silme. Kilitleme modu, bir ş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 şemaları 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 okunurdur, düzenleme/silme yapılamaz veya silinemez. Her yapıt türü kilitli değil durumunda olabilir. Aşağıdaki tablo bir kaynağın durumunu belirlemede kullanılabilir:
| Mod | Yapıt kaynak türü | Durum | Açıklama |
|---|---|---|---|
| Kilitleme | * | Kilitlenmedi | Kaynaklar Azure şemaları tarafından korunmuyor. Bu durum, bir salt okunurdur veya bir şema atamasının dışında kaynak grubu yapıtı silme ' ya eklenen kaynaklar için de kullanılır. |
| Salt Okunur | Kaynak grubu | Düzenleme/silme yapılamıyor | Kaynak grubu salt okunurdur ve kaynak grubundaki Etiketler değiştirilemez. Kilitli kaynaklar bu kaynak grubundan eklenebilir, taşınabilir, değiştirilebilir veya silinebilir. |
| Salt Okunur | Kaynak olmayan Grup | Salt Okunur | Kaynak hiçbir şekilde değiştirilemez. Değişiklik yok ve silinemez. |
| Silme | * | Silinemiyor | Kaynaklar değiştirilebilir, ancak silinemez. Kilitli kaynaklar bu kaynak grubundan eklenebilir, taşınabilir, değiştirilebilir veya silinebilir. |
Kilitleme durumlarını geçersiz kılma
Genellikle abonelikte, ' sahip ' rolü gibi uygun Azure rol tabanlı erişim denetimi (Azure RBAC) ile herhangi bir kaynağı değiştirme veya silme izni verilmesi olasıdır. Bu erişim, Azure şemaları, dağıtılan bir atamanın parçası olarak kilitlemeyi uygularken durum değildir. Atama salt okuma veya silme seçeneği ile ayarlandıysa, abonelik sahibi korumalı kaynak üzerinde engellenmiş eylemi gerçekleştirebilir.
Bu güvenlik ölçüsü, tanımlanan şema 'in ve yanlışlıkla ya da programlı silme veya değiştirme işleminden oluşturmakta tasarlanan ortamın tutarlılığını korur.
Yönetim grubuna ata
Abonelik sahiplerinin bir şema atamasını kaldırmasını engelleyen tek seçenek, şema 'i bir yönetim grubuna atacaktır. Bu senaryoda, BLUEPRINT atamasını kaldırmak için gerekli izinlere sahip yalnızca yönetim grubunun sahipleri vardır.
Şemayı bir abonelik yerine bir yönetim grubuna atamak için, REST API çağrısı şuna benzer şekilde değişir:
PUT https://management.azure.com/providers/Microsoft.Management/managementGroups/{assignmentMG}/providers/Microsoft.Blueprint/blueprintAssignments/{assignmentName}?api-version=2018-11-01-preview
Tarafından tanımlanan yönetim grubu, {assignmentMG} Yönetim grubu hiyerarşisinde olmalıdır ya da şema tanımının kaydedildiği yönetim grubu aynı 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övdesinde ve bir aboneliğe atanmakta olan anahtar farkı properties.scope özelliktir. 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 bir alt öğesi olmalıdır.
Not
Yönetim grubu kapsamına atanan bir şema, hala abonelik düzeyinde bir şema ataması olarak çalışır. Tek fark, abonelik sahiplerinin atamayı ve ilişkili kilitleri kaldırmasını engellemek için şema atamasının depolandığı yerdir.
Kilitleme durumları kaldırılıyor
Atama tarafından korunan bir kaynağı değiştirmek veya silmek için gerekli hale gelirse, bunu iki şekilde yapabilirsiniz.
- Şema atamasını kilitleme moduna yükseltme
- Şema atamasını silme
Atama kaldırıldığında, Azure şemaları tarafından oluşturulan kilitler kaldırılır. Ancak, kaynak arka planda bırakılır ve normal yollarla silinmelidir.
Şema kilitleri nasıl çalışır?
Atama salt okuma veya silme seçeneği belirlenmişse, bir şema atama sırasında yapıt kaynaklarına bir Azure RBAC reddetme ataması reddetme eylemi uygulanır. Reddetme eylemi, BLUEPRINT atamasının yönetilen kimliği tarafından eklenir ve yalnızca aynı yönetilen kimliğe göre yapıt kaynaklarından kaldırılabilir. Bu güvenlik ölçüsü, kilitleme mekanizmasını zorlar ve Azure şemaları dışında şema kilidinin kaldırılmasını engeller.
Her modun reddetme atama özellikleri aşağıdaki gibidir:
| Mod | İzinler. eylemler | Permissions. NotActions | Sorumlular [i]. Türüyle | Excludesorumlularını [i]. Numarasını | DoNotApplyToChildScopes |
|---|---|---|---|---|---|
| Salt Okunur | **** _ | _ * /Microsoft. Authorization/kilitleri oku/Sil/ Microsoft. Network/virtualNetwork/alt ağları/JOIN/Action* |
SystemDefined (herkes) | Excludedsorumlularını içinde şema atama ve Kullanıcı tanımlı | Kaynak grubu- true; Kaynak- yanlış |
| Silme | */Delete | Microsoft. Authorization/kilitleri/silme Microsoft. Network/virtualNetwork/alt ağlar/JOIN/Action |
SystemDefined (herkes) | Excludedsorumlularını içinde şema atama ve Kullanıcı tanımlı | Kaynak grubu- true; Kaynak- yanlış |
Önemli
Azure Resource Manager, rol atama ayrıntılarını 30 dakikaya kadar önbelleğe alır. Sonuç olarak, şemayı reddetme, şema kaynaklarını reddetme eylemini reddetme işlemleri hemen etkili olmayabilir. Bu süre boyunca, BLUEPRINT kilitleri tarafından korunması amaçlanan bir kaynağı silmek mümkün olabilir.
Bir sorumluyu reddetme atamasından dışlama
Bazı tasarım veya güvenlik senaryolarında, şema atamasının oluşturduğu reddetme atamasından bir sorumluyu dışlamak gerekebilir. Bu adım, atamayı oluştururken kilitler özelliğindeki excludedsorumlularını dizisine en fazla beş değer eklenerek REST API yapılır. Aşağıdaki atama tanımı, Excludedsorumlularını 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"
}
}
}
}
Reddetme atamasından bir eylemi hariç tutma
Bir şema atamasında bir reddetme atamasında sorumluyu dışlamama benzer şekilde, belirli Azure Kaynak sağlayıcısı işlemlerinidışarıda bırakabilirsiniz. Properties. kilitleri bloğunda, excludedsorumlularını aynı yerde, bir excludedadıctions eklenebilir:
"locks": {
"mode": "AllResourcesDoNotDelete",
"excludedPrincipals": [
"7be2f100-3af5-4c15-bcb7-27ee43784a1f",
"38833b56-194d-420b-90ce-cff578296714"
],
"excludedActions": [
"Microsoft.ContainerRegistry/registries/push/write",
"Microsoft.Authorization/*/read"
]
},
Excludedsorumlularını açık olmalıdır, excludedadctions girişleri, * kaynak sağlayıcısı işlemlerinin joker karakter eşleştirmesinin kullanımını kullanabilirler.
Sonraki adımlar
- Yeni kaynakları koru öğ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.