Esegui i notebook sul data lake di Microsoft Sentinel

I notebook di Jupyter offrono un ambiente interattivo per l'esplorazione, l'analisi e la visualizzazione dei dati nel data lake Microsoft Sentinel e nelle tabelle federate. Con i notebook è possibile scrivere ed eseguire codice, documentare il flusso di lavoro e visualizzare i risultati, il tutto in un'unica posizione. In questo modo è facile eseguire l'esplorazione dei dati, creare soluzioni di analisi avanzate e condividere informazioni dettagliate con altri utenti. Sfruttando Python e Apache Spark in Visual Studio Code, i notebook consentono di trasformare i dati di sicurezza non elaborati in intelligence pratica.

Questo articolo illustra come esplorare e interagire con i dati data lake usando i notebook di Jupyter in Visual Studio Code.

Prerequisiti

Effettuare l'onboarding al data lake di Microsoft Sentinel

Per usare i notebook nel data lake di Microsoft Sentinel, devi prima effettuare l'onboarding al data lake. Se non hai ancora completato l'onboarding al data lake di Microsoft Sentinel, vedi Onboarding to Microsoft Sentinel data lake. Se di recente è stato eseguito l'onboarding nel data lake, potrebbe essere necessario del tempo prima che venga inserito un volume sufficiente di dati prima di poter creare analisi significative usando notebook.

Autorizzazioni

I ruoli di Microsoft Entra ID forniscono un ampio accesso a tutte le aree di lavoro nel data lake. In alternativa, è possibile concedere l'accesso a singole aree di lavoro usando i ruoli RBAC di Azure. Gli utenti con autorizzazioni Azure RBAC per le aree di lavoro di Microsoft Sentinel possono eseguire notebook su tali aree di lavoro nel livello Data Lake. Per altre informazioni, vedere Ruoli e autorizzazioni in Microsoft Sentinel.

Facoltativamente, l'ambito di Microsoft Sentinel o il controllo degli accessi in base al ruolo (RBAC) a livello di riga possono essere configurati per limitare ulteriormente l'accesso ai dati all'interno di un'area di lavoro. Se abilitata, l'ambito a livello di riga limita i dati restituiti dalle query in base all'ambito assegnato dall'utente. Se la definizione dell'ambito a livello di riga non è configurata, si applica senza modifiche il modello di autorizzazioni esistente a livello di workspace. Per altre informazioni, vedi Configurare la definizione dell'ambito di Microsoft Sentinel (RBAC a livello di riga) (anteprima)

Per creare nuove tabelle personalizzate nel livello di analisi, all'identità gestita del data lake deve essere assegnato il ruolo Collaboratore Log Analytics nell'area di lavoro Log Analytics.

Per assegnare il ruolo, seguire questa procedura:

  1. Nella portale di Azure passare all'area di lavoro Log Analytics a cui si vuole assegnare il ruolo.
  2. Selezionare Controllo di accesso (IAM) nel riquadro di spostamento a sinistra.
  3. Selezionare Aggiungi assegnazione di ruolo.
  4. Nella tabella Ruolo selezionare Log Analytics Contributor (Collaboratore Log Analytics) e quindi Avanti
  5. Selezionare Identità gestita e quindi Selezionare i membri.
  6. L'identità gestita del data lake è un'identità gestita assegnata dal sistema denominata msg-resources-<guid>. Selezionare l'identità gestita, quindi fare clic su Seleziona.
  7. Selezionare Esamina e assegna.

Per altre informazioni sull'assegnazione di ruoli alle identità gestite, vedere Assegnare ruoli Azure usando il portale di Azure.

Installare Visual Studio Code e l'estensione Microsoft Sentinel

Se Visual Studio Code non è già disponibile, scaricare e installare Visual Studio Code per Mac, Linux o Windows.

L'estensione Microsoft Sentinel per Visual Studio Code (VS Code) viene installata dal marketplace delle estensioni. Per installare l'estensione, seguire questa procedura:

  1. Selezionare Extensions Marketplace nella barra degli strumenti a sinistra.
  2. Cerca Sentinel.
  3. Selezionare l'estensione Microsoft Sentinel e selezionare Installa.
  4. Dopo aver installato l'estensione, l'icona di Microsoft Sentinel usata per aprire l'estensione Microsoft Sentinel in Visual Studio Code icona viene visualizzata nella barra degli strumenti a sinistra.

