Notebooks uitvoeren op de Microsoft Sentinel Data Lake

Jupyter-notebooks bieden een interactieve omgeving voor het verkennen, analyseren en visualiseren van gegevens in de Microsoft Sentinel data lake en federatieve tabellen. Met notitieblokken kunt u code schrijven en uitvoeren, uw werkstroom documenteert en resultaten weergeven, allemaal op één plaats. Dit maakt het eenvoudig om gegevensverkenning uit te voeren, geavanceerde analyseoplossingen te bouwen en inzichten met anderen te delen. Door gebruik te maken van Python en Apache Spark in Visual Studio Code, kunt u met notebooks onbewerkte beveiligingsgegevens omzetten in bruikbare intelligentie.

In dit artikel wordt beschreven hoe u data lake-gegevens verkent en gebruikt met behulp van Jupyter-notebooks in Visual Studio Code.

Vereisten

Onboarden naar de Microsoft Sentinel data lake

Als u notebooks wilt gebruiken in de Microsoft Sentinel Data Lake, moet u eerst onboarden naar de data lake. Zie Onboarding to Microsoft Sentinel data lake (Onboarding to Microsoft Sentinel data lake) als u geen onboarding hebt gemaakt voor Sentinel Data Lake. Als u onlangs onboarding naar de data lake hebt uitgevoerd, kan het enige tijd duren voordat er voldoende gegevensvolume is opgenomen voordat u zinvolle analyses kunt maken met behulp van notebooks.

Machtigingen

Microsoft Entra ID rollen bieden brede toegang tot alle werkruimten in de Data Lake. U kunt ook toegang verlenen tot afzonderlijke werkruimten met behulp van Azure RBAC-rollen. Gebruikers met Azure RBAC-machtigingen voor Microsoft Sentinel werkruimten kunnen notebooks uitvoeren op die werkruimten in de data lake-laag. Zie Rollen en machtigingen in Microsoft Sentinel voor meer informatie.

Optioneel kan Microsoft Sentinel bereik of RBAC op rijniveau worden geconfigureerd om de toegang tot gegevens binnen een werkruimte verder te beperken. Wanneer deze optie is ingeschakeld, beperkt het bereik op rijniveau de gegevens die worden geretourneerd door query's op basis van het toegewezen bereik van de gebruiker. Als bereik op rijniveau niet is geconfigureerd, wordt het bestaande machtigingsmodel op werkruimteniveau ongewijzigd toegepast. Zie Microsoft Sentinel bereik configureren (RBAC op rijniveau) (preview) voor meer informatie.

Als u nieuwe aangepaste tabellen wilt maken in de analyselaag, moet aan de beheerde identiteit van Data Lake de rol Log Analytics-inzender worden toegewezen in de Log Analytics-werkruimte.

Volg de onderstaande stappen om de rol toe te wijzen:

  1. Navigeer in de Azure Portal naar de Log Analytics-werkruimte waaraan u de rol wilt toewijzen.
  2. Selecteer Toegangsbeheer (IAM) in het linkernavigatiedeelvenster.
  3. Selecteer Roltoewijzing toevoegen.
  4. Selecteer log analytics-inzender in de tabel Rol en selecteer vervolgens Volgende
  5. Selecteer Beheerde identiteit en selecteer vervolgens Leden selecteren.
  6. Uw door Data Lake beheerde identiteit is een door het systeem toegewezen beheerde identiteit met de naam msg-resources-<guid>. Selecteer de beheerde identiteit en selecteer vervolgens Selecteren.
  7. Selecteer Controleren en toewijzen.

Zie Azure rollen toewijzen met behulp van de Azure Portal voor meer informatie over het toewijzen van rollen aan beheerde identiteiten.

Visual Studio Code en de Microsoft Sentinel-extensie installeren

Als u Nog geen Visual Studio Code hebt, downloadt en installeert u Visual Studio Code voor Mac, Linux of Windows.

De Microsoft Sentinel-extensie voor Visual Studio Code (VS Code) wordt geïnstalleerd vanuit de marketplace voor extensies. Voer de volgende stappen uit om de extensie te installeren:

  1. Selecteer de Marketplace voor extensies in de linkerwerkbalk.
  2. Zoek naar Sentinel.
  3. Selecteer de extensie Microsoft Sentinel en selecteer Installeren.
  4. Nadat de extensie is geïnstalleerd, wordt het Microsoft Sentinel het pictogram van het sentinel-pictogram weergegeven in de linkerwerkbalk.

