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


Оповещение о назначениях привилегированных ролей Azure

Привилегированные роли Azure, такие как участник, владелец или администратор доступа пользователей, являются мощными ролями и могут привести к риску в вашей системе. При назначении этих или других ролей может потребоваться получать уведомления по электронной почте или текстовому сообщению. В этой статье описывается, как получать уведомления о назначениях привилегированных ролей в области подписки путем создания правила генерации оповещений с помощью Azure Monitor.

Необходимые компоненты

Чтобы создать правило генерации оповещений, необходимо:

  • Доступ к подписке Azure
  • Разрешение на создание групп ресурсов и ресурсов в подписке
  • Настройка Log Analytics для доступа к таблице AzureActivity

Оценка затрат перед использованием Azure Monitor

Существует стоимость, связанная с использованием правил генерации оповещений и Azure Monitor. Стоимость зависит от частоты выполнения запроса и выбранных уведомлений. Дополнительные сведения см. на странице цен на Azure Monitor.

Создать правило генерации оповещений

Чтобы получить уведомление о назначениях привилегированных ролей, создайте правило генерации оповещений в Azure Monitor.

  1. Войдите на портал Azure.

  2. Перейдите к монитору.

  3. В области навигации слева нажмите кнопку "Оповещения".

  4. Нажмите кнопку "Создать>правило генерации оповещений". Откроется страница создания правила генерации оповещений.

  5. На вкладке "Область" выберите подписку.

  6. На вкладке "Условие" выберите имя сигнала пользовательского поиска журнала.

  7. В поле запроса журнала добавьте следующий запрос Kusto, который будет выполняться в журнале подписки и активирует оповещение.

    Этот запрос фильтрует попытки назначить роли участника, владельца или администратора доступа пользователей в области выбранной подписки.

    AzureActivity
    | where CategoryValue =~ "Administrative" and
        OperationNameValue =~ "Microsoft.Authorization/roleAssignments/write" and
        (ActivityStatusValue =~ "Start" or ActivityStatus =~ "Started")
    | extend Properties_d = todynamic(Properties)
    | extend RoleDefinition = extractjson("$.Properties.RoleDefinitionId",tostring(Properties_d.requestbody),typeof(string))
    | extend PrincipalId = extractjson("$.Properties.PrincipalId",tostring(Properties_d.requestbody),typeof(string))
    | extend PrincipalType = extractjson("$.Properties.PrincipalType",tostring(Properties_d.requestbody),typeof(string))
    | extend Scope = extractjson("$.Properties.Scope",tostring(Properties_d.requestbody),typeof(string))
    | where Scope !contains "resourcegroups"
    | extend RoleId = split(RoleDefinition,'/')[-1]
    | extend RoleDisplayName = case(
        RoleId =~ 'b24988ac-6180-42a0-ab88-20f7382dd24c', "Contributor",
        RoleId =~ '8e3af657-a8ff-443c-a75c-2fe8c4bcb635', "Owner",
        RoleId =~ '18d7d88d-d35e-4fb5-a5c3-7773c20a72d9', "User Access Administrator",
        "Irrelevant")
    | where RoleDisplayName != "Irrelevant"
    | project TimeGenerated,Scope, PrincipalId,PrincipalType,RoleDisplayName
    

    Снимок экрана: вкладка

  8. В разделе "Измерение" задайте следующие значения:

    • Мера: строки таблицы
    • Тип агрегирования: число
    • Степень детализации агрегирования: 5 минут

    Для детализации агрегирования можно изменить значение по умолчанию на нужную частоту.

  9. В разделе "Разделение по измерениям" задайте для столбца идентификатора ресурса значение "Не разделять".

  10. В разделе логики генерации оповещений задайте следующие значения:

    • Оператор: больше
    • Пороговое значение: 0
    • Частота оценки: 5 минут

    Для частоты оценки можно изменить значение по умолчанию на нужную частоту.

  11. На вкладке "Действия" создайте группу действий или выберите существующую группу действий.

    Группа действий определяет действия и уведомления, выполняемые при активации оповещения.

    При создании группы действий необходимо указать группу ресурсов, чтобы поместить ее в группу действий. Затем выберите уведомления (сообщение электронной почты, SMS или действие Push/Voice), чтобы вызвать при активации правила генерации оповещений. Вы можете пропустить вкладки "Действия " и "Теги ". Дополнительные сведения см. в разделе Создание групп действий и управление ими на портале Azure.

  12. На вкладке "Сведения" выберите группу ресурсов, чтобы сохранить правило генерации оповещений.

  13. В разделе сведений о правиле генерации оповещений выберите серьезность и укажите имя правила генерации оповещений.

  14. Для региона можно выбрать любой регион, так как журналы действий Azure являются глобальными.

  15. Пропустите вкладку "Теги ".

  16. На вкладке "Просмотр и создание" нажмите кнопку "Создать ", чтобы создать правило генерации оповещений.

Проверка правила генерации оповещений

После создания правила генерации оповещений вы можете проверить, что он запускается.

  1. Назначьте роль "Участник", "Владелец" или "Администратор доступа пользователей" в области подписки. Дополнительные сведения см. в разделе Назначение ролей Azure с помощью портала Azure.

  2. Подождите несколько минут, чтобы получить оповещение на основе детализации агрегирования и частоты оценки запроса журнала.

  3. На странице "Оповещения" отслеживайте оповещения, указанные в группе действий.

    Снимок экрана: страница

    На следующем рисунке показан пример оповещения электронной почты.

    Снимок экрана: оповещение электронной почты о назначении роли.

Удаление правила генерации оповещений

Выполните следующие действия, чтобы удалить правило генерации оповещений о назначении ролей и остановить дополнительные затраты.

  1. В мониторе перейдите к оповещениям.

  2. На панели нажмите кнопку "Правила генерации оповещений".

  3. Добавьте флажок рядом с правилом генерации оповещений, который вы хотите удалить.

  4. Нажмите кнопку " Удалить", чтобы удалить оповещение.

Следующие шаги