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


Оповещение о назначениях привилегированных ролей 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 или голосовое действие), чтобы вызвать при срабатывании правила оповещения. Вы можете пропустить вкладки "Действия " и "Теги ". Дополнительные сведения см. в разделе Создание групп действий и управление ими на портале Azure.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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