Een schermopname van de markt voor extensies.

Installeer de GitHub Copilot-extensie voor Visual Studio Code om code-voltooiing en suggesties in notebooks in te schakelen.

  1. Zoek naar GitHub Copilot in de Marketplace voor extensies en installeer deze.
  2. Meld u na de installatie aan bij GitHub Copilot met uw GitHub-account.

Data Lake-laagtabellen verkennen

Nadat u de Microsoft Sentinel-extensie hebt geïnstalleerd, kunt u beginnen met het verkennen van data lake-laagtabellen en het maken van Jupyter-notebooks om de gegevens te analyseren.

Meld u aan bij de Microsoft Sentinel-extensie

  1. Selecteer de Microsoft Sentinel het pictogram van het sentinelpictogram in de linkerwerkbalk.

  2. Er wordt een dialoogvenster weergegeven met de volgende tekst De extensie 'Microsoft Sentinel' wil zich aanmelden met Microsoft. Selecteer Toestaan.

    Een schermopname van het aanmeldingsdialoogvenster.

  3. Selecteer uw accountnaam om de aanmelding te voltooien.

    Een schermopname van de lijst met accountselectie boven aan de pagina.

    Als u meerdere gastaccounts hebt gekoppeld aan uw aanmelding, kunt u naadloos schakelen tussen accounts. Als u wilt schakelen tussen accounts, selecteert u de accountnaam in de linkerbenedenhoek van het Visual Studio Code-venster. Er kan slechts één account tegelijk worden geselecteerd.

    Een schermopname die laat zien hoe u van account wisselt in Visual Studio Code.

    Belangrijk

    Als u schakelt tussen accounts, worden alle actieve pyspark-sessies verbroken.

Data Lake-tabellen en -taken weergeven

Zodra u zich hebt aangemeld, wordt in de extensie Sentinel een lijst met Lake-tabellen en taken weergegeven in het linkerdeelvenster. De tabellen zijn gegroepeerd op de database en categorie. Federatieve tabellen worden weergegeven onder de categorie Federatieve tabellen onder Systeemtabellen. Selecteer een tabel om de kolomdefinities weer te geven.

Zie Taken en planning voor meer informatie over taken. Zie Federatieve tabellen gebruiken in de Microsoft Sentinel data lake voor meer informatie over federatieve tabellen.

Een schermopname van de lijst met tabellen, taken en de metagegevens van de geselecteerde tabel.

Een nieuw notitieblok maken

  1. Gebruik een van de volgende methoden om een nieuw notitieblok te maken.

  2. Voer > in het zoekvak in of druk op Ctrl+Shift+P en voer vervolgens Nieuwe Jupyter Notebook maken in. Een schermopname die laat zien hoe u een nieuw notitieblok maakt vanuit de zoekbalk.

  3. Selecteer Bestand > Nieuw bestand en selecteer vervolgens Jupyter Notebook in de vervolgkeuzelijst.
    Een schermopname die laat zien hoe u een nieuw notitieblok maakt in het bestandsmenu.

  4. Plak in het nieuwe notitieblok de volgende code in de eerste cel.

    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)
    

De editor biedt intellisense-codevoltooiing voor zowel de MicrosoftSentinelProvider klasse- als de tabelnamen in de data lake.

  1. Selecteer het driehoekje Uitvoeren om de code in het notitieblok uit te voeren. De resultaten worden weergegeven in het uitvoervenster onder de codecel.
    Een schermopname die laat zien hoe u een notebookcel uitvoert.

  2. Selecteer Microsoft Sentinel in de lijst voor een lijst met runtime-pools. Een schermopname van de runtimekiezer.

  3. Selecteer Gemiddeld om het notebook uit te voeren in de middelgrote runtime-pool. Zie De juiste Microsoft Sentinel runtime selecteren voor meer informatie over de verschillende runtimes. Een schermopname van de kiezer voor de grootte van de uitvoering van de pool.

Opmerking

Als u de kernel selecteert, wordt de Spark-sessie gestart en wordt de code in het notebook uitgevoerd. Nadat u de pool hebt geselecteerd, kan het 3-5 minuten duren voordat de sessie wordt gestart. De volgende uitvoeringen worden sneller uitgevoerd omdat de sessie al actief is.

