Özel Azure rolleriAzure custom roles

Önemli

' Ye bir yönetim grubu eklemek AssignableScopes Şu anda önizlemededir.Adding a management group to AssignableScopes is currently in preview. Önizleme sürümü bir hizmet düzeyi sözleşmesi olmadan sağlanır ve üretim iş yüklerinde kullanılması önerilmez.This preview version is provided without a service level agreement, and it's not recommended for production workloads. Bazı özellikler desteklenmiyor olabileceği gibi özellikleri sınırlandırılmış da olabilir.Certain features might not be supported or might have constrained capabilities. Daha fazla bilgi için bkz. Microsoft Azure Önizlemeleri için Ek Kullanım Koşulları.For more information, see Supplemental Terms of Use for Microsoft Azure Previews.

Azure yerleşik rolleri , kuruluşunuzun belirli ihtiyaçlarını karşılamıyorsa, kendi özel rollerinizi de oluşturabilirsiniz.If the Azure built-in roles don't meet the specific needs of your organization, you can create your own custom roles. Yerleşik rollerde olduğu gibi, yönetim grubu, abonelik ve kaynak grubu kapsamları ' nda kullanıcılara, gruplara ve hizmet sorumlularına özel roller atayabilirsiniz.Just like built-in roles, you can assign custom roles to users, groups, and service principals at management group, subscription, and resource group scopes.

Özel Roller aynı Azure AD dizinine güvenen abonelikler arasında paylaşılabilir.Custom roles can be shared between subscriptions that trust the same Azure AD directory. Dizin başına 5.000 özel rol sınırı vardır.There is a limit of 5,000 custom roles per directory. (Azure Almanya ve Azure Çin 21Vianet için sınır 2.000 özel rollerdir.) Özel roller Azure portal, Azure PowerShell, Azure CLı veya REST API kullanılarak oluşturulabilir.(For Azure Germany and Azure China 21Vianet, the limit is 2,000 custom roles.) Custom roles can be created using the Azure portal, Azure PowerShell, Azure CLI, or the REST API.

Özel rol oluşturma adımlarıSteps to create a custom role

Özel bir rol oluşturmak için temel adımlar aşağıda verilmiştir.Here are the basic steps to create a custom role.

  1. İhtiyaç duyduğunuz izinleri saptayın.Determine the permissions you need.

    Özel bir rol oluşturduğunuzda, izinlerinizi tanımlamak için kullanılabilir işlemleri bilmeniz gerekir.When you create a custom role, you need to know the operations that are available to define your permissions. Genellikle, mevcut yerleşik bir rolle başlayıp gereksinimlerinize göre değiştirirsiniz.Typically, you start with an existing built-in role and then modify it for your needs. İşlemleri Actions NotActions Rol tanımınınveya özelliklerine ekleyeceksiniz.You will add the operations to the Actions or NotActions properties of the role definition. Veri işlemlerdir, bunları DataActions veya NotDataActions özelliklerine eklersiniz.If you have data operations, you will add those to the DataActions or NotDataActions properties.

    Daha fazla bilgi için, ihtiyacınız olan Izinleri nasıl belirleyebirsonraki bölüme bakın.For more information, see the next section How to determine the permissions you need.

  2. Özel rolü nasıl oluşturmak istediğinize karar verin.Decide how you want to create the custom role.

    Azure Portal, Azure POWERSHELL, Azure CLIveya REST APIkullanarak özel roller oluşturabilirsiniz.You can create custom roles using Azure portal, Azure PowerShell, Azure CLI, or the REST API.

  3. Özel rolü oluşturun.Create the custom role.

    En kolay yöntem Azure portal kullanmaktır.The easiest way is to use the Azure portal. Azure portal kullanarak özel rol oluşturma adımları için, bkz. Azure Portal kullanarak Azure özel rolleri oluşturma veya güncelleştirme.For steps on how to create a custom role using the Azure portal, see Create or update Azure custom roles using the Azure portal.

  4. Özel rolü test edin.Test the custom role.

    Özel rolünüzü aldıktan sonra, beklendiği gibi çalıştığını doğrulamak için test etmeniz gerekir.Once you have your custom role, you have to test it to verify that it works as you expect. Daha sonra ayarlamalar yapmanız gerekiyorsa, özel rolü güncelleştirebilirsiniz.If you need to make adjustments later, you can update the custom role.

İhtiyaç duyduğunuz izinleri belirlemeHow to determine the permissions you need