Screenshot che mostra il mercato delle estensioni.

Installare l'estensione GitHub Copilot per Visual Studio Code per abilitare il completamento del codice e i suggerimenti nei notebook.

  1. Cercate GitHub Copilot nell’Extensions Marketplace e installatelo.
  2. Dopo l'installazione, accedere a GitHub Copilot usando l'account GitHub.

Esplorare le tabelle di livello Data Lake

Dopo aver installato l'estensione Microsoft Sentinel, è possibile iniziare a esplorare le tabelle di livello Data Lake e creare notebook di Jupyter per analizzare i dati.

Accedere all'estensione Microsoft Sentinel

Per accedere all'estensione Microsoft Sentinel, seguire questa procedura:

  1. Selezionare l'icona Microsoft Sentinel usata per aprire l'estensione Microsoft Sentinel in VS Code nella barra degli strumenti a sinistra.

  2. Viene visualizzata una finestra di dialogo con il testo seguente L'estensione "Microsoft Sentinel" vuole accedere usando Microsoft. Selezionare Consenti.

    Screenshot che mostra la finestra di dialogo di accesso.

  3. Selezionare il nome dell'account per completare l'accesso.

    Screenshot che mostra l'elenco di selezione dell'account nella parte superiore della pagina.

    Se si dispone di più account guest associati all'accesso, è possibile passare facilmente da un account all'altro. Per passare da un account all'altro, selezionare il nome dell'account nella parte inferiore sinistra della finestra di Visual Studio Code. È possibile selezionare un solo account alla volta.

    Screenshot che mostra come cambiare account in Visual Studio Code.

    Importante

    Se si passa da un account all'altro, tutte le sessioni pyspark attive vengono disconnesse.

Visualizza tabelle e processi del data lake

Dopo aver effettuato l'accesso, l'estensione Sentinel visualizza un elenco di tabelle di Lake e Job nel riquadro sinistro. Le tabelle vengono raggruppate in base al database e alla categoria. Le tabelle federate vengono visualizzate nella categoria Tabelle federate in Tabelle di sistema. Selezionare una tabella per visualizzare le definizioni di colonna.

Per informazioni sui job, vedi Job e pianificazione. Per altre informazioni sulle tabelle federate, vedere Uso di tabelle federate nel data lake Microsoft Sentinel.

Schermata dell'estensione Sentinel che mostra tabelle Lake e processi nel riquadro sinistro e i metadati della tabella selezionata.

Creare un nuovo notebook

  1. Per creare un nuovo notebook, usare uno dei metodi seguenti.

  2. Immettere > nella casella di ricerca o premere CTRL+MAIUSC+P e quindi immettere Crea nuovo Jupyter Notebook. Screenshot che mostra come creare un nuovo notebook dalla barra di ricerca.

  3. Selezionare File > Nuovo file, quindi selezionare Jupyter Notebook dal menu a discesa.
    Screenshot che mostra come creare un nuovo notebook dal menu file.

  4. Nel nuovo notebook incollare il codice seguente nella prima cella.

    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)
    

    L'editor fornisce il completamento del codice IntelliSense sia per la classe MicrosoftSentinelProvider sia per i nomi delle tabelle nel data lake.

  5. Selezionare il triangolo Esegui per eseguire il codice nel notebook. I risultati vengono visualizzati nel riquadro di output sotto la cella di codice.
    Una schermata che illustra come eseguire una cella del notebook.

  6. Selezionare Microsoft Sentinel nell'elenco per un elenco di pool di runtime. Una schermata che mostra il selettore di runtime.

  7. Selezionare Medio per eseguire il notebook nel pool di runtime di medie dimensioni. Per altre informazioni sui diversi runtime, vedere Selezionare il pool di runtime appropriato. Una schermata che mostra il selettore delle dimensioni del pool di esecuzione.

Nota

Se si seleziona il kernel, viene avviata la sessione Spark ed viene eseguito il codice nel notebook. Dopo aver selezionato il pool, l'avvio della sessione può richiedere 3-5 minuti. Le esecuzioni successive sono più veloci perché la sessione è già attiva.

