Настраиваемые роли AzureAzure custom roles

Важно!

В настоящее время добавление группы управления в AssignableScopes доступно в режиме предварительной версии.Adding a management group to AssignableScopes is currently in preview. Эта предварительная версия предоставляется без соглашения об уровне обслуживания и не рекомендована для использования рабочей среде.This preview version is provided without a service level agreement, and it's not recommended for production workloads. Некоторые функции могут не поддерживаться или их возможности могут быть ограничены.Certain features might not be supported or might have constrained capabilities. Дополнительные сведения см. в статье Дополнительные условия использования предварительных выпусков Microsoft Azure.For more information, see Supplemental Terms of Use for Microsoft Azure Previews.

Если встроенные роли Azure не соответствуют потребностям вашей организации, вы можете создать собственные настраиваемые роли.If the Azure built-in roles don't meet the specific needs of your organization, you can create your own custom roles. Так же, как и встроенные роли, можно назначать пользовательские роли пользователям, группам и субъектам-службам в областях групп управления, подписок и групп ресурсов.Just like built-in roles, you can assign custom roles to users, groups, and service principals at management group, subscription, and resource group scopes.

Пользовательские роли могут совместно использоваться подписками, которые доверяют одному каталогу Azure AD.Custom roles can be shared between subscriptions that trust the same Azure AD directory. Существует ограничение в 5 000 пользовательских ролей для каталога.There is a limit of 5,000 custom roles per directory. (Для Azure для Германии и Azure для Китая с помощью 21Vianet ограничение составляет 2 000 пользовательских ролей.) Пользовательские роли можно создавать с помощью портал Azure, Azure PowerShell, Azure CLI или REST API.(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.

Процедура создания пользовательской ролиSteps to create a custom role

Ниже приведены основные шаги по созданию пользовательской роли.Here are the basic steps to create a custom role.

  1. Определите необходимые разрешения.Determine the permissions you need.

    При создании пользовательской роли необходимо знать, какие операции доступны для определения разрешений.When you create a custom role, you need to know the operations that are available to define your permissions. В общем случае вы начинаете с существующей встроенной роли и видоизменяете ее под свои потребности.Typically, you start with an existing built-in role and then modify it for your needs. Вы добавите операции в Actions NotActions свойства или определения роли.You will add the operations to the Actions or NotActions properties of the role definition. Если у вас есть операции с данными, вы добавите их DataActions в NotDataActions свойства или.If you have data operations, you will add those to the DataActions or NotDataActions properties.

    Дополнительные сведения см. в следующем разделе как определить необходимые разрешения.For more information, see the next section How to determine the permissions you need.

  2. Выберите способ создания настраиваемой роли.Decide how you want to create the custom role.

    Пользовательские роли можно создавать с помощью портал Azure, Azure PowerShell, Azure CLIили REST API.You can create custom roles using Azure portal, Azure PowerShell, Azure CLI, or the REST API.

  3. Создайте настраиваемую роль.Create the custom role.

    Самый простой способ — использовать портал Azure.The easiest way is to use the Azure portal. Инструкции по созданию настраиваемой роли с помощью портал Azure см. в разделе Создание или обновление пользовательских ролей Azure с помощью портал Azure.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. Проверьте пользовательскую роль.Test the custom role.

    Создав пользовательскую роль, нужно проверить правильность ее работы.Once you have your custom role, you have to test it to verify that it works as you expect. Если позже потребуется корректировка, вы можете обновить пользовательскую роль.If you need to make adjustments later, you can update the custom role.

Определение необходимых разрешенийHow to determine the permissions you need

В Azure есть тысячи разрешений, которые потенциально можно включить в пользовательскую роль.Azure has thousands of permissions that you can potentially include in your custom role. Ниже приведены некоторые методы, которые могут помочь определить разрешения, которые нужно добавить в пользовательскую роль.Here are some methods that can help you determine the permissions you will want to add to your custom role:

  • Просмотрите существующие встроенные роли.Look at existing built-in roles.

    Может потребоваться изменить существующую роль или объединить разрешения, используемые в нескольких ролях.You might want to modify an existing role or combine permissions used in multiple roles.

  • Перечислите службы Azure, к которым вы хотите предоставить доступ.List the Azure services you want to grant access to.

  • Определите поставщиков ресурсов, которые сопоставляются со службами Azure.Determine the resource providers that map to the Azure services.

    Службы Azure предоставляют свои функции и разрешения с помощью поставщиков ресурсов.Azure services expose their functionality and permissions through resource providers. Например, поставщик ресурсов Microsoft. COMPUTE предоставляет ресурсы виртуальной машины, а поставщик ресурсов Microsoft. Billing предоставляет подписку и ресурсы для выставления счетов.For example, the Microsoft.Compute resource provider supplies virtual machine resources and the Microsoft.Billing resource provider supplies subscription and billing resources. Знание поставщиков ресурсов поможет вам сократить и определить разрешения, необходимые для пользовательской роли.Knowing the resource providers can help you narrow down and determine the permissions you need for your custom role.

    При создании пользовательской роли с помощью портал Azure можно также определить поставщиков ресурсов, выполнив поиск по ключевым словам.When you create a custom role using the Azure portal, you can also determine the resource providers by searching for keywords. Эта функция поиска описана в разделе Создание или обновление пользовательских ролей Azure с помощью портал Azure.This search functionality is described in Create or update Azure custom roles using the Azure portal.

    Панель "Добавление разрешений" с поставщиком ресурсов

  • Выполните поиск доступных разрешений , чтобы найти разрешения, которые нужно включить.Search the available permissions to find permissions you want to include.

    При создании пользовательской роли с помощью портал Azure можно выполнять поиск разрешений по ключевому слову.When you create a custom role using the Azure portal, you can search for permissions by keyword. Например, можно выполнить поиск по виртуальной машине или разрешениям на выставление счетов .For example, you can search for virtual machine or billing permissions. Вы также можете скачать все разрешения как CSV-файл, а затем выполнить поиск в этом файле.You can also download all of the permissions as a CSV file and then search this file. Эта функция поиска описана в разделе Создание или обновление пользовательских ролей Azure с помощью портал Azure.This search functionality is described in Create or update Azure custom roles using the Azure portal.

    Добавить список разрешений

Пример пользовательской ролиCustom role example

Ниже показано, как выглядит пользовательская роль, отображаемая с помощью Azure PowerShell в формате JSON.The following shows what a custom role looks like as displayed using Azure PowerShell in JSON format. Эта пользовательская роль позволяет выполнять мониторинг и перезапуск виртуальных машин.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}"
  ]
}