Azure 'da, özel rolünüzün potansiyel olarak içerebileceği binlerce izin vardır.Azure has thousands of permissions that you can potentially include in your custom role. Özel rolünüze eklemek istediğiniz izinleri belirlemenize yardımcı olabilecek bazı yöntemler şunlardır:Here are some methods that can help you determine the permissions you will want to add to your custom role:

  • Mevcut yerleşik rollerebakın.Look at existing built-in roles.

    Mevcut bir rolü değiştirmek veya birden çok rolde kullanılan izinleri birleştirmek isteyebilirsiniz.You might want to modify an existing role or combine permissions used in multiple roles.

  • Erişim vermek istediğiniz Azure hizmetlerini listeleyin.List the Azure services you want to grant access to.

  • Azure hizmetleriyle eşlenen kaynak sağlayıcılarınıbelirleme.Determine the resource providers that map to the Azure services.

    Azure Hizmetleri, kaynak sağlayıcılarıaracılığıyla işlevlerini ve izinlerini kullanıma sunar.Azure services expose their functionality and permissions through resource providers. Örneğin, Microsoft. COMPUTE kaynak sağlayıcısı, sanal makine kaynaklarını ve Microsoft. faturalandırma kaynak sağlayıcısını, abonelik ve faturalandırma kaynakları sağlar.For example, the Microsoft.Compute resource provider supplies virtual machine resources and the Microsoft.Billing resource provider supplies subscription and billing resources. Kaynak sağlayıcılarının bilinmesi, özel rolünüzün gereksinim duyduğunuz izinleri daraltmanıza ve belirlemenize yardımcı olabilir.Knowing the resource providers can help you narrow down and determine the permissions you need for your custom role.

    Azure portal kullanarak özel bir rol oluşturduğunuzda, anahtar sözcükleri arayarak kaynak sağlayıcılarını da belirleyebilirsiniz.When you create a custom role using the Azure portal, you can also determine the resource providers by searching for keywords. Bu arama işlevi, Azure Portal kullanarak Azure özel rolleri oluşturma veya güncelleştirmekonularında açıklanmaktadır.This search functionality is described in Create or update Azure custom roles using the Azure portal.

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

  • Dahil etmek istediğiniz izinleri bulmak için kullanılabilir izinleri arayın.Search the available permissions to find permissions you want to include.

    Azure portal kullanarak özel bir rol oluşturduğunuzda, anahtar sözcüğe göre izinler araması yapabilirsiniz.When you create a custom role using the Azure portal, you can search for permissions by keyword. Örneğin, sanal makine veya faturalandırma izinleri için arama yapabilirsiniz.For example, you can search for virtual machine or billing permissions. Ayrıca tüm izinleri bir CSV dosyası olarak indirebilir ve ardından bu dosyada arama yapabilirsiniz.You can also download all of the permissions as a CSV file and then search this file. Bu arama işlevi, Azure Portal kullanarak Azure özel rolleri oluşturma veya güncelleştirmekonularında açıklanmaktadır.This search functionality is described in Create or update Azure custom roles using the Azure portal.

    İzin listesi ekle

Özel rol örneğiCustom role example

Aşağıda, bir özel rolün JSON biçiminde Azure PowerShell kullanılarak gösterildiği gibi göründüğünü gösterilmektedir.The following shows what a custom role looks like as displayed using Azure PowerShell in JSON format. Bu özel rol, sanal makineleri izlemek ve yeniden başlatmak için kullanılabilir.This custom role can be used for monitoring and restarting virtual machines.

