Notebooks im Microsoft Sentinel Data Lake ausführen

Jupyter Notebooks bieten eine interaktive Umgebung zum Untersuchen, Analysieren und Visualisieren von Daten im Microsoft Sentinel Data Lake und Verbundtabellen. Mit Notebooks können Sie Code schreiben und ausführen, Ihren Workflow dokumentieren und Ergebnisse anzeigen – alles an einem Ort. Dies erleichtert das Durchsuchen von Daten, das Erstellen erweiterter Analyselösungen und das Teilen von Erkenntnissen mit anderen. Durch die Nutzung von Python und Apache Spark in Visual Studio Code helfen Notebooks Ihnen, rohe Sicherheitsdaten in umsetzbare Intelligenz zu transformieren.

In diesem Artikel erfahren Sie, wie Sie Data Lake-Daten mithilfe von Jupyter Notebooks in Visual Studio Code untersuchen und damit interagieren.

Voraussetzungen

Einbinden in den Microsoft Sentinel Data Lake

Um Notebooks im Microsoft Sentinel Data Lake verwenden zu können, müssen Sie zuerst das Onboarding in den Data Lake durchführen. Wenn Sie das Onboarding für den Microsoft Sentinel Data Lake noch nicht durchgeführt haben, lesen Sie Onboarding für den Microsoft Sentinel Data Lake. Wenn Sie kürzlich das Onboarding in den Data Lake durchgeführt haben, kann es einige Zeit dauern, bis eine ausreichende Menge an Daten erfasst wird, bevor Sie aussagekräftige Analysen mithilfe von Notebooks erstellen können.

Berechtigungen

Microsoft Entra ID Rollen bieten umfassenden Zugriff auf alle Arbeitsbereiche im Data Lake. Alternativ können Sie zugriff auf einzelne Arbeitsbereiche gewähren, indem Sie Azure RBAC-Rollen verwenden. Benutzer mit Azure RBAC-Berechtigungen für Microsoft-Sentinel-Arbeitsbereiche können Notebooks in diesen Arbeitsbereichen in der Data-Lake-Ebene ausführen. Weitere Informationen finden Sie unter Rollen und Berechtigungen in Microsoft Sentinel.

Optional können Bereichseinschränkungen in Microsoft Sentinel oder RBAC auf Zeilenebene konfiguriert werden, um den Datenzugriff innerhalb eines Arbeitsbereichs weiter einzuschränken. Wenn diese Option aktiviert ist, schränkt die Bereichsdefinition auf Zeilenebene die von Abfragen zurückgegebenen Daten basierend auf dem zugewiesenen Bereich des Benutzers ein. Wenn die Bereichsdefinition auf Zeilenebene nicht konfiguriert ist, wird das vorhandene Berechtigungsmodell auf Arbeitsbereichsebene unverändert angewendet. Weitere Informationen finden Sie unter Konfigurieren der Bereichsdefinition von Microsoft Sentinel (RBAC auf Zeilenebene) (Vorschau).

Um neue benutzerdefinierte Tabellen auf der Analyseebene zu erstellen, muss der verwalteten Data Lake-Identität die Rolle Log Analytics-Mitwirkender im Log Analytics-Arbeitsbereich zugewiesen werden.

Führen Sie die folgenden Schritte aus, um die Rolle zuzuweisen:

  1. Navigieren Sie im Azure-Portal zu dem Log Analytics-Arbeitsbereich, dem Sie die Rolle zuweisen möchten.
  2. Wählen Sie im linken Navigationsbereich Zugriffssteuerung (IAM) aus.
  3. Wählen Sie Rollenzuweisung hinzufügen aus.
  4. Wählen Sie in der Tabelle Rolle die Option Log Analytics-Mitwirkender und dann Weiter aus.
  5. Wählen Sie Verwaltete Identität und dann Mitglieder auswählen aus.
  6. Ihre verwaltete Data Lake-Identität ist eine systemseitig zugewiesene verwaltete Identität namens msg-resources-<guid>. Wählen Sie die verwaltete Identität und dann Auswählen aus.
  7. Wählen Sie Überprüfen und zuweisen aus.

