Uruchamianie notesników w jeziorze danych Microsoft Sentinel

Notatniki Jupyter zapewniają interaktywne środowisko do eksplorowania, analizowania i wizualizowania danych w jeziorze danych Microsoft Sentinel i tabelach federacyjnych. Notesy umożliwiają pisanie i wykonywanie kodu, dokumentowanie przepływu pracy i wyświetlanie wyników — wszystko w jednym miejscu. To kompleksowe środowisko notatników ułatwia eksplorację danych, budowanie zaawansowanych rozwiązań analitycznych oraz dzielenie się spostrzeżeniami z innymi. Dzięki wykorzystaniu języka Python i platformy Apache Spark w programie Visual Studio Code notatniki pomagają przekształcać surowe dane dotyczące zabezpieczeń w użyteczne informacje operacyjne.

W tym artykule przedstawiono sposób eksplorowania danych usługi Data Lake i interakcji z nimi przy użyciu notesów Jupyter w Visual Studio Code.

Wymagania wstępne

Dołączanie do Microsoft Sentinel data lake

Aby korzystać z notesów w Microsoft Sentinel data lake, należy najpierw dołączyć do usługi Data Lake. Jeśli nie dołączono do usługi Sentinel data lake, zobacz Dołączanie do usługi Microsoft Sentinel data lake. Jeśli niedawno rozpoczęto korzystanie z data lake, może upłynąć trochę czasu, zanim zostanie zaimportowana wystarczająca ilość danych, aby można było tworzyć wartościowe analizy przy użyciu notebooków.

Wymagane uprawnienia dla notebooków z jeziorami danych

Role Microsoft Entra ID zapewniają szeroki dostęp do wszystkich obszarów roboczych w jeziorze danych. Alternatywnie można nadać dostęp do poszczególnych obszarów roboczych za pomocą ról RBAC platformy Azure. Użytkownicy mający uprawnienia Azure RBAC do obszarów roboczych Microsoft Sentinel mogą uruchamiać notesniki w tych obszarach roboczych w warstwie Data Lake. Aby uzyskać więcej informacji, zobacz Role i uprawnienia w Microsoft Sentinel.

Opcjonalnie można skonfigurować ograniczenie zakresu w usłudze Microsoft Sentinel lub kontrolę dostępu opartą na rolach (RBAC) na poziomie wiersza, aby dodatkowo ograniczyć dostęp do danych w obszarze roboczym. Po włączeniu określanie zakresu na poziomie wiersza ogranicza dane zwracane przez zapytania na podstawie przypisanego zakresu użytkownika. Jeśli określanie zakresu na poziomie wiersza nie jest skonfigurowane, istniejący model uprawnień na poziomie obszaru roboczego ma zastosowanie bez zmian. Aby uzyskać więcej informacji, zobacz temat Konfigurowanie określania zakresu Microsoft Sentinel (RBAC na poziomie wierszy) (wersja zapoznawcza).

Aby utworzyć nowe tabele niestandardowe w warstwie analitycznej, tożsamość zarządzana usługi Data Lake musi mieć przypisaną rolę Współautor usługi Log Analytics w obszarze roboczym usługi Log Analytics.

Aby przypisać rolę, wykonaj poniższe kroki:

  1. W witrynie Azure Portal przejdź do obszaru roboczego usługi Log Analytics, któremu chcesz przypisać rolę.
  2. Wybierz pozycję Kontrola dostępu (IAM) w okienku nawigacji po lewej stronie.
  3. Wybierz pozycję Dodaj przypisanie roli.
  4. W tabeli Rola wybierz pozycję Współautor usługi Log Analytics, a następnie wybierz pozycję Dalej
  5. Wybierz pozycję Tożsamość zarządzana, a następnie wybierz pozycję Wybierz członków.
  6. Tożsamość zarządzana usługi Data Lake to tożsamość zarządzana przypisana przez system o nazwie msg-resources-<guid>. Wybierz tożsamość zarządzaną, a następnie wybierz Wybierz.
  7. Wybierz Przejrzyj i przypisz.

