Ö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.

  1. İ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 Actionsveya NotActions özelliklerine eklersiniz. Veri eylemleriniz varsa, bunları veya NotDataActions özelliklerine DataActions eklersiniz.

    Daha fazla bilgi için, ihtiyacınız olan izinleri belirleme başlıklı sonraki bölüme bakın.

  2. Ö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.

  3. Ö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.

  4. Ö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.

    Add permissions pane with resource provider

  • 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.

    Add permissions list

Ö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 Tanım
Name
roleName
Evet 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
Evet 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
Evet 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
Evet 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
Evet 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 Actionsdışı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 DataActionsdışı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. 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, DataActionsve 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/*

Dekont

Joker karakteri (*) kullanmak yerine açıkça belirtmeniz ActionsDataActions ö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 Tanım
Ö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, Sahipler ve Kullanıcı Erişimi yönetim gruplarının, aboneliklerin ve kaynak gruplarının Yönetici.
Ö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, Sahipler ve Kullanıcı Erişimi yönetim gruplarının, aboneliklerin ve kaynak gruplarının Yönetici.
Ö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.

Ö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 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 AssignableScopesjoker 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 AssignableScopesiç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 AssignableScopesile DataActions ö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 rol DataActions 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": ""
}

Sonraki adımlar