Weitere Informationen zum Zuweisen von Rollen zu verwalteten Identitäten finden Sie unter Zuweisen von Azure Rollen mithilfe des Azure-Portal.

Installieren von Visual Studio Code und der Microsoft Sentinel-Erweiterung

Wenn Sie noch nicht über Visual Studio Code verfügen, laden Sie Visual Studio Code für Mac, Linux oder Windows herunter, und installieren Sie es.

Die Microsoft Sentinel-Erweiterung für Visual Studio Code (VS Code) wird über den Marketplace für Erweiterungen installiert. Führen Sie die folgenden Schritte aus, um die Erweiterung zu installieren:

  1. Wählen Sie in der linken Symbolleiste den Marketplace für Erweiterungen aus.
  2. Suchen Sie nach Sentinel.
  3. Wählen Sie die Microsoft Sentinel-Erweiterung und dann Installieren aus.
  4. Nachdem die Erweiterung installiert wurde, wird in der linken Symbolleiste das Microsoft Sentinel-Symbol zum Öffnen der Microsoft Sentinel-Erweiterung in Visual Studio Code angezeigt.

Screenshot: Erweiterungsmarktplatz

Installieren Sie die GitHub Copilot-Erweiterung für Visual Studio Code, um die Codevervollständigung und Vorschläge in Notebooks zu aktivieren.

  1. Suchen Sie im Marketplace für Erweiterungen nach GitHub Copilot, und installieren Sie sie.
  2. Melden Sie sich nach der Installation mit Ihrem GitHub-Konto bei GitHub Copilot an.

Tabellen der Data-Lake-Ebene erkunden

Nach der Installation der Microsoft Sentinel-Erweiterung können Sie mit der Untersuchung von Tabellen der Data-Lake-Ebene und der Erstellung von Jupyter Notebooks zur Analyse der Daten beginnen.

Anmelden bei der Microsoft Sentinel-Erweiterung

Führen Sie die folgenden Schritte aus, um sich bei der Microsoft Sentinel-Erweiterung anzumelden:

  1. Wählen Sie das Microsoft Sentinel Symbol aus, das zum Öffnen der Microsoft Sentinel Erweiterung im VS Code-Symbol auf der linken Symbolleiste verwendet wird.

  2. Es wird ein Dialogfeld mit dem folgenden Text angezeigt: Die Erweiterung "Microsoft Sentinel" möchte sich mit Microsoft anmelden. Wählen Sie Zulassen aus.

    Screenshot des Anmeldedialogfelds

  3. Wählen Sie Ihren Kontonamen aus, um die Anmeldung abzuschließen.

    Screenshot: Kontoauswahlliste oben auf der Seite

    Wenn Ihrer Anmeldung mehrere Gastkonten zugeordnet sind, können Sie nahtlos zwischen Konten wechseln. Um zwischen Konten zu wechseln, wählen Sie unten links im Visual Studio Code-Fenster den Kontonamen aus. Es kann jeweils nur ein Konto ausgewählt werden.

    Screenshot: Wechseln von Konten in Visual Studio Code

    Wichtig

    Beim Wechseln zwischen Konten werden alle aktiven PySpark-Sitzungen unterbrochen.

Anzeigen von Data Lake-Tabellen und -Aufträgen

Nach der Anmeldung zeigt die Sentinel-Erweiterung im linken Bereich eine Liste der Lake-Tabellen und Jobs an. Die Tabellen werden nach datenbank und kategorie gruppiert. Verbundtabellen werden unter der Kategorie Verbundtabellen unter Systemtabellen angezeigt. Wählen Sie eine Tabelle aus, um die Spaltendefinitionen anzuzeigen.

Informationen zu Aufträgen finden Sie unter Aufträge und Terminplanung. Weitere Informationen zu Verbundtabellen finden Sie unter Verwenden von Verbundtabellen im Microsoft Sentinel Data Lake.

Screenshot der Sentinel-Erweiterung mit Lake-Tabellen und Aufträgen im linken Bereich und Metadaten für die ausgewählte Tabelle.

