Запускать записные книжки в озере данных Microsoft Sentinel

Ноутбуки Jupyter предоставляют интерактивную среду для изучения, анализа и визуализации данных в озере данных Microsoft Sentinel и федеративных таблицах. Записные книжки позволяют писать и выполнять код, документировать рабочий процесс и просматривать результаты в одном месте. Эта универсальная среда ноутбука облегчает исследование данных, создание передовых аналитических решений и обмен инсайтами с другими. Используя Python и Apache Spark в Visual Studio Code, записные книжки помогают преобразовывать необработанные данные безопасности в практический интеллект.

В этой статье показано, как изучать данные в озере данных и взаимодействовать с ними с помощью ноутбуков Jupyter в Visual Studio Code.

Предварительные условия

Подключение к озеру данных Microsoft Sentinel

Чтобы использовать блокноты в озере данных Microsoft Sentinel, необходимо сначала выполнить подключение к озеру данных. Если вы еще не подключены к озеру данных Sentinel, см. раздел Подключение к озеру данных Microsoft Sentinel. Если вы недавно начали работать с озером данных, может пройти некоторое время, пока не будет загружен достаточный объем данных, прежде чем вы сможете создавать содержательный анализ с помощью ноутбуков.

Требуемые разрешения для ноутбуков Data Lake

Роли Microsoft Entra ID обеспечивают широкий доступ ко всем рабочим областям в озере данных. В качестве альтернативы вы можете предоставить доступ к отдельным рабочим областям с помощью ролей Azure RBAC. Пользователи с разрешениями Azure RBAC для рабочих областей Microsoft Sentinel могут запускать записные книжки в этих рабочих областях на уровне озера данных. Дополнительные сведения см. в разделе Роли и разрешения в Microsoft Sentinel.

При необходимости можно настроить область видимости в Microsoft Sentinel или RBAC на уровне строк, чтобы дополнительно ограничить доступ к данным в рабочей области. Если этот параметр включён, ограничение области видимости на уровне строк ограничивает те данные, которые возвращаются запросами, на основе области видимости, назначенной пользователю. Если определение области на уровне строк не настроено, существующая модель разрешений на уровне рабочей области применяется без изменений. Дополнительные сведения см. в разделе Настройка области Microsoft Sentinel (RBAC на уровне строк) (предварительная версия).

Чтобы создать новые настраиваемые таблицы в аналитическом уровне, управляемому удостоверению озера данных необходимо назначить роль Участник Log Analytics в рабочей области Log Analytics.

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

  1. В портал Azure перейдите к рабочей области Log Analytics, которой требуется назначить роль.
  2. Выберите Управление доступом (IAM) в области навигации слева.
  3. Выберите Добавить назначение ролей.
  4. В таблице Роль выберите Участник Log Analytics, а затем нажмите кнопку Далее.
  5. Выберите Управляемый идентификатор, а затем выберите Выбрать участников.
  6. Управляемый идентификатор вашего озера данных — это управляемый идентификатор, назначенный системой, с именем msg-resources-<guid>. Выберите управляемое удостоверение, а затем выберите Выбрать.
  7. Выберите Проверить и назначить.

Дополнительные сведения о назначении ролей для управляемых удостоверений см. в статье Назначение ролей Azure с помощью портала Azure.

Установка Visual Studio Code и расширения Microsoft Sentinel

Если у вас еще нет Visual Studio Code, скачайте и установите Visual Studio Code для Mac, Linux или Windows.

Расширение Microsoft Sentinel для Visual Studio Code (VS Code) устанавливается из marketplace расширений. Чтобы установить расширение, выполните следующие действия.

  1. Выберите Extensions Marketplace на панели инструментов слева.
  2. Найдите Sentinel.
  3. Выберите расширение Microsoft Sentinel и нажмите кнопку Установить.
  4. После установки расширения в левой панели инструментов появляется иконка Microsoft Sentinel Image расширения Microsoft Sentinel в панели инструментов Visual Studio Code.

Снимок экрана, на котором показан магазин расширений.

Установите расширение GitHub Copilot для Visual Studio Code, чтобы включить завершение кода и предложения в записных книжках.

  1. Найдите GitHub Copilot в Marketplace расширений и установите его.
  2. После установки войдите в GitHub Copilot с помощью учетной записи GitHub.