Aby uzyskać więcej informacji na temat przypisywania ról do tożsamości zarządzanych, zobacz Przypisywanie ról Azure przy użyciu Azure Portal.

Instalowanie Visual Studio Code i rozszerzenia Microsoft Sentinel

Jeśli nie masz jeszcze Visual Studio Code, pobierz i zainstaluj Visual Studio Code dla komputerów Mac, Linux lub Windows.

Rozszerzenie Microsoft Sentinel dla programu Visual Studio Code (VS Code) jest instalowane z poziomu platformy handlowej rozszerzeń. Aby zainstalować rozszerzenie, wykonaj następujące kroki:

  1. Wybierz witrynę Extensions Marketplace na lewym pasku narzędzi.
  2. Wyszukaj Sentinel.
  3. Wybierz rozszerzenie Microsoft Sentinel i wybierz pozycję Zainstaluj.
  4. Po zainstalowaniu rozszerzenia obraz Microsoft Sentinel z ikoną rozszerzenia Microsoft Sentinel w ikonie paska narzędzi Visual Studio Code pojawia się na lewym pasku narzędzi.

Zrzut ekranu przedstawiający rynek rozszerzeń.

Zainstaluj rozszerzenie GitHub Copilot dla Visual Studio Code, aby włączyć uzupełnianie kodu i sugestie w notesach.

  1. Wyszukaj GitHub Copilot w witrynie Extensions Marketplace i zainstaluj ją.
  2. Po instalacji zaloguj się do GitHub Copilot przy użyciu konta usługi GitHub.

Eksplorowanie tabel warstwy usługi Data Lake

Po zainstalowaniu rozszerzenia Microsoft Sentinel możesz rozpocząć eksplorowanie tabel warstwy usługi Data Lake i tworzenie notesów Jupyter w celu analizowania danych.

Zaloguj się do rozszerzenia Microsoft Sentinel

Aby zalogować się do rozszerzenia Microsoft Sentinel, wykonaj następujące kroki:

  1. Wybierz obraz Microsoft Sentinel ikony rozszerzenia Microsoft Sentinel używanej do otwarcia rozszerzenia w Visual Studio Code, ikonę na lewym pasku narzędzi.

  2. Zostanie wyświetlone okno dialogowe z następującym tekstem Rozszerzenie "Microsoft Sentinel" chce się zalogować przy użyciu firmy Microsoft. Wybierz pozycję Zezwalaj.

    Zrzut ekranu przedstawiający okno dialogowe logowania.

  3. Wybierz nazwę konta, aby ukończyć logowanie.

    Zrzut ekranu przedstawiający listę wyboru konta w górnej części strony.

    Jeśli masz wiele kont gości skojarzonych z logowaniem, możesz bezproblemowo przełączać się między kontami. Aby przełączać się między kontami, wybierz nazwę konta w lewym dolnym rogu okna Visual Studio Code. Jednocześnie można wybrać tylko jedno konto.

    Zrzut ekranu przedstawiający sposób przełączania kont w Visual Studio Code.

    Ważna

    Przełączanie między kontami powoduje rozłączenie wszystkich aktywnych sesji PySpark.

Wyświetlanie tabel i zadań usługi Data Lake

Po zalogowaniu się rozszerzenie Sentinel wyświetla w lewym panelu listę tabel Lake i zadań. Tabele są pogrupowane według bazy danych i kategorii. Tabele federacyjne są wyświetlane w kategorii Tabele federacyjne w obszarze Tabele systemowe. Wybierz tabelę, aby wyświetlić definicje kolumn.

Aby uzyskać informacje o planowaniu zadań w notesie, zobacz Tworzenie i zarządzanie zadaniami oraz harmonogramami notatników w tym artykule. Aby uzyskać więcej informacji na temat tabel federacyjnych, zobacz Using federated tables in the Microsoft Sentinel data lake (Używanie tabel federacyjnych w Microsoft Sentinel data lake).

Zrzut ekranu rozszerzenia Sentinel przedstawiający tabele Lake i zadania w lewym panelu oraz metadane wybranej tabeli.