All'avvio della sessione, il codice nel notebook viene eseguito e i risultati vengono visualizzati nel riquadro di output sotto la cella di codice, ad esempio: Screenshot che mostra i risultati dell'esecuzione di una cella del notebook.

Per notebook di esempio che illustrano come interagire con il data lake Microsoft Sentinel, vedere Notebook di esempio per Microsoft Sentinel data lake.

Monitorare lo stato del notebook dalla barra di stato

La barra di stato nella parte inferiore del notebook fornisce informazioni sullo stato corrente del notebook e sulla sessione Spark. La barra di stato include le informazioni seguenti:

  • Percentuale di utilizzo vCore per il pool Spark selezionato. Passare il puntatore del mouse sulla percentuale per visualizzare il numero di vCore usati e il numero totale di vCore disponibili nel pool. Le percentuali rappresentano l'utilizzo attuale nei carichi di lavoro interattivi e nei processi per l'account con cui è stato effettuato l'accesso.

  • Stato della connessione della sessione Spark, ad esempio Connecting, Connectedo Not Connected.

Screenshot che mostra la barra di stato nella parte inferiore del notebook.

Impostare i timeout della sessione

È possibile impostare il timeout della sessione e i relativi avvisi per i notebook interattivi. Queste impostazioni vengono mantenute nelle impostazioni dell'estensione in modo che vengano mantenute tra le sessioni.

Per modificare il timeout, selezionare lo stato della connessione nella barra di stato nella parte inferiore del notebook. Scegliere una delle seguenti opzioni:

  • Imposta periodo di timeout sessione: imposta il tempo in minuti prima del timeout della sessione. Il valore predefinito è 30 minuti.

  • Reimposta il periodo di timeout della sessione: reimposta il timeout della sessione sul valore predefinito di 30 minuti.

  • Imposta il periodo di avviso di timeout della sessione: imposta il tempo in minuti prima del timeout in cui viene visualizzato un avviso che indica che la sessione sta per scadere. Il valore predefinito è 5 minuti.

  • Reimpostare il periodo di avviso di timeout della sessione: reimposta l'avviso di timeout della sessione sul valore predefinito di 5 minuti.

    Screenshot che mostra l'impostazione di timeout della sessione.

Usare GitHub Copilot nei notebook

Usare GitHub Copilot per scrivere codice nei notebook. GitHub Copilot fornisce suggerimenti di codice e completamento automatico in base al contesto del codice. Per usare GitHub Copilot, assicurarsi di avere l'estensione GitHub Copilot installata in Visual Studio Code.

Copiare il codice dai notebook di esempio per Microsoft Sentinel data lake e salvarlo nella cartella dei notebook per fornire il contesto per GitHub Copilot. GitHub Copilot sarà quindi in grado di suggerire i completamenti del codice in base al contesto del notebook.

L'esempio seguente mostra GitHub Copilot che genera una revisione del codice.

Una schermata che mostra GitHub Copilot che genera una revisione del codice.

Classe Microsoft Sentinel Provider

Per connettersi al data lake Microsoft Sentinel, usare la MicrosoftSentinelProvider classe . La MicrosoftSentinelProvider classe fa parte del sentinel_lake.providers modulo e fornisce metodi per interagire con il data lake. Per connettere il notebook Spark alle tabelle del data lake di Microsoft Sentinel, importare la classe e creare un'istanza usando una sessione spark:

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

Per altre informazioni sui metodi disponibili, vedere riferimento della classe Provider di Microsoft Sentinel.

Selezionare il pool di runtime appropriato

Sono disponibili tre pool di runtime per eseguire i notebook di Jupyter nell'estensione Microsoft Sentinel. Ogni pool è progettato per carichi di lavoro e requisiti di prestazioni diversi. La scelta del pool di runtime influisce sulle prestazioni, sui costi e sul tempo di esecuzione dei processi Spark.