Изучение таблиц уровня озера данных

После установки расширения Microsoft Sentinel можно приступить к изучению таблиц уровня data lake и созданию блокнотов Jupyter для анализа данных.

Вход в расширение Microsoft Sentinel

Чтобы войти в расширение Microsoft Sentinel, выполните следующие действия.

  1. Выберите изображение Microsoft Sentinel для иконки расширения Microsoft Sentinel, используемой для открытия расширения в Visual Studio Code на левой панели инструментов.

  2. Откроется диалоговое окно со следующим текстом: Расширение "Microsoft Sentinel" хочет выполнить вход через Microsoft. Выберите Разрешить.

    Снимок экрана: диалоговое окно входа.

  3. Выберите имя учетной записи, чтобы завершить вход.

    Снимок экрана: список выбора учетной записи в верхней части страницы.

    Если с вашим именем входа связано несколько гостевых учетных записей, можно легко переключаться между учетными записями. Чтобы переключаться между учетными записями, выберите имя учетной записи в левом нижнем углу окна Visual Studio Code. Одновременно можно выбрать только одну учетную запись.

    Снимок экрана: переключение учетных записей в Visual Studio Code.

    Важно!

    Переключение между учетными записями отключает все активные сеансы pyspark.

Просмотр таблиц и заданий озера данных

После входа расширение Sentinel отображает список таблиц Lake и заданий в левой области. Таблицы группируются по базе данных и категории. Федеративные таблицы отображаются в категории Федеративные таблицы в разделе Системные таблицы. Выберите таблицу, чтобы просмотреть определения столбцов.

Для получения информации о планировании заданий в блокнотах см. раздел «Создание и управление заданиями и расписаниями в тетради » в этой статье. Дополнительные сведения о федеративных таблицах см. в разделе «Использование федеративных таблиц в озере данных Microsoft Sentinel».

Снимок экрана с расширением Sentinel, на котором показаны таблицы Lake, задания в левой панели и метаданные для выбранной таблицы.

Создание записной книжки

Чтобы создать новый блокнот Jupyter в Visual Studio Code, следуйте следующим шагам:

  1. Чтобы создать записную книжку, используйте один из следующих методов.

  2. Введите > в поле поиска или нажмите клавиши CTRL+SHIFT+P, а затем введите Create New Jupyter Notebook. Снимок экрана: создание записной книжки на панели поиска.

  3. Выберите Файл > Создать файл, а затем выберите Jupyter Notebook в раскрывающемся списке.
    Снимок экрана: создание записной книжки из меню

  4. В новой записной книжке вставьте следующий код в первую ячейку.

    from sentinel_lake.providers import MicrosoftSentinelProvider
    data_provider = MicrosoftSentinelProvider(spark)
    
    table_name = "EntraGroups"  
    df = data_provider.read_table(table_name)  
    df_filtered = df.select("displayName", "groupTypes", "mail", "mailNickname", "description", "tenantId").show(100,   truncate=False)  
    
    # Transform the dataframe
    df_transformed = df.filter(df.mail.isNotNull()).select("displayName", "groupTypes", "mail", "mailNickname", "description", "tenantId")
    
    write_options = {
         'mode': 'overwrite'
     }
    # Save to a new table
    data_provider.save_as_table(df_transformed, "EntraGroups_Processed_SPRK", write_options=write_options)
    

    Редактор поддерживает автодополнение кода IntelliSense как для класса MicrosoftSentinelProvider, так и для имен таблиц в озере данных.

  5. Выберите треугольник Выполнить , чтобы выполнить код в записной книжке. Результаты отображаются в области выходных данных под ячейкой кода.
    Снимок экрана, показывающий, как запустить ячейку записной книжки.

  6. Выберите Microsoft Sentinel в списке для списка пулов среды выполнения. Снимок экрана: средство выбора среды выполнения.

  7. Выберите Medium, чтобы запустить блокнот в пуле сред выполнения среднего размера. Дополнительные сведения о различных средах выполнения см. в разделе "Выбор соответствующего пула среды выполнения". Снимок экрана: средство выбора размера пула запуска.

