Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Les notebooks Jupyter fournissent un environnement interactif pour l’exploration, l’analyse et la visualisation des données dans le lac de données Microsoft Sentinel et les tables fédérées. Les notebooks vous permettent d’écrire et d’exécuter du code, de documenter votre flux de travail et d’afficher les résultats au même endroit. Cet environnement tout-en-un permet d’explorer les données, de développer des solutions analytiques avancées et de partager des informations avec les autres. En tirant parti de Python et Apache Spark dans Visual Studio Code, les notebooks vous aident à transformer des données de sécurité brutes en informations exploitables.
Cet article montre comment explorer les données d’un data lake et interagir avec elles à l’aide de notebooks Jupyter dans Visual Studio Code.
Prérequis
Intégrer au lac de données Microsoft Sentinel
Pour utiliser des notebooks dans le lac de données Microsoft Sentinel, vous devez d’abord vous intégrer au lac de données. Si vous n’avez pas procédé à l’intégration au lac de données Microsoft Sentinel, consultez Intégration au lac de données Microsoft Sentinel. Si vous avez récemment commencé à utiliser le lac de données, l'ingestion d'un volume suffisant de données peut prendre un certain temps avant que vous ne puissiez créer des analyses pertinentes à l'aide de notebooks.
Autorisations requises pour les notebooks Data Lake
Les rôles Microsoft Entra ID fournissent un accès étendu dans tous les espaces de travail du lac de données. Vous pouvez également accorder l’accès à des espaces de travail individuels à l’aide des rôles Azure RBAC. Les utilisateurs disposant des autorisations Azure RBAC pour les espaces de travail Microsoft Sentinel peuvent exécuter des notebooks dans ces espaces de travail au niveau du lac de données. Pour plus d’informations, consultez Rôles et autorisations dans Microsoft Sentinel.
Si vous le souhaitez, il est possible de configurer la limitation du périmètre dans Microsoft Sentinel ou le RBAC au niveau des lignes afin de restreindre davantage l’accès aux données dans un espace de travail. Lorsqu’il est activé, le filtrage au niveau des lignes limite les données renvoyées par les requêtes en fonction du périmètre attribué à l’utilisateur. Si l’étendue au niveau des lignes n’est pas configurée, le modèle d’autorisation existant au niveau de l’espace de travail s’applique sans modification. Pour plus d'informations, consultez Configurer l'étendue de Microsoft Sentinel (contrôle d'accès en fonction du rôle au niveau de la ligne) (préversion).
Pour créer des tables personnalisées dans le niveau analytique, l’identité managée data lake doit se voir attribuer le rôle Contributeur Log Analytics dans l’espace de travail Log Analytics.
Pour attribuer le rôle, suivez les étapes ci-dessous :
- Dans le Portail Azure, accédez à l’espace de travail Log Analytics auquel vous souhaitez attribuer le rôle.
- Sélectionnez Contrôle d’accès (IAM) dans le volet de navigation gauche.
- Sélectionnez Ajouter une attribution de rôle.
- Dans la table Rôle , sélectionnez Contributeur Log Analytics, puis Suivant
- Sélectionnez Identité managée, puis sélectionnez Sélectionner des membres.
- L’identité managée de votre lac de données est une identité managée attribuée par le système appelée
msg-resources-<guid>. Sélectionnez l’identité managée, puis sélectionnez Sélectionner. - Sélectionnez Vérifier et attribuer.
Pour plus d’informations sur l’attribution de rôles à des identités managées, consultez Attribuer des rôles Azure à l’aide de la Portail Azure.
Installer Visual Studio Code et l’extension Microsoft Sentinel
Si vous n’avez pas encore Visual Studio Code, téléchargez et installez Visual Studio Code pour Mac, Linux ou Windows.
L’extension Microsoft Sentinel pour Visual Studio Code (VS Code) est installée à partir de la Place de marché des extensions. Pour installer l’extension, procédez comme suit :
- Sélectionnez le Marketplace des extensions dans la barre d’outils de gauche.
- Recherchez Sentinel.
- Sélectionnez l’extension Microsoft Sentinel, puis sélectionnez Installer.
- Après l’installation de l’extension, l’image Microsoft Sentinel
apparaît dans la barre d’outils de gauche.
Installez l’extension GitHub Copilot pour Visual Studio Code afin d’activer la saisie semi-automatique du code et les suggestions dans les notebooks.
- Recherchez GitHub Copilot dans la Place de marché des extensions et installez-la.
- Après l’installation, connectez-vous à GitHub Copilot à l’aide de votre compte GitHub.
Explorer les tables du niveau du data lake
Après avoir installé l’extension Microsoft Sentinel, vous pouvez commencer à explorer les tables du niveau Data Lake et à créer des notebooks Jupyter pour analyser les données.
Connectez-vous à l’extension Microsoft Sentinel
Pour vous connecter à l’extension Microsoft Sentinel, procédez comme suit :
Sélectionnez
dans la barre d’outils de gauche.Une boîte de dialogue s’affiche avec le texte suivant L’extension « Microsoft Sentinel » souhaite se connecter à l’aide de Microsoft. Sélectionnez Autoriser.
Sélectionnez le nom de votre compte pour terminer la connexion.
Si vous avez plusieurs comptes invités associés à votre connexion, vous pouvez basculer en toute transparence entre les comptes. Pour basculer entre les comptes, sélectionnez le nom du compte en bas à gauche de la fenêtre Visual Studio Code. Un seul compte peut être sélectionné à la fois.
Important
Le basculement entre les comptes déconnecte toutes les sessions pyspark actives.
Afficher les tables et les tâches du data lake
Une fois que vous êtes connecté, l’extension Sentinel affiche une liste de tables Lake et de travaux dans le volet gauche. Les tables sont regroupées par base de données et catégorie. Les tables fédérées sont affichées sous la catégorie Tables fédérées sous Tables système. Sélectionnez une table pour afficher les définitions de colonne.
Pour des informations sur la planification des tâches de notebook, consultez Créer et gérer les tâches et plannings de notebooks dans cet article. Pour plus d’informations sur les tables fédérées, consultez Utilisation de tables fédérées dans le lac de données Microsoft Sentinel.
Créer un bloc-notes
Pour créer un nouveau carnet Jupyter dans Visual Studio Code, suivez ces étapes :
Pour créer un bloc-notes, utilisez l’une des méthodes suivantes.
Entrez > dans la zone de recherche ou appuyez sur Ctrl+Maj+P, puis entrez Créer un nouveau Jupyter Notebook.
Sélectionnez Fichier > Nouveau fichier, puis sélectionnez Jupyter Notebook dans la liste déroulante.
Dans le nouveau notebook, collez le code suivant dans la première cellule.
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’éditeur fournit la saisie semi-automatique du code IntelliSense pour la classe
MicrosoftSentinelProvideret les noms de table dans le lac de données.Sélectionnez le triangle Exécuter pour exécuter le code dans le notebook. Les résultats sont affichés dans le volet de sortie sous la cellule de code.
Sélectionnez Microsoft Sentinel dans la liste pour obtenir la liste des pools d’exécution.
Sélectionnez Moyen pour exécuter le notebook dans le pool d’exécution de taille moyenne. Pour plus d’informations sur les différents runtimes, consultez Sélectionner le pool d’exécution approprié.
Remarque
La sélection du noyau démarre la session Spark et exécute le code dans le notebook. Après avoir sélectionné le pool, le démarrage de la session peut prendre 3 à 5 minutes. Les exécutions suivantes sont plus rapides, car la session est déjà active.
Lorsque la session est démarrée, le code du notebook s’exécute et les résultats sont affichés dans le volet de sortie sous la cellule de code, par exemple :
Pour obtenir des notebooks d’exemple montrant comment interagir avec le lac de données Microsoft Sentinel, consultez Notebooks d’exemple pour le lac de données Microsoft Sentinel.
Surveiller l’état du bloc-notes à partir de la barre d’état
La barre status en bas du bloc-notes fournit des informations sur l’état actuel du bloc-notes et de la session Spark. La barre status contient les informations suivantes :
Pourcentage d’utilisation des vCores pour le pool Spark sélectionné. Pointez sur le pourcentage pour voir le nombre de vCores utilisés et le nombre total de vCores disponibles dans le pool. Les pourcentages représentent l’utilisation actuelle entre les charges de travail interactives et de travail pour le compte connecté.
La connexion status de la session Spark, par exemple
Connecting,ConnectedouNot Connected.
Définir les délais d’expiration de session
Vous pouvez définir le délai d’expiration de la session et les avertissements d’expiration pour les notebooks interactifs. Ces paramètres sont conservés dans les paramètres d’extension afin d’être conservés entre les sessions.
Pour modifier le délai d’expiration, sélectionnez le status de connexion dans la barre de status en bas du bloc-notes. Choisissez l'une des options suivantes :
Définir le délai d’expiration de session : définit la durée en minutes avant l’expiration de la session. La valeur par défaut est 30 minutes.
Réinitialiser le délai d’expiration de session : réinitialise le délai d’expiration de session à la valeur par défaut de 30 minutes.
Définir la période d’avertissement du délai d’expiration de session : définit le délai en minutes avant l’expiration du délai d’affichage d’un avertissement indiquant que la session est sur le point d’expirer. La valeur par défaut est de 5 minutes.
Réinitialiser la période d’avertissement avant expiration de la session : rétablit la période d’avertissement avant expiration de la session à sa valeur par défaut de 5 minutes.
Utiliser GitHub Copilot dans les notebooks
Utilisez GitHub Copilot pour vous aider à écrire du code dans des notebooks. GitHub Copilot fournit des suggestions de code et une autocomplétion en fonction du contexte de votre code. Pour utiliser GitHub Copilot, vérifiez que l’extension GitHub Copilot est installée dans Visual Studio Code.
Copiez le code depuis les notebooks d’exemple pour le lac de données Microsoft Sentinel et enregistrez-le dans votre dossier de notebooks afin de fournir du contexte à GitHub Copilot. GitHub Copilot pourra ensuite suggérer des complétions de code en fonction du contexte de votre notebook.
L’exemple suivant montre GitHub Copilot générer une révision de code.
Utilisez la classe Microsoft Sentinel Provider
Pour vous connecter au lac de données Microsoft Sentinel, utilisez la MicrosoftSentinelProvider classe .
La MicrosoftSentinelProvider classe fait partie du sentinel_lake.providers module et fournit des méthodes pour interagir avec le lac de données. Pour connecter votre notebook Spark aux tables de data lake Microsoft Sentinel, importez la classe et créez une instance en utilisant une spark session. Le code suivant initialise le fournisseur de données Sentinel Lake afin que le notebook puisse interroger les tables Microsoft Sentinel depuis Spark :
from sentinel_lake.providers import MicrosoftSentinelProvider
data_provider = MicrosoftSentinelProvider(spark)
Pour plus d’informations sur les méthodes disponibles, consultez la référence de la classe Provider pour Microsoft Sentinel.
Sélectionner le pool d’exécution approprié
Trois pools d’exécution sont disponibles pour exécuter vos notebooks Jupyter dans l’extension Microsoft Sentinel. Chaque pool est conçu pour des charges de travail et des exigences de performances différentes. Le choix du pool d’exécution affecte les performances, le coût et le temps d’exécution de vos travaux Spark.
| Pool d'exécution | Cas d’usage recommandés | Caractéristiques |
|---|---|---|
| Small | Développement, test et analyse exploratoire légère. Petites charges de travail avec des transformations simples. Rentabilité prioritaire. |
Adapté aux petites charges de travail Transformations simples. Coût inférieur, temps d’exécution plus long. |
| Medium | Tâches ETL avec jointures, agrégations et entraînement de modèles de machine learning. Modérer les charges de travail avec des transformations complexes. |
Amélioration des performances par rapport à Small. Gère le parallélisme et modère les opérations nécessitant beaucoup de mémoire. |
| Large | Charges de travail d’apprentissage profond et de ML. Redistribution importante de données, jointures volumineuses ou traitement en temps réel. Temps d’exécution critique. |
Mémoire et puissance de calcul élevées. Des délais minimes. Idéal pour les charges de travail volumineuses, complexes ou sensibles au temps. |
Remarque
Lors de la première consultation, le chargement des options de noyau peut prendre environ 30 secondes.
Après avoir sélectionné un pool d’exécution, le démarrage de la session peut prendre 3 à 5 minutes.
Afficher les messages, les journaux et les erreurs
Les journaux des messages et les messages d’erreur sont affichés dans trois zones dans Visual Studio Code.
Le volet Sortie.
- Dans le volet Sortie, sélectionnez Microsoft Sentinel dans la liste déroulante.
- Sélectionnez Déboguer pour inclure des entrées de journal détaillées.
Les messages en ligne dans le notebook fournissent des commentaires et des informations sur l’exécution des cellules de code. Ces messages incluent des mises à jour de l’état d’exécution, des indicateurs de progression et des notifications d’erreur concernant le code de la cellule précédente.
Une fenêtre contextuelle de notification dans le coin inférieur droit de Visual Studio Code, également appelée message Toast, affiche des alertes en temps réel et des mises à jour sur l'état des opérations au sein du notebook et de la session Spark. Ces notifications incluent des messages, des avertissements et des alertes d’erreur, comme une connexion réussie à une session Spark et des avertissements de délai d’expiration.
Créer et gérer des tâches et des planifications de notebooks
Vous pouvez planifier l’exécution des travaux à des heures ou des intervalles spécifiques à l’aide de l’extension Microsoft Sentinel pour Visual Studio Code. Les travaux vous permettent d’automatiser les tâches de traitement des données pour synthétiser, transformer ou analyser des données dans le lac de données Microsoft Sentinel. Les tâches sont également utilisées pour traiter des données et écrire les résultats dans des tables personnalisées de la couche du lac de données ou de la couche analytique. Pour plus d’informations sur la création et la gestion des travaux, consultez Créer et gérer des travaux de notebook Jupyter.
Paramètres et limites de service pour les notebooks VS Code
La section suivante répertorie les paramètres de service et les limites du lac de données Microsoft Sentinel lors de l’utilisation des notebooks VS Code.
| Catégorie | Paramètre/limite |
|---|---|
| Table personnalisée dans le niveau Analytique | Les tables personnalisées du niveau Analytique ne peuvent pas être supprimées d’un notebook ; Utilisez Log Analytics pour supprimer ces tables. Pour plus d’informations, consultez Ajouter ou supprimer des tables et des colonnes dans les logs Azure Monitor |
| Délai d'expiration du socket web de la passerelle | 2 heures |
| Délai d’expiration des requêtes interactives | 2 heures |
| Délai d’inactivité de session interactive | 20 minutes |
| Langue | Python |
| Délai d'expiration de requête de graphe | 7.5 minutes |
| Délai d’expiration du travail du bloc-notes | 8 heures |
| Nombre maximal de tâches de bloc-notes simultanées | 3, les travaux suivants sont mis en file d'attente |
| Nombre maximal d’utilisateurs simultanés sur l’interrogation interactive | 8 à 10 sur grand bassin |
| Heure de démarrage de la session | Le démarrage de la session de calcul Spark prend environ 5 à 6 minutes. Vous pouvez afficher les status de la session en bas de votre bloc-notes VS Code. |
| Bibliothèques prises en charge | Seules les bibliothèques Azure Synapse 3.4 et la bibliothèque Microsoft Sentinel Provider pour les fonctions abstraites sont prises en charge pour l’interrogation du lac de données. Les installations Pip ou les bibliothèques personnalisées ne sont pas prises en charge. |
| Limite de l'interface utilisateur de VS Code pour l'affichage des enregistrements | 100 000 lignes |
Résolution des problèmes
Pour connaître les erreurs et les solutions courantes lors de l’utilisation de notebooks, consultez Résoudre les problèmes liés aux notebooks sur le lac de données Microsoft Sentinel.
Contenu connexe
- Résoudre les problèmes liés aux notebooks sur le lac de données Microsoft Sentinel
- Créer et gérer des tâches de notebook
- Exemples de carnets pour le lac de données Microsoft Sentinel
- Informations de référence sur la classe Microsoft Sentinel Provider
- vue d’ensemble du lac de données Microsoft Sentinel
- Rôles et autorisations pour Microsoft Sentinel Data Lake