Безопасность RBAC на уровне таблиц и строк рабочей области Log Analytics

#azure #security #logging #analytics

Вопрос:

У нас есть таблица в Azure Log Analytics, в которой хранятся журналы из многих разных систем.

Например, в нашей CommonSecurityLog таблице есть журналы с разных брандмауэров. Я создал пользовательскую роль RBAC, которая разрешает доступ только к этой конкретной таблице, но хотела бы пойти дальше и ограничить доступ только к определенным строкам.

Я провел некоторое исследование, но не могу найти способ сделать это, возможно ли это?

Ответ №1:

В Azure это невозможно сделать изначально — RBAC поддерживает управление доступом только на уровне таблиц.

РЕДАКТИРОВАТЬ: Итак, как упоминал @FidelCasto, есть также возможность использовать пользовательские журналы. Это будет полезно во многих случаях, когда вам нужно собрать пользовательские данные, связанные с Windows, связанные с приложениями. Это может быть более удобным вариантом для пользователя, но, очевидно, будут и другие случаи, когда он не будет применяться, особенно когда у вас есть устройства, отправляющие нестандартные журналы.

Если ваши требования не удовлетворяются указанным выше параметром, единственным другим универсальным вариантом является размещение сборщика журналов между брандмауэрами и Azure и использование сценария для фильтрации журналов перед их отправкой через API REST Log Analytics (OpInsights). Для этого можно использовать сценарий PowerShell.

  1. Каждый брандмауэр будет отправлять свои журналы локальному/удаленному сборщику журналов.
  2. Создайте запрос/фильтр скрипта по журналам с помощью If/Else на основе имени брандмауэра.
  3. Для каждого брандмауэра вы создадите новый Log-Type на основе имени брандмауэра. Log-Type соответствует имени таблицы в Log Analytics.
  4. Назначьте разрешение на основе вновь созданных пользовательских таблиц.

Это не так прямолинейно, но делает свою работу!

Комментарии:

1. Я думаю, что более простым способом сделать то, что вы говорите, было бы использовать пользовательские журналы, нет? docs.microsoft.com/en-us/azure/azure-monitor/agents/… К сожалению, мне действительно нужно, чтобы журналы были в таблице CommonSecurityLog.

2. Да, в некоторых случаях вы правы. Спасибо за напоминание, которое совершенно вылетело у меня из головы, я должен был упомянуть об этом, но, как правило, когда меня спрашивают об источниках журналов, отличных от виртуальных машин/приложений, я думаю только об API. Мы использовали пользовательский журнал только один раз, но для остальных случаев использования нам приходилось собирать журналы из нестандартных источников. Структура вывода не соответствовала требованиям Log Analytics. Я обновлю свой ответ, чтобы отразить это, но если вы столкнетесь с той же проблемой, что и я, REST API-это вариант для всех.

3. Хорошо, в таком случае, к сожалению, это невозможно сделать, так как Microsoft пока не поддерживает это. Я понимаю, что это может сделать поисковые запросы очень сложными, если вы разделите CommonSecurityLog на несколько таблиц! Извините, я ничем не мог вам помочь!