Azure özel rolleri
Önemli
'a AssignableScopes
yönetim grubu ekleme işlemi şu anda önizleme aşamasındadır.
Önizleme sürümü bir hizmet düzeyi sözleşmesi olmadan sağlanır ve üretim iş yüklerinde kullanılması önerilmez. Bazı özellikler desteklenmiyor olabileceği gibi özellikleri sınırlandırılmış da olabilir.
Daha fazla bilgi için bkz. Microsoft Azure Önizlemeleri için Ek Kullanım Koşulları.
Azure yerleşik rolleri kuruluşunuzun belirli gereksinimlerini karşılamıyorsa kendi özel rollerinizi oluşturabilirsiniz. Yerleşik roller gibi, yönetim grubu (yalnızca önizlemede), abonelik ve kaynak grubu kapsamlarında kullanıcılara, gruplara ve hizmet sorumlularına özel roller atayabilirsiniz.
Aynı Azure AD kiracıya güvenen abonelikler arasında özel roller paylaşılabilir. Kiracı başına 5.000 özel rol sınırı vardır. (Azure China 21Vianet 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. Genellikle, mevcut yerleşik bir 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 ekleyebilirsiniz. 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, Azure PowerShell, Azure CLI veya REST API kullanarak özel roller oluşturabilirsiniz.
Özel rolü oluşturun.
En kolay yol Azure portal kullanmaktır. Azure portal kullanarak özel rol oluşturma adımları için bkz. Azure portal 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üze 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şleşen 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. İşlem kaynağı sağlayıcısı, sanal makine kaynaklarını ve Microsoft sağlar. Faturalama kaynak sağlayıcısı 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 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 kullanarak Azure özel rollerini oluşturma veya güncelleştirme bölümünde açıklanmıştır.
Eklemek istediğiniz izinleri bulmak için kullanılabilir izinleri arayın.
Azure portal kullanarak özel bir rol oluşturduğunuzda, anahtar sözcüğüne göre 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 kullanarak Azure özel rollerini oluşturma veya güncelleştirme bölümünde 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 ne anlama gelir açıklanmaktadır.
Özellik | Gerekli | Tür | Açıklama |
---|---|---|---|
Name roleName |
Evet | Dize | Özel rolün görünen adı. Rol tanımı bir yönetim grubu veya abonelik düzeyi kaynak olsa da, rol tanımı aynı Azure AD kiracıyı paylaşan birden çok abonelikte kullanılabilir. Bu görünen ad, Azure AD 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 |
Evet | Dize | Ö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 |
Evet | Dize | 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 |
Evet | Dize | Ö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 |
Evet | Dize[] | Rolün gerçekleştirilmesini sağlayan 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 nesne içindeki verilerinize gerçekleştirilmesini sağlayan 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 |
Evet | Dize[] | Özel rolün atama için kullanılabilir olduğu kapsamları belirten dize dizisi. Maksimum sayı AssignableScopes 2.000'dir. Daha fazla bilgi için bkz . AssignableScopes. |
İzin dizeleri büyük/küçük harfe duyarlı değildir. Özel rollerinizi oluştururken 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/*
Joker karakteri (*
) kullanmak yerine açıkça belirtmeniz Actions
DataActions
ve belirtmeniz önerilir. Gelecekte Actions
DataActions
veya joker karakter kullanılarak istenmeyen davranışlar yoluyla verilen ek erişim ve izinler.
Ö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 eylem 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 |
Tüm AssignableScopes özel rollerde 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ılabilecek özel rolleri görüntüleyebilir. Tüm yerleşik roller, özel rollerin atama için kullanılabilir olmasına olanak tanır. |
Ö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 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.
- Özel rolü silin.
Özel rol sınırları
Aşağıdaki listede özel rollerin sınırları açıklanmaktadır.
- Her kiracının en fazla 5000 özel rolü olabilir.
- Azure China 21Vianet 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. - Özel bir rolde
AssignableScopes
yalnızca bir yönetim grubu tanımlayabilirsiniz. 'aAssignableScopes
bir yönetim grubu ekleme işlemi şu anda önizleme aşamasındadır. - Eylem dizesinde tek bir joker karakter bulunabilir.
- ile
DataActions
özel roller yönetim grubu kapsamında atanamaz. - Azure Resource Manager, yönetim grubunun rol tanımının
AssignableScopes
içinde varlığını doğrulamaz.
Ö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 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şi 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 kullanarak özel bir rol oluşturduğunuzda oluşturulan biçimle aynıdır.
{
"properties": {
"roleName": "",
"description": "",
"assignableScopes": [],
"permissions": [
{
"actions": [],
"notActions": [],
"dataActions": [],
"notDataActions": []
}
]
}
}
Rest API kullanarak özel bir rol listelediğiniz çıktının bir örneği aşağıda gösterilmiştir.
{
"properties": {
"roleName": "",
"type": "CustomRole",
"description": "",
"assignableScopes": [],
"permissions": [
{
"actions": [],
"notActions": [],
"dataActions": [],
"notDataActions": []
}
],
"createdOn": "",
"updatedOn": "",
"createdBy": "",
"updatedBy": ""
},
"id": "",
"type": "Microsoft.Authorization/roleDefinitions",
"name": ""
}