Utwórz nowy notatnik

Aby stworzyć nowy notes Jupyter w Visual Studio Code, należy postępować zgodnie z tymi krokami:

  1. Aby utworzyć nowy notes, użyj jednej z następujących metod.

  2. Wpisz > w polu wyszukiwania lub naciśnij Ctrl+Shift+P, a następnie wpisz Utwórz nowy notes Jupyter. Zrzut ekranu przedstawiający sposób tworzenia nowego notesu na pasku wyszukiwania.

  3. Wybierz pozycję Plik > nowy plik, a następnie wybierz pozycję Jupyter Notebook z listy rozwijanej.
    Zrzut ekranu przedstawiający sposób tworzenia nowego notesu w menu plików.

  4. W nowym notesie wklej następujący kod do pierwszej komórki.

    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)
    

    Edytor zapewnia funkcję uzupełniania kodu IntelliSense zarówno dla klasy MicrosoftSentinelProvider, jak i dla nazw tabel w jeziorze danych.

  5. Wybierz trójkąt Uruchom , aby wykonać kod w notesie. Wyniki są wyświetlane w okienku danych wyjściowych poniżej komórki kodu.
    Zrzut ekranu przedstawiający sposób uruchamiania komórki notesu.

  6. Wybierz pozycję Microsoft Sentinel z listy, aby wyświetlić listę pul środowiska uruchomieniowego. Zrzut ekranu przedstawiający selektor środowiska uruchomieniowego.

  7. Wybierz opcję Średni, aby uruchomić notatnik w puli środowiska uruchomieniowego o średnim rozmiarze. Aby uzyskać więcej informacji na temat różnych środowisk uruchomieniowych, zobacz Wybieranie odpowiedniej puli środowiska uruchomieniowego. Zrzut ekranu przedstawiający selektor rozmiaru puli uruchomień.

Uwaga

Wybranie jądra powoduje uruchomienie sesji platformy Spark i uruchomienie kodu w notesie. Po wybraniu puli uruchomienie sesji może potrwać od 3 do 5 minut. Kolejne uruchomienia są szybsze, ponieważ sesja jest już aktywna.

Po rozpoczęciu sesji kod w notesie zostanie uruchomiony, a wyniki zostaną wyświetlone w okienku danych wyjściowych poniżej komórki kodu, na przykład: Zrzut ekranu przedstawiający wyniki uruchomienia komórki notesu.

Przykładowe notatniki pokazujące, jak wchodzić w interakcje z jeziorem danych Microsoft Sentinel, można znaleźć w artykule Przykładowe notatniki dla jeziora danych Microsoft Sentinel.

Monitorowanie stanu notesu na pasku stanu

Pasek stanu w dolnej części notesu zawiera informacje o bieżącym stanie notesu i sesji platformy Spark. Pasek stanu zawiera następujące informacje:

  • Procent wykorzystania rdzeni wirtualnych dla wybranej puli platformy Spark. Umieść kursor na wartości procentowej, aby wyświetlić liczbę używanych rdzeni wirtualnych i łączną liczbę rdzeni wirtualnych dostępnych w puli. Wartości procentowe reprezentują bieżące użycie obciążeń interaktywnych i zadań dla zalogowanego konta.

  • Stan połączenia sesji platformy Spark, na przykład Connecting, Connectedlub Not Connected.

Zrzut ekranu przedstawiający pasek stanu w dolnej części notesu.

Ustawianie limitów czasu sesji

Możesz ustawić limit czasu sesji i ostrzeżenia dotyczące limitu czasu dla notesów interakcyjnych. Te ustawienia są utrwalane w ustawieniach rozszerzenia, dzięki czemu są zachowywane w sesjach.

