Özel Azure rolleri
Azure yerleşik rolleri kuruluşunuzun belirli gereksinimlerini karşılamıyorsa kendi özel rollerinizi oluşturabilirsiniz. Yerleşik roller gibi, yönetim grubu, abonelik ve kaynak grubu kapsamlarında kullanıcılara, gruplara ve hizmet sorumlularına özel roller atayabilirsiniz.
Özel roller, aynı Microsoft Entra kiracıya güvenen abonelikler arasında paylaşılabilir. Kiracı başına 5.000 özel rol sınırı vardır. (21Vianet tarafından sağlanan Microsoft Azure için sınır 2.000 özel roldür.) Özel roller Azure portalı, Azure PowerShell, Azure CLI veya REST API kullanılarak oluşturulabilir.
Özel rol oluşturma adımları
Özel rol oluşturmanın temel adımları aşağıdadır.
İhtiyacınız olan izinleri belirleyin.
Özel bir rol oluşturduğunuzda, izinlerinizi tanımlamak için kullanılabilecek eylemleri bilmeniz gerekir. Normalde, mevcut bir yerleşik rolle başlarsınız ve sonra bunları ihtiyaçlarınıza göre değiştirirsiniz. Eylemleri rol tanımının
Actions
veyaNotActions
özelliklerine eklersiniz. Veri eylemleriniz varsa, bunları veyaNotDataActions
özelliklerineDataActions
eklersiniz.Daha fazla bilgi için, ihtiyacınız olan izinleri belirleme başlıklı sonraki bölüme bakın.
Özel rolü nasıl oluşturmak istediğinize karar verin.
Azure portalını, Azure PowerShell'i, Azure CLI'yı veya REST API'yi kullanarak özel roller oluşturabilirsiniz.
Özel rolü oluşturun.
Bunun en kolay yolu Azure portalını kullanmaktır. Azure portalını kullanarak özel rol oluşturma adımları için bkz . Azure portalını kullanarak Azure özel rolleri oluşturma veya güncelleştirme.
Özel rolü test edin.
Özel rolünüz olduktan sonra, beklediğiniz gibi çalıştığını doğrulamak için bunu test edin. Daha sonra ayarlamalar yapmanız gerekirse özel rolü güncelleştirebilirsiniz.
Hangi izinlere ihtiyacınız olduğunu belirleme
Azure,özel rolünüzde içerebileceğiniz binlerce izne sahiptir. Özel rolünüz için eklemek istediğiniz izinleri belirlemenize yardımcı olabilecek bazı yöntemler şunlardır:
Mevcut yerleşik rollere bakın.
Var olan bir rolü değiştirmek veya birden çok rolde kullanılan izinleri birleştirmek isteyebilirsiniz.
Erişim vermek istediğiniz Azure hizmetlerini listeleyin.
Azure hizmetleriyle eşleyen kaynak sağlayıcılarını belirleyin.
Azure hizmetleri, kaynak sağlayıcıları aracılığıyla işlevlerini ve izinlerini kullanıma sunar. Örneğin, Microsoft.Compute kaynak sağlayıcısı sanal makine kaynaklarını, Microsoft.Billing kaynak sağlayıcısı ise abonelik ve faturalama kaynaklarını sağlar. Kaynak sağlayıcılarını bilmek, özel rolünüz için gereken izinleri daraltmanıza ve belirlemenize yardımcı olabilir.
Azure portalını kullanarak özel bir rol oluşturduğunuzda anahtar sözcükleri arayarak kaynak sağlayıcılarını da belirleyebilirsiniz. Bu arama işlevi, Azure portalını kullanarak Azure özel rolleri oluşturma veya güncelleştirme başlığında açıklanmıştır.
Eklemek istediğiniz izinleri bulmak için kullanılabilir izinleri arayın.
Azure portalını kullanarak özel bir rol oluşturduğunuzda, anahtar sözcük kullanarak izinleri arayabilirsiniz. Örneğin, sanal makine veya faturalama izinlerini arayabilirsiniz. Ayrıca tüm izinleri CSV dosyası olarak indirip bu dosyada arama yapabilirsiniz. Bu arama işlevi, Azure portalını kullanarak Azure özel rolleri oluşturma veya güncelleştirme başlığında açıklanmıştır.
Özel rol örneği
Aşağıda, JSON biçiminde Azure PowerShell kullanılarak görüntülenen özel rolün nasıl göründüğü gösterilmektedir. Bu özel rol, sanal makineleri izlemek ve yeniden başlatmak için kullanılabilir.
{
"Name": "Virtual Machine Operator",
"Id": "88888888-8888-8888-8888-888888888888",
"IsCustom": true,
"Description": "Can monitor and restart virtual machines.",
"Actions": [
"Microsoft.Storage/*/read",
"Microsoft.Network/*/read",
"Microsoft.Compute/*/read",
"Microsoft.Compute/virtualMachines/start/action",
"Microsoft.Compute/virtualMachines/restart/action",
"Microsoft.Authorization/*/read",
"Microsoft.ResourceHealth/availabilityStatuses/read",
"Microsoft.Resources/subscriptions/resourceGroups/read",
"Microsoft.Insights/alertRules/*",
"Microsoft.Insights/diagnosticSettings/*",
"Microsoft.Support/*"
],
"NotActions": [],
"DataActions": [],
"NotDataActions": [],
"AssignableScopes": [
"/subscriptions/{subscriptionId1}",
"/subscriptions/{subscriptionId2}",
"/providers/Microsoft.Management/managementGroups/{groupId1}"
]
}
Aşağıda, Azure CLI kullanılarak görüntülenen aynı özel rol gösterilmektedir.
[
{
"assignableScopes": [
"/subscriptions/{subscriptionId1}",
"/subscriptions/{subscriptionId2}",
"/providers/Microsoft.Management/managementGroups/{groupId1}"
],
"description": "Can monitor and restart virtual machines.",
"id": "/subscriptions/{subscriptionId1}/providers/Microsoft.Authorization/roleDefinitions/88888888-8888-8888-8888-888888888888",
"name": "88888888-8888-8888-8888-888888888888",
"permissions": [
{
"actions": [
"Microsoft.Storage/*/read",
"Microsoft.Network/*/read",
"Microsoft.Compute/*/read",
"Microsoft.Compute/virtualMachines/start/action",
"Microsoft.Compute/virtualMachines/restart/action",
"Microsoft.Authorization/*/read",
"Microsoft.ResourceHealth/availabilityStatuses/read",
"Microsoft.Resources/subscriptions/resourceGroups/read",
"Microsoft.Insights/alertRules/*",
"Microsoft.Insights/diagnosticSettings/*",
"Microsoft.Support/*"
],
"dataActions": [],
"notActions": [],
"notDataActions": []
}
],
"roleName": "Virtual Machine Operator",
"roleType": "CustomRole",
"type": "Microsoft.Authorization/roleDefinitions"
}
]
Özel rol özellikleri
Aşağıdaki tabloda özel rol özelliklerinin anlamı açıklanmaktadır.
Özellik | Zorunlu | Türü | Açıklama |
---|---|---|---|
Name roleName |
Yes | String | Özel rolün görünen adı. Rol tanımı bir yönetim grubu veya abonelik düzeyi kaynak olsa da, aynı Microsoft Entra kiracısını paylaşan birden çok abonelikte rol tanımı kullanılabilir. Bu görünen ad, Microsoft Entra kiracısının kapsamında benzersiz olmalıdır. Harfler, sayılar, boşluklar ve özel karakterler içerebilir. Karakter sayısı üst sınırı 512'dir. |
Id name |
Yes | String | Özel rolün benzersiz kimliği. Azure PowerShell ve Azure CLI için, yeni bir rol oluşturduğunuzda bu kimlik otomatik olarak oluşturulur. |
IsCustom roleType |
Yes | String | Bunun özel bir rol olup olmadığını gösterir. Özel roller için true veya CustomRole olarak ayarlayın. false Yerleşik roller için veya BuiltInRole olarak ayarlayın. |
Description description |
Yes | String | Özel rolün açıklaması. Harfler, sayılar, boşluklar ve özel karakterler içerebilir. Karakter sayısı üst sınırı 2048'dir. |
Actions actions |
Yes | Dize[] | Rolün gerçekleştirilmeye izin verdiği denetim düzlemi eylemlerini belirten dize dizisi. Daha fazla bilgi için bkz . Eylemler. |
NotActions notActions |
Hayır | Dize[] | İzin verilen Actions dışında tutulan denetim düzlemi eylemlerini belirten dize dizisi. Daha fazla bilgi için bkz . NotActions. |
DataActions dataActions |
Hayır | Dize[] | Rolün bu nesnedeki verilerinize gerçekleştirilmesini sağladığı veri düzlemi eylemlerini belirten dize dizisi. ile DataActions özel bir rol oluşturursanız, bu rol yönetim grubu kapsamında atanamaz. Daha fazla bilgi için bkz . DataActions. |
NotDataActions notDataActions |
Hayır | Dize[] | İzin verilen DataActions dışında tutulan veri düzlemi eylemlerini belirten dize dizisi. Daha fazla bilgi için bkz . NotDataActions. |
AssignableScopes assignableScopes |
Yes | Dize[] | Özel rolün atama için kullanılabilir olduğu kapsamları belirten dize dizisi. En fazla 2.000 sayısıdır AssignableScopes . Daha fazla bilgi için bkz . AssignableScopes. |
İzin dizeleri büyük/küçük harfe duyarlı değildir. Özel rollerinizi oluşturduğunuzda, kural Azure kaynak sağlayıcısı işlemlerinde izinler için gördüğünüz durumla eşleşmelidir.
Joker karakter izinleri
Actions
, NotActions
, DataActions
ve NotDataActions
izinleri tanımlamak için joker karakterleri (*
) destekler. Joker karakter (*
), bir izni, sağladığınız eylem dizesiyle eşleşen her şeye genişletir. Örneğin, Azure Maliyet Yönetimi ve dışarı aktarmalarla ilgili tüm izinleri eklemek istediğinizi varsayalım. Bu eylem dizelerinin tümünü ekleyebilirsiniz:
Microsoft.CostManagement/exports/action
Microsoft.CostManagement/exports/read
Microsoft.CostManagement/exports/write
Microsoft.CostManagement/exports/delete
Microsoft.CostManagement/exports/run/action
Bu dizelerin tümünü eklemek yerine joker karakter dizesi ekleyebilirsiniz. Örneğin, aşağıdaki joker karakter dizesi önceki beş dizeye eşdeğerdir. Bu, gelecekte eklenebilecek tüm dışarı aktarma izinlerini de içerir.
Microsoft.CostManagement/exports/*
Not
Joker karakteri (*
) kullanmak yerine açıkça belirtmeniz Actions
DataActions
önerilir. Gelecekte Actions
verilen ek erişim ve izinler veya DataActions
joker karakter kullanılarak istenmeyen davranışlar olabilir.
Özel rolü kim oluşturabilir, silebilir, güncelleştirebilir veya görüntüleyebilir?
Yerleşik roller gibi özelliği de AssignableScopes
rolün atama için kullanılabilir olduğu kapsamları belirtir. Özel rolün AssignableScopes
özelliği, özel rolü kimlerin oluşturabileceğini, silebileceğini, güncelleştirebileceğini veya görüntüleyebileceğini de denetler.
Görev | Eylem | Açıklama |
---|---|---|
Özel rol oluşturma/silme | Microsoft.Authorization/ roleDefinitions/write |
Özel rolün tümlerinde AssignableScopes bu eyleme izin verilen kullanıcılar, bu kapsamlarda kullanmak üzere özel roller oluşturabilir (veya silebilir). Örneğin, yönetim gruplarının, aboneliklerin ve kaynak gruplarının Sahipleri ve Kullanıcı Erişimi Yöneticileri. |
Özel rolü güncelleştirme | Microsoft.Authorization/ roleDefinitions/write |
Özel rolün tümlerinde AssignableScopes bu eyleme verilen kullanıcılar bu kapsamlardaki özel rolleri güncelleştirebilir. Örneğin, yönetim gruplarının, aboneliklerin ve kaynak gruplarının Sahipleri ve Kullanıcı Erişimi Yöneticileri. |
Özel rol görüntüleme | Microsoft.Authorization/ roleDefinitions/read |
Bir kapsamda bu eylem verilen kullanıcılar, bu kapsamda atama için kullanılabilen özel rolleri görüntüleyebilir. Tüm yerleşik roller, özel rollerin atama için kullanılabilir olmasına olanak tanır. |
Not
Bir rol yeniden adlandırılsa bile rol kimliği değişmez. Rol atamalarınızı oluşturmak için betikler veya otomasyon kullanıyorsanız, rol adı yerine benzersiz rol kimliğini kullanmak en iyi yöntemdir. Bu nedenle, bir rol yeniden adlandırılırsa betiklerinizin çalışma olasılığı daha yüksektir.
Özel rolü silmek için rol atamalarını bulma
Özel rolü silebilmeniz için önce özel rolü kullanan rol atamalarını kaldırmanız gerekir. Rol atamalarıyla özel bir rolü silmeye çalışırsanız şu iletiyi alırsınız: There are existing role assignments referencing role (code: RoleDefinitionHasAssignments)
.
Özel bir rolü silmeden önce rol atamalarını bulmanıza yardımcı olacak adımlar şunlardır:
- Özel rol tanımını listeleyin.
- AssignableScopes bölümünde yönetim gruplarını, abonelikleri ve kaynak gruplarını alın.
- üzerinde yineleme
AssignableScopes
yapın ve rol atamalarını listeleyin. - Özel rolü kullanan rol atamalarını kaldırın.
- Microsoft Entra Privileged Identity Management kullanıyorsanız, uygun özel rol atamalarını kaldırın.
- Özel rolü silin.
Kullanılmayan özel rolleri bulma hakkında bilgi için bkz . Belirti - Başka rol tanımı oluşturulamıyor.
Özel rol sınırları
Aşağıdaki listede özel rollerin sınırları açıklanmaktadır.
- Her kiracıda en fazla 5000 özel rol olabilir.
- 21Vianet tarafından sağlanan Microsoft Azure her kiracı için en fazla 2000 özel rol içerebilir.
- Kök kapsama (
"/"
) ayarlayamazsınızAssignableScopes
. - içinde
AssignableScopes
joker karakterler (*
) kullanamazsınız. Bu joker karakter kısıtlaması, kullanıcının rol tanımını güncelleştirerek bir kapsama erişim elde etme olasılığını ortadan kaldırmaya yardımcı olur. - Eylem dizesinde tek bir joker karakter bulunabilir.
- Özel rolün
AssignableScopes
özelliğinde tek bir yönetim grubu tanımlayabilirsiniz. - Azure Resource Manager, rol tanımının
AssignableScopes
içinde yönetim grubunun varlığını doğrulamaz. DataActions
içeren özel roller yönetim grubu kapsamında atanamaz.- ve içinde bir yönetim grubu
AssignableScopes
ileDataActions
özel bir rol oluşturabilirsiniz. Özel rolü yönetim grubu kapsamının kendisine atayamazsınız; ancak, özel rolü yönetim grubu içindeki aboneliklerin kapsamında atayabilirsiniz. Bu, her abonelik için ayrı bir özel rol oluşturmak yerine birden çok abonelikte atanması gereken tek bir özel rolDataActions
oluşturmanız gerekiyorsa yararlı olabilir.
Özel roller ve yönetim grupları hakkında daha fazla bilgi için bkz. Azure yönetim grupları nelerdir?
Giriş ve çıkış biçimleri
Komut satırını kullanarak özel rol oluşturmak için genellikle JSON kullanarak özel rol için istediğiniz özellikleri belirtirsiniz. Kullandığınız araçlara bağlı olarak, giriş ve çıkış biçimleri biraz farklı görünür. Bu bölümde, ara çubuğuna bağlı olarak giriş ve çıkış biçimleri listelenir.
Azure PowerShell
Azure PowerShell kullanarak özel rol oluşturmak için aşağıdaki girişi sağlamanız gerekir.
{
"Name": "",
"Description": "",
"Actions": [],
"NotActions": [],
"DataActions": [],
"NotDataActions": [],
"AssignableScopes": []
}
Azure PowerShell kullanarak özel bir rolü güncelleştirmek için aşağıdaki girişi sağlamanız gerekir. özelliğinin Id
eklendiğini unutmayın.
{
"Name": "",
"Id": "",
"Description": "",
"Actions": [],
"NotActions": [],
"DataActions": [],
"NotDataActions": [],
"AssignableScopes": []
}
Aşağıda, Azure PowerShell'i ve ConvertTo-Json komutunu kullanarak özel bir rol listelediğiniz çıktının bir örneği gösterilmektedir.
{
"Name": "",
"Id": "",
"IsCustom": true,
"Description": "",
"Actions": [],
"NotActions": [],
"DataActions": [],
"NotDataActions": [],
"AssignableScopes": []
}
Azure CLI
Azure CLI kullanarak özel rol oluşturmak veya güncelleştirmek için aşağıdaki girişleri sağlamanız gerekir. Bu biçim, Azure PowerShell kullanarak özel bir rol oluşturduğunuzda aynı biçimdir.
{
"Name": "",
"Description": "",
"Actions": [],
"NotActions": [],
"DataActions": [],
"NotDataActions": [],
"AssignableScopes": []
}
Aşağıda, Azure CLI kullanarak özel bir rol listelediğiniz çıktının bir örneği gösterilmektedir.
[
{
"assignableScopes": [],
"description": "",
"id": "",
"name": "",
"permissions": [
{
"actions": [],
"dataActions": [],
"notActions": [],
"notDataActions": []
}
],
"roleName": "",
"roleType": "CustomRole",
"type": "Microsoft.Authorization/roleDefinitions"
}
]
REST API
REST API kullanarak özel rol oluşturmak veya güncelleştirmek için aşağıdaki girişi sağlamanız gerekir. Bu biçim, Azure portalını kullanarak özel bir rol oluşturduğunuzda oluşturulan biçimle aynıdır.
{
"properties": {
"roleName": "",
"description": "",
"assignableScopes": [],
"permissions": [
{
"actions": [],
"notActions": [],
"dataActions": [],
"notDataActions": []
}
]
}
}
Aşağıda, REST API kullanarak özel bir rol listelediğiniz çıktının bir örneği gösterilmektedir.
{
"properties": {
"roleName": "",
"type": "CustomRole",
"description": "",
"assignableScopes": [],
"permissions": [
{
"actions": [],
"notActions": [],
"dataActions": [],
"notDataActions": []
}
],
"createdOn": "",
"updatedOn": "",
"createdBy": "",
"updatedBy": ""
},
"id": "",
"type": "Microsoft.Authorization/roleDefinitions",
"name": ""
}