Erstellen eines neuen Notebooks

  1. Verwenden Sie eine der folgenden Methoden, um ein neues Notebook zu erstellen.

  2. Geben Sie > in das Suchfeld ein, oder drücken Sie Ctrl+Shift+P und geben Sie dann Create New Jupyter Notebook ein. Screenshot: Erstellen eines neuen Notizbuchs über die Suchleiste

  3. Wählen Sie Datei > Neue Datei und dann in der Dropdownliste Jupyter Notebook aus.
    Screenshot: Erstellen eines neuen Notizbuchs im Dateimenü

  4. Fügen Sie im neuen Notebook den folgenden Code in die erste Zelle ein.

    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)
    

    Der Editor bietet IntelliSense-Codevervollständigung sowohl für die Klasse MicrosoftSentinelProvider als auch für die Tabellennamen im Data Lake.

  5. Wählen Sie das Dreieck Ausführen aus, um den Code im Notebook auszuführen. Die Ergebnisse werden im Ausgabebereich unterhalb der Codezelle angezeigt.
    Ein Screenshot, der zeigt, wie eine Notebookzelle ausgeführt wird.

  6. Wählen Sie Microsoft Sentinel aus der Liste aus, um eine Liste der Laufzeitpools zu erhalten. Ein Screenshot, der die Laufzeitauswahl zeigt.

  7. Wählen Sie Medium aus, um das Notebook im mittelgroßen Runtime-Pool auszuführen. Weitere Informationen zu den verschiedenen Laufzeiten finden Sie unter Auswählen des entsprechenden Laufzeitpools. Ein Screenshot der Auswahl für die Größe des Run-Pools.

Hinweis

Wenn Sie den Kernel auswählen, wird die Spark-Sitzung gestartet und der Code im Notebook ausgeführt. Nachdem Sie den Pool ausgewählt haben, kann es 3-5 Minuten dauern, bis die Sitzung gestartet wird. Nachfolgende Ausführungen werden schneller ausgeführt, da die Sitzung bereits aktiv ist.

Wenn die Sitzung gestartet wird, wird der Code im Notebook ausgeführt, und die Ergebnisse werden im Ausgabebereich unterhalb der Codezelle angezeigt, z. B.: Screenshot mit den Ergebnissen der Ausführung einer Notebookzelle.

Beispielnotebooks, die die Interaktion mit dem Microsoft Sentinel Data Lake veranschaulichen, finden Sie unter Beispielnotebooks für Microsoft Sentinel Data Lake.

Überwachen des Notizbuchzustands über die Statusleiste

Die status-Leiste am unteren Rand des Notebooks enthält Informationen zum aktuellen Zustand des Notebooks und der Spark-Sitzung. Die status-Leiste enthält die folgenden Informationen:

  • Der Prozentsatz der V-Kern-Auslastung für den ausgewählten Spark-Pool. Zeigen Sie auf den Prozentsatz, um die Anzahl der verwendeten virtuellen Kerne und die Gesamtanzahl der im Pool verfügbaren virtuellen Kerne anzuzeigen. Die Prozentsätze stellen die aktuelle Nutzung für interaktive Workloads und Auftragsworkloads für das angemeldete Konto dar.

  • Der Verbindungsstatus der Spark-Sitzung, z. B. Connecting, Connected oder Not Connected.

Ein Screenshot, der die Statusleiste am unteren Rand des Notebooks zeigt.

Sitzungs-Timeouts festlegen

Sie können die Sitzungstimeout- und Timeoutwarnungen für interaktive Notizbücher festlegen. Diese Einstellungen werden in den Einstellungen der Erweiterung gespeichert, sodass sie über Sitzungen hinweg erhalten bleiben.

