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

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

    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
    

    Screenshot of Create an alert rule condition tab in Azure Monitor.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Screenshot of the Alerts page showing that role assignment alert fired.

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

    Screenshot of an email alert for a role assignment.

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

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

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

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

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

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

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