Azure özel rolleri

Önemli

'a AssignableScopes bir 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 grubunda (yalnızca önizlemede), abonelikte ve kaynak grubu kapsamlarında kullanıcılara, gruplara ve hizmet sorumlularına özel roller atayabilirsiniz.

Özel roller, aynı Azure AD kiracıya güvenen abonelikler arasında 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.

  1. İhtiyacınız olan izinleri belirleyin.

    Özel rol oluşturduğunuzda, izinlerinizi tanımlamak için kullanılabilecek eylemleri bilmeniz gerekir. Genellikle, 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ınActions veya NotActions özelliklerine ekleyebilirsiniz. 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, Azure PowerShell, Azure CLI veya REST API kullanarak özel roller oluşturabilirsiniz.

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

  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.

İhtiyacınız olan izinleri belirleme

Azure'ın özel rolünüzde içerebileceğiniz binlerce izni vardır. Ö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ş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 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 başlığında açıklanmıştır.

    Kaynak sağlayıcısı ile izin ekle bölmesi

  • 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 izinleri için arama yapabilirsiniz. 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 başlığında açıklanmıştır.

    İzin listesi ekleme

Ö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 kaynağı 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ı 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
Yes Dize[] Rolün gerçekleştirilmesine izin verdiği denetim düzlemi eylemlerini belirten dize dizisi. Daha fazla bilgi için bkz . Eylemler.
NotActions
notActions
No Dize[] İzin verilen Actionsdışında tutulan denetim düzlemi eylemlerini belirten dize dizisi. Daha fazla bilgi için bkz . NotActions.
DataActions
dataActions
No Dize[] Rolün bu nesne içindeki verilerinize gerçekleştirilmesine izin verdiği 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
No Dize[] İzin verilen DataActionsdışı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. 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, 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/*

Joker karakteri (*) kullanmak yerine açıkça belirtmeniz ActionsDataActions ve belirtmeniz önerilir. Gelecekte ActionsDataActions veya joker karakter kullanılarak istenmeyen davranışlar yoluyla verilen ek erişim ve izinler.

Özel rol oluşturabilen, silebilen, güncelleştirebilen 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 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 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.
  • Özel bir rolde AssignableScopes yalnızca bir yönetim grubu tanımlayabilirsiniz. 'a AssignableScopes 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 AssignableScopesiç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": ""
}

Sonraki adımlar