Um das Timeout zu ändern, wählen Sie den Verbindungsstatus in der Statusleiste am unteren Rand des Notebooks aus. Wählen Sie aus den folgenden Optionen aus:

  • Festlegen des Sitzungstimeoutzeitraums: Legt die Zeit in Minuten vor dem Sitzungstimeout fest. Der Standardwert beträgt 30 Minuten.

  • Dauer des Sitzungszeitlimits zurücksetzen: Setzt das Sitzungszeitlimit auf den Standardwert von 30 Minuten zurück.

  • Sitzungstimeout-Warnzeitraum festlegen: Legt die Zeit in Minuten vor dem Timeout fest, für die eine Warnung angezeigt wird, dass für die Sitzung ein Timeout bevor steht. Der Standardwert beträgt 5 Minuten.

  • Warnungszeitraum für Sitzungstimeout zurücksetzen: Setzt die Warnung zum Sitzungstimeout auf den Standardwert von 5 Minuten zurück.

    Ein Screenshot, der die Einstellung für das Sitzungs-Timeout zeigt.

Verwenden von GitHub Copilot in Notebooks

Verwenden Sie GitHub Copilot, um Code in Notebooks zu schreiben. GitHub Copilot bietet Codevorschläge und automatische Vervollständigung basierend auf dem Kontext Ihres Codes. Um GitHub Copilot zu verwenden, stellen Sie sicher, dass die GitHub Copilot-Erweiterung in Visual Studio Code installiert ist.

Kopieren Sie Code aus den Beispielnotebooks für Microsoft Sentinel Data Lake, und speichern Sie ihn im Ordner notebooks, um Kontext für GitHub Copilot bereitzustellen. GitHub Copilot kann dann Codevervollständigungen basierend auf dem Kontext Ihres Notebooks vorschlagen.

Das folgende Beispiel zeigt, wie GitHub Copilot eine Codeüberprüfung erstellt.

Ein Screenshot, der zeigt, wie GitHub Copilot ein Code-Review erstellt.

Microsoft Sentinel Provider-Klasse

Verwenden Sie die Klasse MicrosoftSentinelProvider, um eine Verbindung mit dem Microsoft Sentinel Data Lake herzustellen. Die MicrosoftSentinelProvider Klasse ist Teil des sentinel_lake.providers Moduls und stellt Methoden für die Interaktion mit dem Datensee bereit. Um Ihr Spark-Notebook mit Microsoft Sentinel Data Lake-Tabellen zu verbinden, importieren Sie die Klasse und erstellen Sie mithilfe einer spark-Sitzung eine Instanz:

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

Weitere Informationen zu den verfügbaren Methoden finden Sie unter Microsoft Sentinel Anbieterklassenreferenz.

Auswählen des geeigneten Laufzeitpools

Zum Ausführen Ihrer Jupyter-Notebooks in der Microsoft Sentinel-Erweiterung stehen drei Laufzeitpools zur Verfügung. Jeder Pool ist für unterschiedliche Workloads und Leistungsanforderungen ausgelegt. Die Auswahl des Laufzeitpools wirkt sich auf die Leistung, die Kosten und die Ausführungszeit Ihrer Spark-Aufträge aus.

Laufzeitpool Empfohlene Anwendungsfälle Merkmale
Small Entwicklung, Tests und einfache explorative Analyse.
Kleine Workloads mit einfachen Transformationen.
Kosteneffizienz priorisiert.
Geeignet für kleine Workloads
Einfache Transformationen.
Geringere Kosten, längere Ausführungszeit.
Medium ETL-Jobs mit Joins, Aggregationen und dem Training von ML-Modellen.
Mittlere Workloads mit komplexen Transformationen.
Verbesserte Leistung gegenüber Small.
Behandelt Parallelität und moderate speicherintensive Vorgänge.
Large Deep Learning- und ML-Workloads.
Umfangreiches Datenmuffling, große Verknüpfungen oder Echtzeitverarbeitung.
Kritische Ausführungszeit.
Hohe Arbeitsspeicher- und Computeleistung.
Minimale Verzögerungen.
Am besten geeignet für große, komplexe oder zeitkritische Workloads.

Hinweis

Beim ersten Zugriff kann das Laden der Kerneloptionen etwa 30 Sekunden dauern.
Nach dem Auswählen eines Laufzeitpools kann es 3 bis 5 Minuten dauern, bis die Sitzung gestartet wird.

Anzeigen von Nachrichten, Protokollen und Fehlern