Примечание.

При выборе ядра запускается сеанс Spark и выполняется код в записной книжке. После выбора пула может потребоваться 3–5 минут для начала сеанса. Последующие запуски выполняются быстрее, так как сеанс уже активен.

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

Примеры записных книжек, демонстрирующих взаимодействие с озером данных Microsoft Sentinel, см. в разделе Примеры записных книжек для озера данных Microsoft Sentinel.

Мониторинг состояния записной книжки из строки состояния

Строка состояния в нижней части записной книжки содержит сведения о текущем состоянии записной книжки и сеансе Spark. Строка состояния содержит следующие сведения:

  • Процент использования виртуальных ядер для выбранного пула Spark. Наведите указатель мыши на процент, чтобы увидеть количество используемых виртуальных ядер и общее количество виртуальных ядер, доступных в пуле. Проценты показывают текущий уровень использования интерактивных рабочих нагрузок и нагрузок заданий для учетной записи, под которой выполнен вход.

  • Состояние подключения сеанса Spark, например Connecting, Connectedили Not Connected.

Снимок экрана: строка состояния в нижней части записной книжки.

Установите тайм-ауты сеанса

Вы можете настроить тайм-аут сеанса и предупреждения о тайм-ауте для интерактивных блокнотов. Эти параметры сохраняются в параметрах расширения, поэтому они сохраняются в сеансах.

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

  • Задать период ожидания сеанса. Задает время в минутах до истечения времени ожидания сеанса. Значение по умолчанию — 30 минут.

  • Сброс периода ожидания сеанса. Сбрасывает время ожидания сеанса до значения по умолчанию 30 минут.

  • Задать период предупреждения о времени ожидания сеанса. Задает время в минутах до истечения времени ожидания, когда отображается предупреждение о том, что сеанс вот-вот истекает. Значение по умолчанию — 5 минут.

  • Сброс периода предупреждения о времени ожидания сеанса. Сбрасывает предупреждение о времени ожидания сеанса до значения по умолчанию 5 минут.

    Снимок экрана: параметр времени ожидания сеанса.

Использование GitHub Copilot в записных книжках

Используйте GitHub Copilot для написания кода в записных книжках. GitHub Copilot предоставляет предложения по коду и автозавершение на основе контекста кода. Чтобы использовать GitHub Copilot, убедитесь, что в Visual Studio Code установлено расширение GitHub Copilot.

Скопируйте код из образцов записных книжек для озера данных Microsoft Sentinel и сохраните его в папке записных книжек, чтобы предоставить контекст для GitHub Copilot. GitHub Copilot сможет предложить завершение кода на основе контекста записной книжки.

В следующем примере показано, как GitHub Copilot генерирует проверку кода.

Снимок экрана, на котором GitHub Copilot создает проверку кода.

Используйте класс Microsoft Sentinel Provider

Чтобы подключиться к озеру данных Microsoft Sentinel, используйте MicrosoftSentinelProvider класс . Класс MicrosoftSentinelProvider является частью sentinel_lake.providers модуля и предоставляет методы взаимодействия с озером данных. Чтобы подключить ваш ноутбук Spark к таблицам озера данных Microsoft Sentinel, импортируйте класс и создайте экземпляр с помощью spark сессии. Следующий код инициализирует поставщика данных Sentinel Lake, чтобы ноутбук мог запрашивать таблицы Microsoft Sentinel из Spark:

from sentinel_lake.providers import MicrosoftSentinelProvider
data_provider = MicrosoftSentinelProvider(spark)

Дополнительные сведения о доступных методах см. в справочнике по классу поставщика Microsoft Sentinel.

Выберите подходящий пул среды выполнения

Для запуска записных книжек Jupyter в расширении Microsoft Sentinel доступны три пула среды выполнения. Каждый пул предназначен для различных рабочих нагрузок и требований к производительности. Выбор пула среды выполнения влияет на производительность, стоимость и время выполнения заданий Spark.