Aby zmienić limit czasu, wybierz stan połączenia na pasku stanu w dolnej części notesu. Wybierz jedną z następujących opcji:

  • Ustaw limit czasu sesji: ustawia czas w minutach przed przekroczeniem limitu czasu sesji. Wartość domyślna to 30 minut.

  • Resetowanie limitu czasu sesji: resetuje limit czasu sesji do domyślnej wartości 30 minut.

  • Ustaw okres wyświetlania ostrzeżenia o limicie czasu sesji: Określa czas w minutach przed upływem limitu czasu sesji, po którym wyświetlane jest ostrzeżenie, że sesja wkrótce wygaśnie. Wartość domyślna to 5 minut.

  • Resetowanie okresu ostrzeżenia o przekroczeniu limitu czasu sesji: Resetuje okres ostrzeżenia o przekroczeniu limitu czasu sesji do domyślnej wartości 5 minut.

    Zrzut ekranu przedstawiający ustawienie limitu czasu sesji.

Używanie GitHub Copilot w notesach

Użyj GitHub Copilot, aby ułatwić pisanie kodu w notesach. GitHub Copilot udostępnia sugestie dotyczące kodu i autouzupełnianie na podstawie kontekstu kodu. Aby użyć GitHub Copilot, upewnij się, że masz zainstalowane rozszerzenie GitHub Copilot w Visual Studio Code.

Skopiuj kod z przykładowych notesów Microsoft Sentinel data lake i zapisz go w folderze notesów, aby zapewnić kontekst dla GitHub Copilot. GitHub Copilot będzie mógł następnie sugerować uzupełnienia kodu na podstawie kontekstu notatnika.

Poniższy przykład pokazuje, jak GitHub Copilot generuje przegląd kodu.

Zrzut ekranu przedstawiający, jak GitHub Copilot generuje przegląd kodu.

Użyj klasy Microsoft Sentinel Provider

Aby nawiązać połączenie z Microsoft Sentinel data lake, użyj MicrosoftSentinelProvider klasy . Klasa MicrosoftSentinelProvider jest częścią modułu sentinel_lake.providers i udostępnia metody interakcji z usługą Data Lake. Aby połączyć swój notes Spark z tabelami Microsoft Sentinel data lake, zaimportuj klasę i stwórz instancję w spark sesji. Poniższy kod inicjalizuje dostawcę danych Sentinel Lake, aby notebook mógł zapytać tabele Microsoft Sentinel ze Sparka:

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

Aby uzyskać więcej informacji na temat dostępnych metod, zobacz dokumentację klasy dostawcy Microsoft Sentinel.

Wybierz odpowiednią pulę środowiska uruchomieniowego

Dostępne są trzy pule środowiska uruchomieniowego do uruchamiania notesów Jupyter w rozszerzeniu Microsoft Sentinel. Każda pula jest przeznaczona dla różnych obciążeń i wymagań dotyczących wydajności. Wybór puli środowiska uruchomieniowego ma wpływ na wydajność, koszt i czas wykonywania zadań platformy Spark.

Pula środowiska uruchomieniowego Zalecane przypadki użycia Cechy
Mały Opracowywanie, testowanie i uproszczona analiza eksploracyjna.
Małe obciążenia z prostymi przekształceniami.
Efektywność kosztowa została określona priorytetowo.
Nadaje się do małych obciążeń
Proste przekształcenia.
Niższy koszt, dłuższy czas wykonywania.
Średnie Zadania ETL z sprzężeniami, agregacjami i trenowaniem modelu uczenia maszynowego.
Umiarkowane obciążenia ze złożonymi przekształceniami.
Lepsza wydajność niż w przypadku Small.
Obsługuje równoległość i umiarkowane operacje intensywnie korzystające z pamięci.
Duży Obciążenia uczenia głębokiego i uczenia maszynowego.
Rozległe tasowanie danych, duże sprzężenia lub przetwarzanie w czasie rzeczywistym.
Krytyczny czas wykonania.
Duża ilość pamięci i mocy obliczeniowej.
Minimalne opóźnienia.
Najlepiej w przypadku dużych, złożonych lub zależnych od czasu obciążeń.

Uwaga

Po pierwszym uzyskaniu dostępu ładowanie opcji jądra może potrwać około 30 sekund.
Po wybraniu puli środowiska uruchomieniowego rozpoczęcie sesji może potrwać od 3 do 5 minut.

Wyświetlanie komunikatów, dzienników i błędów