Ниже показана та же самая настраиваемая роль, которая отображается с помощью Azure CLI.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"
  }
]

После создания пользовательская роль отображается на портале Azure с оранжевым значком ресурса.When you create a custom role, it appears in the Azure portal with an orange resource icon.

Имя пользовательской роли

Свойства пользовательской ролиCustom role properties

В следующей таблице описано, что означают свойства пользовательской роли.The following table describes what the custom role properties mean.

СвойствоProperty ОбязательноRequired ТипType ОписаниеDescription
Name
roleName
ДаYes СтрокаString Отображаемое имя пользовательской роли.The display name of the custom role. Хотя определение роли — это группа управления или ресурс уровня подписки, определение роли можно использовать в нескольких подписках, использующих один каталог Azure AD.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. Это отображаемое имя должно быть уникальным в рамках каталога Azure AD.This display name must be unique at the scope of the Azure AD directory. Может содержать буквы, цифры, пробелы и специальные знаки.Can include letters, numbers, spaces, and special characters. Максимальное количество знаков — 128.Maximum number of characters is 128.
Id
name
ДаYes СтрокаString Уникальный идентификатор настраиваемой роли.The unique ID of the custom role. Для Azure PowerShell и Azure CLI этот идентификатор формируется автоматически при создании роли.For Azure PowerShell and Azure CLI, this ID is automatically generated when you create a new role.
IsCustom
roleType
ДаYes СтрокаString Указывает, является ли эта роль настраиваемой.Indicates whether this is a custom role. Задайте для параметра значение true или CustomRole для пользовательских ролей.Set to true or CustomRole for custom roles. Задайте значение false или BuiltInRole для встроенных ролей.Set to false or BuiltInRole for built-in roles.
Description
description
ДаYes СтрокаString Описание пользовательской роли.The description of the custom role. Может содержать буквы, цифры, пробелы и специальные знаки.Can include letters, numbers, spaces, and special characters. Максимальное количество знаков — 1024.Maximum number of characters is 1024.
Actions
actions
ДаYes String[]String[] Массив строк, описывающий операции управления, которые роль разрешает выполнять.An array of strings that specifies the management operations that the role allows to be performed. Дополнительные сведения см. в разделе Actions.For more information, see Actions.
NotActions
notActions
НетNo String[]String[] Массив строк, указывающий операции управления, которые исключаются из разрешенных Actions.An array of strings that specifies the management operations that are excluded from the allowed Actions. Дополнительные сведения см. в разделе NotActions.For more information, see NotActions.
DataActions
dataActions
НетNo String[]String[] Массив строк, указывающий операции с данными, которые роль разрешает выполнять с вашими данными внутри этого объекта.An array of strings that specifies the data operations that the role allows to be performed to your data within that object. Если создать пользовательскую роль с DataActions , эту роль нельзя будет назначить в области группы управления.If you create a custom role with DataActions, that role cannot be assigned at the management group scope. Дополнительные сведения см. в разделе действияс данными.For more information, see DataActions.
NotDataActions
notDataActions
НетNo String[]String[] Массив строк, указывающий операции с данными, которые исключаются из разрешенных DataActions.An array of strings that specifies the data operations that are excluded from the allowed DataActions. Дополнительные сведения см. в разделе нотдатаактионс.For more information, see NotDataActions.
AssignableScopes
assignableScopes
ДаYes String[]String[] Массив строк, который указывает области, в которых пользовательская роль может быть назначена.An array of strings that specifies the scopes that the custom role is available for assignment. В пользовательской роли можно определить только одну группу управления AssignableScopes .You can only define one management group in AssignableScopes of a custom role. В настоящее время добавление группы управления в AssignableScopes доступно в режиме предварительной версии.Adding a management group to AssignableScopes is currently in preview. Дополнительные сведения см. в разделе AssignableScopes.For more information, see AssignableScopes.

