Поделиться через


Учебник: Создание настраиваемой роли Azure с использованием Azure CLI

Если встроенные роли Azure не соответствуют потребностям вашей организации, вы можете создать собственные настраиваемые роли. В этом руководстве вы создадите настраиваемую роль с именем "Читающий заявки службы поддержки" с помощью Azure CLI. Кастомная роль позволяет пользователю просматривать все в плоскости управления подписки, а также открывать заявки в службу поддержки.

В этом руководстве описано, как:

  • Создание настраиваемой роли
  • Список настраиваемых ролей
  • Обновление настраиваемой роли
  • Удаление настраиваемой роли

Если у вас нет подписки Azure, создайте бесплатную учетную запись, прежде чем приступить к работе.

Предпосылки

Для выполнения этого руководства потребуется следующее:

Вход в Azure CLI

Войдите в Azure CLI.

Создание настраиваемой роли

Самый простой способ создать пользовательскую роль — начать с шаблона JSON, добавить изменения, а затем создать новую роль.

  1. Просмотрите список действий для поставщика ресурсов Microsoft.Support. Полезно знать действия, доступные для создания разрешений.

    Действие Описание
    Microsoft.Support/register/action Регистрируется для поддержки поставщика ресурсов
    Microsoft.Support/supportTickets/read Получает сведения об обращении в службу поддержки (включая состояние, критичность, контактные данные и сообщения) или получает список обращений по всем подпискам.
    Microsoft.Support/supportTickets/write Создает или обновляет запрос в службу поддержки. Вы можете создать запрос в службу поддержки для технических, выставления счетов, квот или связанных с управлением подписками проблем. Вы можете обновить степень серьезности, контактные данные и способы общения для существующих запросов в службу поддержки.
  2. Создайте файл с именем ReaderSupportRole.json.

  3. Откройте ReaderSupportRole.json в редакторе и добавьте следующий код JSON.

    Для получения информации о различных свойствах см. настраиваемые роли в Azure.

    {
      "Name": "",
      "IsCustom": true,
      "Description": "",
      "Actions": [],
      "NotActions": [],
      "DataActions": [],
      "NotDataActions": [],
      "AssignableScopes": [
        "/subscriptions/{subscriptionId1}"
      ]
    }
    
  4. Добавьте действия, указанные ниже, в Actions свойство. Эти действия позволяют пользователю просматривать все данные в подписке и создавать запросы в службу поддержки.

    "*/read",
    "Microsoft.Support/*"
    
  5. Получите идентификатор подписки с помощью команды az account list .

    az account list --output table
    
  6. В AssignableScopes замените {subscriptionId1} своим идентификатором подписки.

    Вам нужно добавить конкретные идентификаторы подписки, в противном случае вы не сможете импортировать роль в подписку.

  7. Измените свойства 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"
      ]
    }
    
  8. Чтобы создать новую пользовательскую роль, используйте команду 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"
    }
    

    Новая пользовательская роль теперь доступна и может быть назначена пользователям, группам или субъектам-службам так же, как встроенные роли.

Список настраиваемых ролей

  • Чтобы вывести список всех пользовательских ролей, используйте команду 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.

    Снимок экрана пользовательской роли, импортированной на портал Azure

Обновление настраиваемой роли

Чтобы обновить пользовательскую роль, обновите JSON-файл и обновите пользовательскую роль.

  1. Откройте файл ReaderSupportRole.json.

  2. В 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"
      ]
    }
    
  3. Чтобы обновить пользовательскую роль, используйте команду 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"
    

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