{
  "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 CLı kullanılarak gösterilen özel rol gösterilmektedir.The following shows the same custom role as displayed using Azure CLI.

[
  {
    "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 bir rol oluşturduğunuzda, bir turuncu kaynak simgesiyle Azure portal görüntülenir.When you create a custom role, it appears in the Azure portal with an orange resource icon.

Özel rol simgesi

Özel rol özellikleriCustom role properties

Aşağıdaki tabloda özel rol özelliklerinin ne anlama geldiğini açıklanmaktadır.The following table describes what the custom role properties mean.

ÖzellikProperty GerekliRequired TürType AçıklamaDescription
Name
roleName
EvetYes DizeString Özel rolün görünen adı.The display name of the custom role. Rol tanımı bir yönetim grubu veya abonelik düzeyi kaynağı olsa da, aynı Azure AD dizinini paylaşan birden çok abonelikte rol tanımı kullanılabilir.While a role definition is a management group or subscription-level resource, a role definition can be used in multiple subscriptions that share the same Azure AD directory. Bu görünen ad, Azure AD dizininin kapsamında benzersiz olmalıdır.This display name must be unique at the scope of the Azure AD directory. Harfler, rakamlar, boşluklar ve özel karakterler içerebilir.Can include letters, numbers, spaces, and special characters. En fazla karakter sayısı 128 ' dir.Maximum number of characters is 128.
Id
name
EvetYes DizeString Özel rolün benzersiz KIMLIĞI.The unique ID of the custom role. Azure PowerShell ve Azure CLı için bu KIMLIK, yeni bir rol oluşturduğunuzda otomatik olarak oluşturulur.For Azure PowerShell and Azure CLI, this ID is automatically generated when you create a new role.
IsCustom
roleType
EvetYes DizeString Bunun özel bir rol olup olmadığını gösterir.Indicates whether this is a custom role. trueÖzel roller için veya olarak ayarlayın CustomRole .Set to true or CustomRole for custom roles. falseYerleşik roller için veya olarak ayarlayın BuiltInRole .Set to false or BuiltInRole for built-in roles.
Description
description
EvetYes DizeString Özel rolün açıklaması.The description of the custom role. Harfler, rakamlar, boşluklar ve özel karakterler içerebilir.Can include letters, numbers, spaces, and special characters. En fazla karakter sayısı 1024 ' dir.Maximum number of characters is 1024.
Actions
actions
YesYes String []String[] Rolün gerçekleştirilmesine izin verdiği yönetim işlemlerini belirten dizeler dizisi.An array of strings that specifies the management operations that the role allows to be performed. Daha fazla bilgi için bkz. Eylemler.For more information, see Actions.
NotActions
notActions
NoNo String []String[] İzin verilen ' dan dışlanan yönetim işlemlerini belirten dizeler dizisi Actions .An array of strings that specifies the management operations that are excluded from the allowed Actions. Daha fazla bilgi için bkz. NotActions.For more information, see NotActions.
DataActions
dataActions
NoNo String []String[] Rolün bu nesne içindeki verilerinize gerçekleştirilmesine izin verdiği veri işlemlerini belirten dizeler dizisi.An array of strings that specifies the data operations that the role allows to be performed to your data within that object. İle özel bir rol oluşturursanız DataActions , bu rol yönetim grubu kapsamında atanamaz.If you create a custom role with DataActions, that role cannot be assigned at the management group scope. Daha fazla bilgi için bkz. Dataactions.For more information, see DataActions.
NotDataActions
notDataActions
NoNo String []String[] İzin verilen ' dan dışlanan veri işlemlerini belirten dizeler dizisi DataActions .An array of strings that specifies the data operations that are excluded from the allowed DataActions. Daha fazla bilgi için bkz. Notdataactions.For more information, see NotDataActions.
AssignableScopes
assignableScopes
YesYes String []String[] Özel rolün atama için kullanılabilir olduğu kapsamları belirten dizeler dizisi.An array of strings that specifies the scopes that the custom role is available for assignment. Özel bir rol içinde yalnızca bir yönetim grubu tanımlayabilirsiniz AssignableScopes .You can only define one management group in AssignableScopes of a custom role. ' Ye bir yönetim grubu eklemek AssignableScopes Şu anda önizlemededir.Adding a management group to AssignableScopes is currently in preview. Daha fazla bilgi için bkz. Astifblescopes.For more information, see AssignableScopes.

Joker karakter izinleriWildcard permissions

Actions, NotActions , DataActions ve NotDataActions * izinleri tanımlamak için joker karakterleri () destekler.Actions, NotActions, DataActions, and NotDataActions support wildcards (*) to define permissions. Bir joker karakter ( * ) sağladığınız eylem dizesiyle eşleşen her şeye bir izni genişletir.A wildcard (*) extends a permission to everything that matches the action string you provide. Örneğin, Azure maliyet yönetimi ve dışarı aktarma ile ilgili tüm izinleri eklemek istediğinizi varsayalım.For example, suppose that you wanted to add all the permissions related to Azure Cost Management and exports. Bu eylem dizelerinin tümünü ekleyebilirsiniz:You could add all of these action strings:

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 yalnızca bir joker karakter dizesi ekleyebilirsiniz.Instead of adding all of these strings, you could just add a wildcard string. Örneğin, aşağıdaki joker karakter dizesi önceki beş dizeye eşdeğerdir.For example, the following wildcard string is equivalent to the previous five strings. Bu Ayrıca, eklenebilir olabilecek, gelecekteki tüm dışarı aktarma izinlerini de içerir.This would also include any future export permissions that might be added.

Microsoft.CostManagement/exports/*

Bir dizede birden fazla joker karakter de olabilir.You can also have multiple wildcards in a string. Örneğin, aşağıdaki dize maliyet yönetimi için tüm sorgu izinlerini temsil eder.For example, the following string represents all query permissions for Cost Management.

Microsoft.CostManagement/*/query/*

Özel bir rol oluşturabilir, silebilir, güncelleştirebilir veya görüntüleyebilirWho can create, delete, update, or view a custom role

Yerleşik rollerde olduğu gibi, AssignableScopes özelliği rolün atama için kullanılabilir olduğu kapsamları belirtir.Just like built-in roles, the AssignableScopes property specifies the scopes that the role is available for assignment. AssignableScopesÖzel bir rol için özelliği ayrıca, özel rolü kimlerin oluşturerişebileceğini, silediğini, güncelleştirediğini veya görüntüleyemeyeceğini de denetler.The AssignableScopes property for a custom role also controls who can create, delete, update, or view the custom role.

GörevTask ÇalışmaOperation DescriptionDescription
Özel bir rol oluşturma/silmeCreate/delete a custom role Microsoft.Authorization/ roleDefinitions/write Tüm özel rol üzerinde bu işleme verilen kullanıcılar, bu AssignableScopes kapsamlarda kullanılmak üzere özel roller oluşturabilir (veya silebilir).Users that are granted this operation on all the AssignableScopes of the custom role can create (or delete) custom roles for use in those scopes. Örneğin, sahipler ve Kullanıcı erişimi yönetim gruplarının, aboneliklerinin ve kaynak gruplarının yöneticileri.For example, Owners and User Access Administrators of management groups, subscriptions, and resource groups.
Özel rolü güncelleştirmeUpdate a custom role Microsoft.Authorization/ roleDefinitions/write Tüm özel rol üzerinde bu işleme verilen kullanıcılar, AssignableScopes Bu kapsamlardaki özel rolleri güncelleştirebilir.Users that are granted this operation on all the AssignableScopes of the custom role can update custom roles in those scopes. Örneğin, sahipler ve Kullanıcı erişimi yönetim gruplarının, aboneliklerinin ve kaynak gruplarının yöneticileri.For example, Owners and User Access Administrators of management groups, subscriptions, and resource groups.
Özel bir rol görüntülemeView a custom role Microsoft.Authorization/ roleDefinitions/read Bu işlem bir kapsamda verilen kullanıcılar, bu kapsamda atama için kullanılabilen özel rolleri görüntüleyebilir.Users that are granted this operation at a scope can view the custom roles that are available for assignment at that scope. Tüm yerleşik roller, özel rollerin atama için kullanılabilir olmasına olanak tanır.All built-in roles allow custom roles to be available for assignment.

Özel rol limitleriCustom role limits

Aşağıdaki listede özel roller için sınırlar açıklanmaktadır.The following list describes the limits for custom roles.

  • Her bir dizin en fazla 5000 özel role sahip olabilir.Each directory can have up to 5000 custom roles.
  • Azure Almanya ve Azure Çin 21Vianet, her bir dizin için en fazla 2000 özel rol içerebilir.Azure Germany and Azure China 21Vianet can have up to 2000 custom roles for each directory.
  • AssignableScopesKök kapsamına ( "/" ) ayarlayamazsınız.You cannot set AssignableScopes to the root scope ("/").
  • İçinde joker karakterler ( * ) kullanamazsınız AssignableScopes .You cannot use wildcards (*) in AssignableScopes. Bu joker karakter kısıtlaması, bir kullanıcının rol tanımını güncelleştirerek bir kapsama erişim elde edemiyor olmasını sağlamaya yardımcı olur.This wildcard restriction helps ensure a user can't potentially obtain access to a scope by updating the role definition.
  • Özel bir rol içinde yalnızca bir yönetim grubu tanımlayabilirsiniz AssignableScopes .You can only define one management group in AssignableScopes of a custom role. ' Ye bir yönetim grubu eklemek AssignableScopes Şu anda önizlemededir.Adding a management group to AssignableScopes is currently in preview.
  • DataActionsYönetim grubu kapsamında özel roller atanamaz.Custom roles with DataActions cannot be assigned at the management group scope.
  • Azure Resource Manager, rol tanımının atanabilir kapsamındaki yönetim grubunun varlığını doğrulamaz.Azure Resource Manager doesn't validate the management group's existence in the role definition's assignable scope.

Özel roller ve yönetim grupları hakkında daha fazla bilgi için bkz. Azure Yönetim gruplarıyla kaynaklarınızı düzenleme.For more information about custom roles and management groups, see Organize your resources with Azure management groups.

Giriş ve çıkış biçimleriInput and output formats

Komut satırını kullanarak özel bir rol oluşturmak için genellikle JSON kullanarak özel rol için istediğiniz özellikleri belirtin.To create a custom role using the command line, you typically use JSON to specify the properties you want for the custom role. Kullandığınız araçlara bağlı olarak, giriş ve çıkış biçimleri biraz farklı görünecektir.Depending on the tools you use, the input and output formats will look slightly different. Bu bölümde, araca bağlı olarak giriş ve çıkış biçimleri listelenmektedir.This section lists the input and output formats depending on the tool.

Azure PowerShellAzure PowerShell

Azure PowerShell kullanarak özel bir rol oluşturmak için aşağıdaki girişi sağlamanız gerekir.To create a custom role using Azure PowerShell, you must provide following input.

{
  "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.To update a custom role using Azure PowerShell, you must provide the following input. IdÖzelliğin eklendiğini unutmayın.Note that the Id property has been added.

{
  "Name": "",
  "Id": "",
  "Description": "",
  "Actions": [],
  "NotActions": [],
  "DataActions": [],
  "NotDataActions": [],
  "AssignableScopes": []
}

Aşağıda, Azure PowerShell ve ConvertTo-JSON komutunu kullanarak özel bir rol listelüünüzde çıktının bir örneği gösterilmektedir.The following shows an example of the output when you list a custom role using Azure PowerShell and the ConvertTo-Json command.

{
  "Name": "",
  "Id": "",
  "IsCustom": true,
  "Description": "",
  "Actions": [],
  "NotActions": [],
  "DataActions": [],
  "NotDataActions": [],
  "AssignableScopes": []
}

Azure CLIAzure CLI

Azure CLı kullanarak özel bir rol oluşturmak veya güncelleştirmek için aşağıdaki girişi sağlamanız gerekir.To create or update a custom role using Azure CLI, you must provide following input. Azure PowerShell kullanarak özel bir rol oluştururken bu biçim aynı biçimdedir.This format is the same format when you create a custom role using Azure PowerShell.

{
  "Name": "",
  "Description": "",
  "Actions": [],
  "NotActions": [],
  "DataActions": [],
  "NotDataActions": [],
  "AssignableScopes": []
}

Aşağıda, Azure CLı kullanarak özel bir rol listelüünüzde çıktının bir örneği gösterilmektedir.The following shows an example of the output when you list a custom role using Azure CLI.

[
  {
    "assignableScopes": [],
    "description": "",
    "id": "",
    "name": "",
    "permissions": [
      {
        "actions": [],
        "dataActions": [],
        "notActions": [],
        "notDataActions": []
      }
    ],
    "roleName": "",
    "roleType": "CustomRole",
    "type": "Microsoft.Authorization/roleDefinitions"
  }
]

REST APIREST API

REST API kullanarak özel bir rol oluşturmak veya güncelleştirmek için aşağıdaki girişi sağlamanız gerekir.To create or update a custom role using the REST API, you must provide following input. Bu biçim, Azure portal kullanarak özel bir rol oluşturduğunuzda oluşturulan biçimdir.This format is the same format that gets generated when you create a custom role using the Azure portal.

{
  "properties": {
    "roleName": "",
    "description": "",
    "assignableScopes": [],
    "permissions": [
      {
        "actions": [],
        "notActions": [],
        "dataActions": [],
        "notDataActions": []
      }
    ]
  }
}

Aşağıda, REST API kullanarak özel bir rol listelüünüzde çıktının bir örneği gösterilmektedir.The following shows an example of the output when you list a custom role using the REST API.

{
    "properties": {
        "roleName": "",
        "type": "CustomRole",
        "description": "",
        "assignableScopes": [],
        "permissions": [
            {
                "actions": [],
                "notActions": [],
                "dataActions": [],
                "notDataActions": []
            }
        ],
        "createdOn": "",
        "updatedOn": "",
        "createdBy": "",
        "updatedBy": ""
    },
    "id": "",
    "type": "Microsoft.Authorization/roleDefinitions",
    "name": ""
}

Sonraki adımlarNext steps