Разрешения с подстановочными знакамиWildcard permissions

Actions, NotActions , DataActions и NotDataActions поддерживают подстановочные знаки ( * ) для определения разрешений.Actions, NotActions, DataActions, and NotDataActions support wildcards (*) to define permissions. Подстановочный знак ( * ) расширяет разрешение на все, что соответствует предоставленной строке действий.A wildcard (*) extends a permission to everything that matches the action string you provide. Например, предположим, что вы решили добавить все разрешения, связанные с управлением затратами Azure и экспортами.For example, suppose that you wanted to add all the permissions related to Azure Cost Management and exports. Вы можете добавить все следующие строки действий: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

Вместо добавления всех этих строк можно просто добавить строку с подстановочными знаками.Instead of adding all of these strings, you could just add a wildcard string. Например, следующая строка с подстановочными знаками эквивалентна предыдущим пяти строкам.For example, the following wildcard string is equivalent to the previous five strings. Сюда также входят все будущие разрешения экспорта, которые могут быть добавлены.This would also include any future export permissions that might be added.

Microsoft.CostManagement/exports/*

В строке можно также использовать несколько подстановочных знаков.You can also have multiple wildcards in a string. Например, следующая строка представляет все разрешения на запросы для управления затратами.For example, the following string represents all query permissions for Cost Management.

Microsoft.CostManagement/*/query/*

Кто может создавать, удалять, обновлять или просматривать пользовательскую рольWho can create, delete, update, or view a custom role

Как и в случае со встроенными ролями, свойство AssignableScopes указывает области, в которых роль может быть назначена.Just like built-in roles, the AssignableScopes property specifies the scopes that the role is available for assignment. Свойство AssignableScopes пользовательской роли также определяет, кто может создавать, удалять, изменять или просматривать пользовательскую роль.The AssignableScopes property for a custom role also controls who can create, delete, update, or view the custom role.

ЗадачаTask ОперацияOperation ОписаниеDescription
Создание или удаление пользовательской ролиCreate/delete a custom role Microsoft.Authorization/ roleDefinitions/write Пользователи с разрешением на эту операцию для всех AssignableScopes пользовательской роли могут создавать (или удалять) пользовательские роли для использования в этих областях.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. Например, владельцы и Администраторы доступа пользователей групп управления, подписок и групп ресурсов.For example, Owners and User Access Administrators of management groups, subscriptions, and resource groups.
Обновление пользовательской ролиUpdate a custom role Microsoft.Authorization/ roleDefinitions/write Пользователи с разрешением на эту операцию для всех AssignableScopes пользовательской роли могут обновлять пользовательские роли в этих областях.Users that are granted this operation on all the AssignableScopes of the custom role can update custom roles in those scopes. Например, владельцы и Администраторы доступа пользователей групп управления, подписок и групп ресурсов.For example, Owners and User Access Administrators of management groups, subscriptions, and resource groups.
Просмотр пользовательской ролиView a custom role Microsoft.Authorization/ roleDefinitions/read Пользователи с разрешением на эту операцию в определенной области могут просматривать пользовательские роли, которые доступны для назначения в этой области.Users that are granted this operation at a scope can view the custom roles that are available for assignment at that scope. Все встроенные роли позволяют использовать настраиваемые роли для назначения.All built-in roles allow custom roles to be available for assignment.

Ограничения пользовательской ролиCustom role limits

В следующем списке описаны ограничения для пользовательских ролей.The following list describes the limits for custom roles.

  • Каждый каталог может иметь до 5000 пользовательских ролей.Each directory can have up to 5000 custom roles.
  • Azure для Германии и Azure для Китая в Китае могут иметь до 2000 пользовательских ролей для каждого каталога.Azure Germany and Azure China 21Vianet can have up to 2000 custom roles for each directory.
  • Нельзя задать AssignableScopes в качестве корневой области ( "/" ).You cannot set AssignableScopes to the root scope ("/").
  • В нельзя использовать подстановочные знаки ( * ) AssignableScopes .You cannot use wildcards (*) in AssignableScopes. Это ограничение по шаблону позволяет гарантировать, что пользователь не сможет получить доступ к области, обновив определение роли.This wildcard restriction helps ensure a user can't potentially obtain access to a scope by updating the role definition.
  • В пользовательской роли можно определить только одну группу управления AssignableScopes .You can only define one management group in AssignableScopes of a custom role. В настоящее время добавление группы управления в AssignableScopes доступно в режиме предварительной версии.Adding a management group to AssignableScopes is currently in preview.
  • Пользовательские роли с DataActions не могут быть назначены в области группы управления.Custom roles with DataActions cannot be assigned at the management group scope.
  • Azure Resource Manager не проверяет существование группы управления в назначаемой области определения роли.Azure Resource Manager doesn't validate the management group's existence in the role definition's assignable scope.

Дополнительные сведения о настраиваемых ролях и группах управления см. в статье организация ресурсов с помощью групп управления Azure.For more information about custom roles and management groups, see Organize your resources with Azure management groups.

Форматы входных и выходных данныхInput and output formats

Для создания пользовательской роли с помощью командной строки, как правило, используется JSON для указания нужных свойств настраиваемой роли.To create a custom role using the command line, you typically use JSON to specify the properties you want for the custom role. В зависимости от используемых средств форматы входных и выходных данных будут немного отличаться.Depending on the tools you use, the input and output formats will look slightly different. В этом разделе перечислены форматы ввода и вывода в зависимости от инструмента.This section lists the input and output formats depending on the tool.

Azure PowerShellAzure PowerShell

Чтобы создать настраиваемую роль с помощью Azure PowerShell, необходимо указать следующие входные данные.To create a custom role using Azure PowerShell, you must provide following input.

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

Чтобы обновить пользовательскую роль с помощью Azure PowerShell, необходимо указать следующие входные данные.To update a custom role using Azure PowerShell, you must provide the following input. Обратите внимание, что Id свойство добавлено.Note that the Id property has been added.

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

Ниже приведен пример выходных данных при перечислении пользовательской роли с помощью Azure PowerShell и команды ConvertTo-JSON .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 CLI, необходимо указать следующие входные данные.To create or update a custom role using Azure CLI, you must provide following input. Этот формат имеет тот же формат при создании пользовательской роли с помощью Azure PowerShell.This format is the same format when you create a custom role using Azure PowerShell.

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

Ниже приведен пример выходных данных при перечислении пользовательской роли с помощью Azure CLI.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, необходимо указать следующие входные данные.To create or update a custom role using the REST API, you must provide following input. Этот формат имеет тот же формат, который создается при создании пользовательской роли с помощью портал Azure.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": []
      }
    ]
  }
}

Ниже приведен пример выходных данных при перечислении пользовательской роли с помощью REST API.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": ""
}

Дальнейшие действияNext steps