Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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:
- Nella portale di Azure passare all'area di lavoro Log Analytics a cui si vuole assegnare il ruolo.
- Selezionare Controllo di accesso (IAM) nel riquadro di spostamento a sinistra.
- Selezionare Aggiungi assegnazione di ruolo.
- Nella tabella Ruolo selezionare Log Analytics Contributor (Collaboratore Log Analytics) e quindi Avanti
- Selezionare Identità gestita e quindi Selezionare i membri.
- 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. - 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:
- Selezionare Extensions Marketplace nella barra degli strumenti a sinistra.
- Cerca Sentinel.
- Selezionare l'estensione Microsoft Sentinel e selezionare Installa.
- Dopo aver installato l'estensione, l'icona di Microsoft Sentinel
icona viene visualizzata nella barra degli strumenti a sinistra.
Installare l'estensione GitHub Copilot per Visual Studio Code per abilitare il completamento del codice e i suggerimenti nei notebook.
- Cercate GitHub Copilot nell’Extensions Marketplace e installatelo.
- 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:
Selezionare l'icona Microsoft Sentinel
nella barra degli strumenti a sinistra.Viene visualizzata una finestra di dialogo con il testo seguente L'estensione "Microsoft Sentinel" vuole accedere usando Microsoft. Selezionare Consenti.
Selezionare il nome dell'account per completare l'accesso.
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.
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.
Creare un nuovo notebook
Per creare un nuovo notebook, usare uno dei metodi seguenti.
Immettere > nella casella di ricerca o premere CTRL+MAIUSC+P e quindi immettere Crea nuovo Jupyter Notebook.
Selezionare File > Nuovo file, quindi selezionare Jupyter Notebook dal menu a discesa.
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
MicrosoftSentinelProvidersia per i nomi delle tabelle nel data lake.Selezionare il triangolo Esegui per eseguire il codice nel notebook. I risultati vengono visualizzati nel riquadro di output sotto la cella di codice.
Selezionare Microsoft Sentinel nell'elenco per un elenco di pool di runtime.
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.
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:
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,ConnectedoNot Connected.
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.
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.
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.
Il riquadro Output.
- Nel riquadro Output selezionare Microsoft Sentinel dall'elenco a discesa.
- Selezionare Debug per includere voci di log dettagliate.
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
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.
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.
Contenuto correlato
- Risolvere i problemi relativi ai notebook nel data lake Microsoft Sentinel
- Creare e gestire processi notebook
- Notebook di esempio per Microsoft Sentinel data lake
- Informazioni di riferimento sulla classe Provider di Microsoft Sentinel
- Panoramica di Microsoft Sentinel data lake
- Ruoli e autorizzazioni del data lake di Microsoft Sentinel