Пул среды выполнения Рекомендуемые варианты использования Характеристики
Small Разработка, тестирование и легкий исследовательский анализ.
Небольшие рабочие нагрузки с простыми преобразованиями.
Приоритезирована эффективность затрат.
Подходит для небольших рабочих нагрузок
Простые преобразования.
Более низкая стоимость, более длительное время выполнения.
Средний ETL-задачи с операциями JOIN, агрегацией и обучением моделей машинного обучения.
Средний уровень рабочих нагрузок с помощью сложных преобразований.
Повышенная производительность по сравнению с Small.
Обрабатывает параллелизм и умеренные операции с большим объемом памяти.
Large Рабочие нагрузки глубокого обучения и машинного обучения.
Обширное перемешивание данных, крупные соединения или обработка в режиме реального времени.
Критическое время выполнения.
Высокая память и вычислительная мощность.
Минимальные задержки.
Лучше всего подходит для крупных, сложных или чувствительных ко времени рабочих нагрузок.

Примечание.

При первом открытии параметры ядра могут загружаться около 30 секунд.
После выбора пула среды выполнения запуск сеанса может занять 3–5 минут.

Просмотр сообщений, журналов и ошибок

Журналы сообщений и сообщения об ошибках отображаются в трех областях в Visual Studio Code.

  1. Панель Выходные данные .

    1. В области Выходные данные выберите Microsoft Sentinel в раскрывающемся списке.
    2. Выберите Отладка , чтобы включить подробные записи журнала.

    Снимок экрана: область вывода.

  2. Встроенные сообщения в блокноте предоставляют обратную связь и сведения о выполнении ячеек кода. Эти сообщения включают обновления состояния выполнения, индикаторы хода выполнения и уведомления об ошибках, связанные с кодом в предыдущей ячейке.

  3. Всплывающее уведомление в правом нижнем углу Visual Studio Code, также называемое тост-уведомлением, отображает оповещения и обновления в режиме реального времени о состоянии операций в блокноте и сеансе Spark. Эти уведомления включают сообщения, предупреждения и оповещения об ошибках, такие как успешное подключение к сеансу Spark и предупреждения о времени ожидания.

    Снимок экрана, на котором показаны всплывающее уведомление и встроенное сообщение об ошибке.

Создание заданий и расписаний записной книжки и управление ими

Можно запланировать выполнение заданий с определенным временем или интервалами с помощью расширения Microsoft Sentinel для Visual Studio Code. Задания позволяют автоматизировать обработку данных для их обобщения, преобразования или анализа в озере данных Microsoft Sentinel. Задания также используются для обработки данных и записи результатов в пользовательские таблицы уровня озера данных или уровня аналитики. Дополнительные сведения о создании заданий и управлении ими см. в статье Создание заданий записной книжки Jupyter и управление ими.

Параметры и ограничения службы для записных книжек VS Code

В следующем разделе перечислены параметры службы и ограничения озера данных Microsoft Sentinel при использовании записных книжек в VS Code.

Категория Параметр или ограничение
Настраиваемая таблица на уровне аналитики Пользовательские таблицы на уровне аналитики нельзя удалить из записной книжки; Используйте Log Analytics для удаления этих таблиц. Дополнительные сведения см. в статье Добавление и удаление таблиц и столбцов в журналах мониторинга Azure.
Тайм-аут веб-сокета шлюза 2 часа
Время ожидания интерактивного запроса 2 часа
Тайм-аут бездействия интерактивного сеанса 20 минут
Язык Python
Время ожидания запроса Graph 7,5 минут
Тайм-аут задания блокнота 8 часов
Максимальное количество одновременных заданий ноутбука 3, последующие задания помещаются в очередь
Максимальное число одновременных пользователей при интерактивных запросах 8–10 для большого пула
Время запуска сеанса Запуск сеанса вычислений Spark занимает около 5–6 минут. Состояние сеанса можно просмотреть в нижней части записной книжки VS Code.
Поддерживаемые библиотеки Для выполнения запросов к озеру данных поддерживаются только библиотеки Azure Synapse 3.4 и библиотека поставщика Microsoft Sentinel для абстрагированных функций. Установки Pip или пользовательские библиотеки не поддерживаются.
Ограничение пользовательского интерфейса VS Code для отображения записей 100 000 строк

Устранение неполадок

Распространенные ошибки и решения при работе с записными книжками см. в статье Устранение неполадок с записными книжками в озере данных Microsoft Sentinel.