Руководство. Создание настраиваемой роли Azure с помощью Azure CLI
Если встроенные роли Azure не соответствуют потребностям вашей организации, вы можете создать собственные настраиваемые роли. С помощью этого руководства и Azure CLI вы создадите настраиваемую роль с именем "Запросы в службу поддержки от читателя". Она позволяет пользователю просматривать все объекты в плоскости управления подписки, а также делать запросы в службу поддержки.
В этом руководстве описано следующее:
- Создание пользовательской роли
- Вывод списка настраиваемых ролей
- Обновление пользовательской роли
- Удаление настраиваемой роли
Если у вас нет подписки Azure, создайте бесплатную учетную запись, прежде чем приступить к работе.
Необходимые компоненты
Для выполнения этого руководства потребуется следующее:
- Разрешения на создание пользовательских ролей, таких как Администратор istrator для доступа пользователей
- Azure Cloud Shell или Azure CLI.
Вход в Azure CLI
Создание пользовательской роли
Создать пользовательскую роль проще всего с помощью шаблона JSON, в который вы можете добавлять изменения для создания новой роли.
Просмотрите список действий для поставщика ресурсов Microsoft.Support. Полезно знать, какие действия доступны для создания разрешений.
Действие Description Microsoft.Support/register/action Выполняет регистрацию в поставщике ресурсов поддержки. Microsoft.Support/supportTickets/read Возвращает подробные сведения о запросе в службу поддержки (включая состояние, серьезность, контактную информацию и сообщения) или возвращает список запросов в службу поддержки в подписках. Microsoft.Support/supportTickets/write Создает или обновляет запрос в службу поддержки. Можно создавать запросы в службу поддержки по техническим проблемам, а также проблемам, связанным с выставлением счетов, квотами или управлением подписками. Вы можете изменить уровень серьезности, контактную информацию и сообщения для существующих запросов в службу поддержки. Создайте файл с именем ReaderSupportRole.json.
Откройте роль ReaderSupportRole.json в редакторе и добавьте приведенный ниже код JSON.
См. дополнительные сведения о различных свойствах настраиваемых ролей.
{ "Name": "", "IsCustom": true, "Description": "", "Actions": [], "NotActions": [], "DataActions": [], "NotDataActions": [], "AssignableScopes": [ "/subscriptions/{subscriptionId1}" ] }
Добавьте следующие действия в свойство
Actions
. Эти действия позволяют пользователю просматривать все объекты в подписке, а также создавать запросы в службу поддержки."*/read", "Microsoft.Support/*"
Получите идентификатор подписки с помощью команды az account list.
az account list --output table
В
AssignableScopes
замените{subscriptionId1}
идентификатором своей подписки.Вам нужно добавить явные идентификаторы подписки, иначе вы не сможете импортировать роль в подписку.
Измените свойства
Name
иDescription
на "Запросы в службу поддержки от читателя" и "Просмотр всех объектов в подписке и создание запросов в службу поддержки".Файл JSON должен выглядеть примерно так:
{ "Name": "Reader Support Tickets", "IsCustom": true, "Description": "View everything in the subscription and also open support tickets.", "Actions": [ "*/read", "Microsoft.Support/*" ], "NotActions": [], "DataActions": [], "NotDataActions": [], "AssignableScopes": [ "/subscriptions/00000000-0000-0000-0000-000000000000" ] }
Чтобы создать пользовательскую роль, используйте команду az role definition create и укажите файл определения роли JSON.
az role definition create --role-definition "~/CustomRoles/ReaderSupportRole.json"
{ "additionalProperties": {}, "assignableScopes": [ "/subscriptions/00000000-0000-0000-0000-000000000000" ], "description": "View everything in the subscription and also open support tickets.", "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/22222222-2222-2222-2222-222222222222", "name": "22222222-2222-2222-2222-222222222222", "permissions": [ { "actions": [ "*/read", "Microsoft.Support/*" ], "additionalProperties": {}, "dataActions": [], "notActions": [], "notDataActions": [] } ], "roleName": "Reader Support Tickets", "roleType": "CustomRole", "type": "Microsoft.Authorization/roleDefinitions" }
Новая пользовательская роль станет доступной на портале Azure. Ее можно назначать пользователям, группам или субъектам-службам, так же как и встроенные роли.
Вывод списка настраиваемых ролей
Получить список всех пользовательских ролей можно с помощью команды az role definition list с параметром
--custom-role-only
.az role definition list --custom-role-only true
[ { "additionalProperties": {}, "assignableScopes": [ "/subscriptions/00000000-0000-0000-0000-000000000000" ], "description": "View everything in the subscription and also open support tickets.", "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/22222222-2222-2222-2222-222222222222", "name": "22222222-2222-2222-2222-222222222222", "permissions": [ { "actions": [ "*/read", "Microsoft.Support/*", "Microsoft.Resources/deployments/*", "Microsoft.Insights/diagnosticSettings/*/read" ], "additionalProperties": {}, "dataActions": [], "notActions": [], "notDataActions": [] } ], "roleName": "Reader Support Tickets", "roleType": "CustomRole", "type": "Microsoft.Authorization/roleDefinitions" } ]
Пользовательскую роль также можно просмотреть на портале Azure.
Обновление пользовательской роли
Чтобы обновить пользовательскую роль, обновите файл JSON, а затем саму роль.
Откройте файл ReaderSupportRole.json.
В
Actions
добавьте действие для создания и администрирования развертываний группы ресурсов"Microsoft.Resources/deployments/*"
. Не забудьте добавить запятую после предыдущего действия.Обновленный файл JSON должен выглядеть примерно так:
{ "Name": "Reader Support Tickets", "IsCustom": true, "Description": "View everything in the subscription and also open support tickets.", "Actions": [ "*/read", "Microsoft.Support/*", "Microsoft.Resources/deployments/*" ], "NotActions": [], "DataActions": [], "NotDataActions": [], "AssignableScopes": [ "/subscriptions/00000000-0000-0000-0000-000000000000" ] }
Чтобы обновить пользовательскую роль, используйте команду az role definition update и укажите обновленный файл JSON.
az role definition update --role-definition "~/CustomRoles/ReaderSupportRole.json"
{ "additionalProperties": {}, "assignableScopes": [ "/subscriptions/00000000-0000-0000-0000-000000000000" ], "description": "View everything in the subscription and also open support tickets.", "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/22222222-2222-2222-2222-222222222222", "name": "22222222-2222-2222-2222-222222222222", "permissions": [ { "actions": [ "*/read", "Microsoft.Support/*", "Microsoft.Resources/deployments/*" ], "additionalProperties": {}, "dataActions": [], "notActions": [], "notDataActions": [] } ], "roleName": "Reader Support Tickets", "roleType": "CustomRole", "type": "Microsoft.Authorization/roleDefinitions" }
Удаление настраиваемой роли
Используйте команду az role definition delete и укажите имя или идентификатор роли для удаления пользовательской роли.
az role definition delete --name "Reader Support Tickets"