Pool di runtime Casi d'uso consigliati Caratteristiche
Piccolo Sviluppo, test e analisi esplorativa leggera.
Carichi di lavoro di piccole dimensioni con trasformazioni semplici.
L'efficienza dei costi è stata assegnata in ordine di priorità.
Adatto per carichi di lavoro di piccole dimensioni
Trasformazioni semplici.
Costo inferiore, tempo di esecuzione più lungo.
Medium Job ETL con join, aggregazioni e addestramento di modelli di machine learning.
Moderare i carichi di lavoro con trasformazioni complesse.
Miglioramento delle prestazioni rispetto a Small.
Gestisce il parallelismo e le operazioni con utilizzo moderato della memoria.
Grandi dimensioni Carichi di lavoro di Apprendimento avanzato e Machine Learning.
Rimescolamento completo dei dati, join di grandi dimensioni o elaborazione in tempo reale.
Tempo di esecuzione critico.
Memoria e potenza di calcolo elevate.
Ritardi minimi.
Ideale per carichi di lavoro di grandi dimensioni, complessi o sensibili al tempo.

Nota

Al primo accesso, il caricamento delle opzioni del kernel potrebbe richiedere circa 30 secondi.
Dopo aver selezionato un pool di runtime, l'avvio della sessione può richiedere da 3 a 5 minuti.

Visualizzare messaggi, log ed errori

I log dei messaggi e i messaggi di errore vengono visualizzati in tre aree in Visual Studio Code.

  1. Il riquadro Output.

    1. Nel riquadro Output selezionare Microsoft Sentinel dall'elenco a discesa.
    2. Selezionare Debug per includere voci di log dettagliate.

    Screenshot che mostra il riquadro di output.

  2. I messaggi in linea nel notebook forniscono commenti e informazioni sull'esecuzione delle celle di codice. Questi messaggi includono gli aggiornamenti dello stato di esecuzione, gli indicatori di stato e le notifiche di errore correlate al codice nella cella precedente

  3. Una notifica popup nell'angolo inferiore destro di Visual Studio Code, nota anche come messaggio toast, fornisce avvisi e aggiornamenti in tempo reale sullo stato delle operazioni all'interno del notebook e della sessione Spark. Queste notifiche includono messaggi, avvisi e avvisi di errore, ad esempio connessione riuscita a una sessione Spark e avvisi di timeout.

    Una schermata che mostra un messaggio toast e un messaggio di errore in linea.

Creare e gestire attività e pianificazioni di notebook

È possibile pianificare l'esecuzione di processi in orari o intervalli specifici usando l'estensione Microsoft Sentinel per Visual Studio Code. I processi consentono di automatizzare le attività di elaborazione dei dati per riassumere, trasformare o analizzare i dati nel data lake di Microsoft Sentinel. I processi vengono usati anche per elaborare i dati e scrivere i risultati in tabelle personalizzate nel livello del data lake o nel livello analitico. Per ulteriori informazioni sulla creazione e sulla gestione dei processi, vedi Creare e gestire processi di notebook Jupyter.

Parametri e limiti del servizio per i notebook di VS Code

La sezione seguente elenca i parametri e i limiti del servizio per Microsoft Sentinel data lake quando si usano notebook di VS Code.

Categoria Parametro/limite
Tabella personalizzata nel livello di analisi Le tabelle personalizzate nel livello di analisi non possono essere eliminate da un notebook. Usare Log Analytics per eliminare queste tabelle. Per altre informazioni, vedere Aggiungere o eliminare tabelle e colonne nei log di monitoraggio Azure
Timeout del web socket del gateway 2 ore
Timeout delle query interattive 2 ore
Timeout di inattività della sessione interattiva 20 minuti
Lingua Python
Timeout della query del grafo 7,5 minuti
Timeout del processo del notebook 8 ore
Numero massimo di processi di notebook simultanei 3, i processi successivi vengono accodati
Numero massimo di utenti simultanei nell'esecuzione di query interattive 8-10 nella Piscina Grande
Ora di avvio della sessione L'avvio della sessione di calcolo Spark richiede circa 5-6 minuti. È possibile visualizzare lo stato della sessione nella parte inferiore del blocco appunti di VS Code.
Librerie supportate Sono supportate solo Azure Synapse Libraries 3.4 e la libreria Microsoft Sentinel Provider per funzioni astratte per interrogare il data lake. Le installazioni pip o le librerie personalizzate non sono supportate.
Limite dell'esperienza utente di VS Code per visualizzare i record 100.000 righe

Risoluzione dei problemi

Per gli errori e le soluzioni comuni quando si usano i notebook, vedere Risolvere i problemi relativi ai notebook nel data lake Microsoft Sentinel.