Beklenmeyen Değişiklikleri Önlemek İçin Azure Kaynaklarını Kilitleme
Bir yönetici olarak, kuruluşunuzdaki diğer kullanıcıların yanlışlıkla kritik kaynakları silmesini veya değiştirmesini önlemek için bir aboneliği, kaynak grubunu veya kaynağı kilitlemeniz gerekebilir. Kilit seviyesini CanNotDelete veya ReadOnly olarak ayarlayabilirsiniz. Portalda, kilitler sırasıyla Sil ve Salt okunur olarak adlandırılır.
- CanNotDelete, yetkili kullanıcıların bir kaynağı okuyup değiştirebileceği anlamına gelir, ancak kaynağı silemezler.
- ReadOnly, yetkili kullanıcıların bir kaynağı okuyabileceği anlamına gelir, ancak kaynağı silemez veya güncelleyemez. Bu kilidi uygulamak, tüm yetkili kullanıcıları Reader rolü tarafından verilen izinlere kısıtlamaya benzer.
Bir ana kapsamda bir kilit uygulandığında, bu kapsamdaki tüm kaynaklar aynı kilidi devralır. Eklediğiniz kaynaklar bile daha sonra kilidi ana öğeden devralır. Mirastaki en kısıtlayıcı kilit öncelik kazanır.
Rol tabanlı erişim denetiminin aksine, tüm kullanıcılar ve roller arasında bir kısıtlama uygulamak için yönetim kilitlerini kullanabilirsiniz. Kaynak Yöneticisi kilitleri, yalnızca yönetim düzleminde gerçekleşen ve https://management.azure.com adresine gönderilen işlemlerden oluşan işlemler için geçerlidir. Kilitler, kaynakların kendi işlevlerini nasıl yerine getirdiğini kısıtlamaz. Kaynak değişiklikleri kısıtlıdır, ancak kaynak işlemleri kısıtlanmamıştır. Örneğin, bir SQL veritabanındaki bir ReadOnly kilidi, veritabanını silmenizi veya değiştirmenizi önler, ancak veritabanındaki verileri oluşturmanızı, güncelleştirmenizi veya silmenizi engellemez. Veri işlemlerine izin verilir, çünkü bu işlemler https://management.azure.com adresine gönderilmez.
ReadOnly’yi uygulamak beklenmedik sonuçlara yol açabilir, çünkü okuma işlemleri gibi görünen bazı işlemler aslında ek eylemler gerektirir. Örneğin, bir depolama hesabına bir ReadOnly kilidi yerleştirmek, tüm kullanıcıların anahtarları listelemesini engeller. Liste tuşları işlemi, bir POST isteği ile işlenir, çünkü döndürülen tuşlar yazma işlemleri için kullanılabilir. Başka bir örnek için, bir Uygulama Hizmeti kaynağına bir ReadOnly kilidi yerleştirmek, Visual Studio Server Explorer’ın kaynak için dosyaları görüntülemesini engeller, çünkü bu etkileşim yazma erişimi gerektirir.
Yönetim kilitleri oluşturmak veya silmek için Microsoft.Authorization / * veya Microsoft.Authorization / lock / * eylemlerine erişebilmeniz gerekir. Yerleşik rollerden sadece Owner ve User Access Administrator bu eylemlere izin verilir.
- Kilitlemek istediğiniz kaynak, kaynak grubu veya abonelik için Ayarlar bölümünden, Lock’ı seçin.
- Bir kilit eklemek için Add butonuna basın. Ebeveyn düzeyinde bir kilit oluşturmak istiyorsanız, üst öğeyi seçin. Geçerli olarak seçili kaynak, ana öğeden kilidi devralır. Örneğin, kaynak grubunu tüm kaynaklarına bir kilit uygulamak için kilitleyebilirsiniz.
- Kilit için bir isim ve kilit seviyesi belirleyin. İsteğe bağlı olarak kilidi açıklayan notlar ekleyebilirsiniz.
Aşağıdaki örnek, bir uygulama hizmeti planı, bir web sitesi ve web sitesinde bir kilit oluşturan bir şablonu gösterir. Kilidin kaynak türü, kilitlenecek kaynağın kaynak türü ve / sağlayıcılar / kilitlerdir. Kilidin adı, kaynak ismini /Microsoft.Authorization/ ve kilidin adıyla birleştirerek oluşturulur.
{
“$schema”: “http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#”,
“contentVersion”: “1.0.0.0”,
“parameters”: {
“hostingPlanName”: {
“type”: “string”
}
},
“variables”: {
“siteName”: “[concat(‘ExampleSite’, uniqueString(resourceGroup().id))]”
},
“resources”: [
{
“apiVersion”: “2016-09-01”,
“type”: “Microsoft.Web/serverfarms”,
“name”: “[parameters(‘hostingPlanName’)]”,
“location”: “[resourceGroup().location]”,
“sku”: {
“tier”: “Free”,
“name”: “f1”,
“capacity”: 0
},
“properties”: {
“targetWorkerCount”: 1
}
},
{
“apiVersion”: “2016-08-01”,
“name”: “[variables(‘siteName’)]”,
“type”: “Microsoft.Web/sites”,
“location”: “[resourceGroup().location]”,
“dependsOn”: [
“[resourceId(‘Microsoft.Web/serverfarms’, parameters(‘hostingPlanName’))]”
],
“properties”: {
“serverFarmId”: “[parameters(‘hostingPlanName’)]”
}
},
{
“type”: “Microsoft.Web/sites/providers/locks”,
“apiVersion”: “2016-09-01”,
“name”: “[concat(variables(‘siteName’), ‘/Microsoft.Authorization/siteLock’)]”,
“dependsOn”: [
“[resourceId(‘Microsoft.Web/sites’, variables(‘siteName’))]”
],
“properties”: {
“level”: “CanNotDelete”,
“notes”: “Site should not be deleted.”
}
}
]
}
Bu örnek şablonu PowerShell ile dağıtmak için aşağıdaki kodu kullanabilirsiniz:
New-AzureRmResourceGroup -Name sitegroup -Location southcentralus
New-AzureRmResourceGroupDeployment -ResourceGroupName sitegroup -TemplateUri https://raw.githubusercontent.com/Azure/azure-docs-json-samples/master/azure-resource-manager/lock.json -hostingPlanName plan0103