Wanneer de sessie is gestart, wordt de code in het notitieblok uitgevoerd en worden de resultaten weergegeven in het uitvoervenster onder de codecel, bijvoorbeeld: Een schermopname met de resultaten van het uitvoeren van een notebookcel.

Zie Voorbeeldnotitieblokken voor Microsoft Sentinel data lake voor voorbeeldnotitieblokken die laten zien hoe u met de Microsoft Sentinel Data Lake kunt werken.

Statusbalk

De statusbalk onder aan het notebook bevat informatie over de huidige status van het notebook en de Spark-sessie. De statusbalk bevat de volgende informatie:

  • Het vCore-gebruikspercentage voor de geselecteerde Spark-pool. Beweeg de muisaanwijzer over het percentage om het aantal gebruikte vCores en het totale aantal beschikbare vCores in de pool te bekijken. De percentages geven het huidige gebruik voor interactieve en taakworkloads voor het aangemelde account aan.

  • De verbindingsstatus van de Spark-sessie bijvoorbeeld Connecting, Connectedof Not Connected.

Een schermopname van de statusbalk onder aan het notitieblok.

Sessietime-outs instellen

U kunt de time-out- en time-outwaarschuwingen voor interactieve notitieblokken instellen. Deze instellingen blijven behouden in de extensie-instellingen, zodat ze in alle sessies behouden blijven.

Als u de time-out wilt wijzigen, selecteert u de verbindingsstatus op de statusbalk onderaan het notitieblok. Kies uit de volgende opties:

  • Time-outperiode voor sessies instellen: hiermee stelt u de tijd in minuten in voordat er een time-out optreedt voor de sessie. De standaardwaarde is 30 minuten.

  • Time-outperiode van sessie opnieuw instellen: hiermee wordt de time-out van de sessie opnieuw ingesteld op de standaardwaarde van 30 minuten.

  • Waarschuwingsperiode voor time-out van sessie instellen: hiermee stelt u de tijd in minuten voor de time-out in dat er een waarschuwing wordt weergegeven dat er een time-out optreedt voor de sessie. De standaardwaarde is 5 minuten.

  • Waarschuwingsperiode voor time-out van sessie opnieuw instellen: hiermee wordt de time-outwaarschuwing van de sessie opnieuw ingesteld op de standaardwaarde van 5 minuten.

    Een schermopname van de time-outinstelling voor sessies.

GitHub Copilot gebruiken in notitieblokken

Gebruik GitHub Copilot om u te helpen bij het schrijven van code in notitieblokken. GitHub Copilot biedt codesuggesties en automatisch aanvullen op basis van de context van uw code. Als u GitHub Copilot wilt gebruiken, moet u ervoor zorgen dat de extensie GitHub Copilot is geïnstalleerd in Visual Studio Code.

Kopieer code uit de voorbeeldnotitieblokken voor Microsoft Sentinel data lake en sla deze op in de map notebooks om context te bieden voor GitHub Copilot. GitHub Copilot kunt vervolgens code-voltooiingen voorstellen op basis van de context van uw notebook.

In het volgende voorbeeld ziet u GitHub Copilot een codebeoordeling genereert.

Een schermopname van GitHub Copilot het genereren van een codebeoordeling.

providerklasse Microsoft Sentinel

Gebruik de klasse om verbinding te maken met de SentinelLakeProvider Microsoft Sentinel data lake. Deze klasse maakt deel uit van de access_module.data_loader module en biedt methoden voor interactie met de data lake. Als u deze klasse wilt gebruiken, importeert u deze en maakt u een exemplaar van de klasse met behulp van een spark sessie.

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

Zie Microsoft Sentinel Referentie voor providerklasse voor meer informatie over de beschikbare methoden.

Selecteer de juiste runtimegroep

Er zijn drie runtimepools beschikbaar om uw Jupyter-notebooks uit te voeren in de extensie Microsoft Sentinel. Elke pool is ontworpen voor verschillende workloads en prestatievereisten. De keuze van de runtimepool is van invloed op de prestaties, kosten en uitvoeringstijd van uw Spark-taken.