Dzienniki komunikatów i komunikaty o błędach są wyświetlane w trzech obszarach w Visual Studio Code.

  1. Okienko Dane wyjściowe .

    1. W okienku Dane wyjściowe wybierz pozycję Microsoft Sentinel z listy rozwijanej.
    2. Wybierz pozycję Debuguj, aby uwzględnić szczegółowe wpisy dziennika.

    Zrzut ekranu przedstawiający okienko danych wyjściowych.

  2. Komunikaty wbudowane w notatniku zapewniają informacje zwrotne i informacje o wykonywaniu komórek kodu. Komunikaty te obejmują aktualizacje stanu wykonywania, wskaźniki postępu oraz powiadomienia o błędach dotyczące kodu z poprzedniej komórki

  3. Wyskakujące powiadomienie w prawym dolnym rogu programu Visual Studio Code, znane również jako komunikat typu toast, wyświetla alerty i aktualizacje w czasie rzeczywistym dotyczące stanu operacji w notesie i sesji Spark. Powiadomienia te obejmują komunikaty, ostrzeżenia i alerty o błędach, takie jak pomyślne połączenie z sesją platformy Spark i ostrzeżenia o przekroczeniu limitu czasu.

    Zrzut ekranu przedstawiający komunikat toast i komunikat o błędzie w tekście.

Twórz zadania i harmonogramy notatnika oraz zarządzaj nimi

Zadania można zaplanować w określonych godzinach lub interwałach przy użyciu rozszerzenia Microsoft Sentinel dla Visual Studio Code. Zadania umożliwiają automatyzację procesów przetwarzania danych do podsumowywania, przekształcania lub analizowania danych w jeziorze danych Microsoft Sentinel. Zadania są również używane do przetwarzania danych i zapisywania wyników w tabelach niestandardowych w warstwie usługi Data Lake lub warstwie analizy. Aby uzyskać więcej informacji na temat tworzenia zadań i zarządzania nimi, zobacz Tworzenie zadań notesu Jupyter i zarządzanie nimi.

Parametry i limity usługi dla notatników VS Code

W poniższej sekcji wymieniono parametry usługi i limity dla usługi Microsoft Sentinel data lake podczas korzystania z notesów w programie VS Code.

Kategoria Parametr/ograniczenie
Tabela niestandardowa w warstwie analizy Nie można usunąć tabel niestandardowych w warstwie analizy z notesu. Użyj usługi Log Analytics, aby usunąć te tabele. Aby uzyskać więcej informacji, zobacz Dodawanie lub usuwanie tabel i kolumn w dziennikach usługi Azure Monitor
Limit czasu bramy WebSocket 2 godziny
Przekroczenie limitu czasu zapytania interakcyjnego 2 godziny
Limit czasu bezczynności sesji interakcyjnej 20 minut
Język Python
Przekroczenie limitu czasu zapytania grafu 7,5 minuty
Limit czasu zadania notebooka 8 godzin
Maksymalna liczba współbieżnych zadań notatnika 3. Kolejne zadania są umieszczane w kolejce
Maksymalna liczba równoczesnych użytkowników podczas interakcyjnego wykonywania zapytań 8–10 dla dużej puli
Czas rozpoczęcia sesji Rozpoczęcie sesji obliczeniowej platformy Spark trwa około 5–6 minut. Stan sesji można wyświetlić w dolnej części notesu programu VS Code.
Obsługiwane biblioteki Tylko biblioteki Azure Synapse 3.4 i biblioteka dostawcy Microsoft Sentinel dla funkcji abstrakcyjnych są obsługiwane do wykonywania zapytań w usłudze data lake. Instalowanie za pomocą pip lub biblioteki niestandardowe nie są obsługiwane.
Limit wyświetlania rekordów w interfejsie użytkownika VS Code 100 000 wierszy

Rozwiązywanie problemów

Informacje o typowych błędach i sposobach ich rozwiązywania podczas pracy z notesnikami można znaleźć w artykule Rozwiązywanie problemów z notesnikami w jeziorze danych Microsoft Sentinel.