Nachrichtenprotokolle und Fehlermeldungen werden in Visual Studio Code in drei Bereichen angezeigt.

  1. Der Ausgabebereich.

    1. Wählen Sie im Bereich Ausgabe in der Dropdownliste Microsoft Sentinel aus.
    2. Wählen Sie Debuggen aus, um ausführliche Protokolleinträge einzuschließen.

    Ein Screenshot, der den Ausgabebereich zeigt.

  2. Inlinenachrichten im Notebook liefern Feedback und Informationen zur Ausführung von Codezellen. Diese Meldungen umfassen Statusaktualisierungen zur Ausführung, Fortschrittsanzeigen und Fehlerbenachrichtigungen in Bezug auf den Code in der vorherigen Zelle.

  3. Ein Benachrichtigungs-Popup in der unteren rechten Ecke von Visual Studio Code, auch als Toastbenachrichtigung bekannt, zeigt Echtzeitwarnungen und Updates zum Status von Vorgängen im Notebook und in der Spark-Sitzung. Diese Benachrichtigungen umfassen Meldungen, Warnungen und Fehlermeldungen wie die erfolgreiche Verbindung mit einer Spark-Sitzung und Timeout-Warnungen.

    Ein Screenshot mit einer Toastbenachrichtigung und einer Inline-Fehlermeldung.

Erstellen und Verwalten von Notizbuchaufträgen und -zeitplänen

Mithilfe der Microsoft Sentinel-Erweiterung für Visual Studio Code können Sie Aufträge so planen, dass sie zu bestimmten Zeiten oder Intervallen ausgeführt werden. Mit Aufträgen können Sie Datenverarbeitungsaufgaben automatisieren, um Daten im Microsoft Sentinel Data Lake zusammenzufassen, zu transformieren oder zu analysieren. Aufträge werden auch verwendet, um Daten zu verarbeiten und Ergebnisse in benutzerdefinierte Tabellen auf der Data Lake- oder Analyseebene zu schreiben. Weitere Informationen zum Erstellen und Verwalten von Aufträgen finden Sie unter Erstellen und Verwalten von Jupyter Notebook-Aufträgen.

Dienstparameter und Grenzwerte für VS Code-Notebooks

Im folgenden Abschnitt werden die Dienstparameter und Grenzwerte für Microsoft Sentinel Data Lake bei Verwendung von VS Code Notebooks aufgeführt.

Kategorie Parameter/Grenzwert
Benutzerdefinierte Tabelle auf der Analyseebene Benutzerdefinierte Tabellen in der Analyseebene können nicht aus einem Notebook gelöscht werden. Verwenden Sie Log Analytics, um diese Tabellen zu löschen. Weitere Informationen finden Sie unter Hinzufügen oder Löschen von Tabellen und Spalten in Azure Monitor-Protokollen.
Gateway-WebSocket-Zeitüberschreitung 2 Stunden
Timeout für interaktive Abfragen 2 Stunden
Timeout bei Inaktivität in interaktiven Sitzungen 20 Minuten
Sprache Python
Timeout für Graphabfrage 7,5 Minuten
Timeout für Notebook-Aufträge 8 Stunden
Maximale Anzahl gleichzeitiger Notebook-Aufträge 3. Nachfolgende Aufträge werden in die Warteschlange eingereiht
Maximale Anzahl gleichzeitiger Benutzer bei interaktiven Abfragen 8-10 für einen großen Pool
Sitzungsstartzeit Der Start der Spark-Computesitzung dauert etwa 5 bis 6 Minuten. Sie können die status der Sitzung unten in Ihrem VS Code-Notebook anzeigen.
Unterstützte Bibliotheken Nur Azure Synapse Bibliotheken 3.4 und die Microsoft Sentinel Provider-Bibliothek für abstrahierte Funktionen werden zum Abfragen des Data Lake unterstützt. Pip-Installationen oder benutzerdefinierte Bibliotheken werden nicht unterstützt.
VS Code-UX-Grenzwert für die Anzeige von Datensätzen 100 000 Zeilen

Problembehandlung

Informationen zu häufigen Fehlern und Lösungen bei der Arbeit mit Notebooks finden Sie unter Problembehandlung für Notebooks im Microsoft Sentinel Data Lake.