Runtime-pool Aanbevolen gebruiksvoorbeelden Kenmerken
Klein Ontwikkeling, testen en lichtgewicht verkennende analyse.
Kleine workloads met eenvoudige transformaties.
Kostenefficiëntie geprioriteerd.
Geschikt voor kleine workloads
Eenvoudige transformaties.
Lagere kosten, langere uitvoeringstijd.
Gemiddeld ETL-taken met joins, aggregaties en ML-modeltraining.
Werkbelastingen met complexe transformaties beheren.
Verbeterde prestaties ten opzichte van Small.
Verwerkt parallellisme en matige geheugenintensieve bewerkingen.
Groot Deep learning- en ML-workloads.
Uitgebreide gegevensversnippering, grote joins of realtime verwerking.
Kritieke uitvoeringstijd.
Hoge geheugen- en rekenkracht.
Minimale vertragingen.
Geschikt voor grote, complexe of tijdgevoelige werkbelastingen.

Opmerking

Wanneer de kernelopties voor het eerst worden geopend, kan het ongeveer 30 seconden duren voordat de kernelopties zijn geladen.
Nadat u een runtime-pool hebt geselecteerd, kan het 3-5 minuten duren voordat de sessie wordt gestart.

Berichten, logboeken en fouten weergeven

Berichtenlogboeken en foutberichten worden weergegeven in drie gebieden in Visual Studio Code.

  1. Het deelvenster Uitvoer .

    1. Selecteer in het deelvenster UitvoerMicrosoft Sentinel in de vervolgkeuzelijst.
    2. Selecteer Foutopsporing om gedetailleerde logboekvermeldingen op te nemen.

    Een schermopname van het uitvoervenster.

  2. In-line berichten in het notebook bieden feedback en informatie over de uitvoering van codecellen. Deze berichten omvatten updates van de uitvoeringsstatus, voortgangsindicatoren en foutmeldingen met betrekking tot de code in de voorgaande cel

  3. Een pop-upmelding in de rechterbenedenhoek van Visual Studio Code, ook wel bekend als een pop-upbericht, biedt realtime waarschuwingen en updates over de status van bewerkingen in het notebook en de Spark-sessie. Deze meldingen omvatten berichten, waarschuwingen en foutwaarschuwingen, zoals een geslaagde verbinding met een Spark-sessie en time-outwaarschuwingen.

    Een schermopname van een pop-upbericht en een inline-foutbericht.

Taken en planning

U kunt taken plannen om op specifieke tijdstippen of intervallen te worden uitgevoerd met behulp van de Microsoft Sentinel-extensie voor Visual Studio Code. Met taken kunt u gegevensverwerkingstaken automatiseren om gegevens in de Microsoft Sentinel data lake samen te vatten, te transformeren of te analyseren. Taken worden ook gebruikt om gegevens te verwerken en resultaten te schrijven naar aangepaste tabellen in de data lake-laag of analyselaag. Zie Jupyter-notebooktaken maken en beheren voor meer informatie over het maken en beheren van taken.

Serviceparameters en -limieten voor VS Code Notebooks

In de volgende sectie vindt u de serviceparameters en -limieten voor Microsoft Sentinel Data Lake bij het gebruik van VS Code Notebooks.

Categorie Parameter/limiet
Aangepaste tabel in de analyselaag Aangepaste tabellen in de analyselaag kunnen niet worden verwijderd uit een notebook; Gebruik Log Analytics om deze tabellen te verwijderen. Zie Tabellen en kolommen toevoegen of verwijderen in Azure Logboeken bewaken voor meer informatie
Time-out van gatewaywebsockets 2 uur
Time-out voor interactieve query's 2 uur
Time-out voor interactieve sessie-inactiviteit 20 minuten
Taal Python
Time-out van graph-query 7,5 minuten
Time-out van notitiebloktaak 8 uur
Maximum aantal gelijktijdige notebooktaken 3, volgende taken worden in de wachtrij geplaatst
Maximum aantal gelijktijdige gebruikers bij interactieve query's 8-10 op groot zwembad
Opstarttijd sessie Het starten van een Spark-rekensessie duurt ongeveer 5-6 minuten. U kunt de status van de sessie onder aan uw VS Code Notebook bekijken.
Ondersteunde bibliotheken Alleen Azure Synapse bibliotheken 3.4 en de Microsoft Sentinel Provider-bibliotheek voor abstracte functies worden ondersteund voor het uitvoeren van query's op de data lake. Pip-installaties of aangepaste bibliotheken worden niet ondersteund.
VS Code UX-limiet voor het weergeven van records 100.000 rijen

Problemen oplossen

Zie Problemen met notebooks oplossen op de Microsoft Sentinel data lake voor veelvoorkomende fouten en oplossingen bij het werken met notebooks.