Utilisez des sources de données fédérées dans Microsoft Sentinel (Aperçu)

Après avoir configuré des connecteurs de données fédérés, vous pouvez accéder à vos tables fédérées via plusieurs interfaces dans Microsoft Sentinel. Les tables fédérées sont utilisées de la même façon que les autres tables de lac de données. Cet article explique comment afficher des tables fédérées, les interroger à l’aide de KQL (Langage de requête Kusto) et les utiliser dans des notebooks Jupyter.

Prérequis

Avant de commencer, assurez-vous que :

Comprendre le nommage des tables fédérées

Les noms de tables fédérées suivent le modèle <tableName>_<connectorInstanceName>. Par exemple :

Nom de la table d’origine Nom de l’instance du connecteur Nom de la table fédérée
widgets ADLS01 widgets_ADLS01
sales_data AzureDBX01 sales_data_AzureDBX01
inventory Fabric01 inventory_Fabric01

Si plusieurs tables dans le connecteur instance ont le même nom de table, un identificateur numérique est ajouté au nom instance connecteur, par exemple widgets_ADLS01_1 lorsque deux tables au sein du ADLS01 connecteur instance sont appelées widgets.

Utilisez le nom de la table fédérée lors de l’interrogation de données à partir du lac de données Sentinel.

Afficher les tables fédérées dans la gestion des tables

La vue gestion des tables fournit une vue d’ensemble de toutes les tables de votre lac de données Sentinel, y compris les tables fédérées.

  1. Accédez à Microsoft Sentinel>Configuration>Tables.
  2. Sélectionnez le filtre Type .
  3. Sélectionnez Fédéré, puis Appliquer.

Capture d’écran montrant la vue de gestion des tables filtrée pour afficher les tables fédérées.

Afficher les détails de la table

Sélectionnez une ligne de tableau pour ouvrir le panneau d’informations. Le panneau détails du tableau contient trois onglets :

Tab Description
Vue d’ensemble Informations de base sur la table fédérée, notamment le type de source et le status de connexion.
Sources de données Affiche les instances de connecteur qui fournissent des données pour cette table.
Schéma Affiche les colonnes, les types de données et les descriptions des colonnes de la table. Les utilisateurs disposant des autorisations nécessaires pour écrire dans les tables système du lac de données peuvent sélectionner Actualiser le schéma pour mettre à jour les colonnes et d’autres métadonnées de schéma à partir de la source.

Capture d’écran montrant le volet des détails de la table fédérée avec les onglets Vue d’ensemble, Sources de données et Schéma.

Interroger des tables fédérées à l’aide de KQL

La page requêtes KQL dans Microsoft Sentinel vous permet d’interroger des tables fédérées avec des données Sentinel natives. Les tables fédérées sont prises en charge pour les travaux KQL, les requêtes interactives et asynchrones et les outils MCP.

  1. Accédez à Microsoft Sentinel>Exploration du lac de données>Requêtes KQL.

  2. Sélectionnez le bouton Espace de travail sélectionné dans la barre d’informations.

  3. Sélectionnez Tables système comme espace de travail.

  4. Sous l’onglet Schéma , développez la section Tables système .

  5. Développez la section Tables fédérées .

  6. Recherchez le type de fédération pour votre source de données, par exemple Microsoft Fabric, Azure Databricks ou Azure Data Lake Storage Gen2.

  7. Développez le type de fédération pour afficher vos tables fédérées.

  8. Développez une table pour afficher ses colonnes.

Remarque

En raison de l’optimisation des performances des requêtes dans KQL, la mise à disposition de nouvelles données dans une table fédérée peut prendre jusqu’à 15 minutes.

Capture d’écran montrant l’onglet schéma des requêtes KQL avec des tables fédérées développées.

Écrire et exécuter des requêtes

Les requêtes sur des tables fédérées fonctionnent comme des requêtes sur des tables de lac natives avec quelques différences importantes :

  • Il est possible qu’une modification se produise dans le schéma d’une table dans la source externe. Cela peut entraîner un échec lors d’une requête qui indique qu’une colonne n’est pas présente. Actualisez les colonnes de la page Gestion des tables en sélectionnant la table fédérée, en sélectionnant l’onglet Schéma et en sélectionnant Actualiser le schéma.

  • Les tables fédérées sans TimeGenerated colonne ou lorsqu’une TimeGenerated colonne est présente avec des données au format incorrect ne peuvent pas être utilisées dans Data Lake Explorer pour sélectionner des intervalles de temps à l’aide du sélecteur de temps dans l’interface utilisateur. Définissez des filtres de date dans le corps du KQL qui correspondent au format de date de votre table fédérée.

Créer des travaux KQL à partir de requêtes fédérées

Vous pouvez créer des travaux KQL basés sur des requêtes qui utilisent des tables fédérées :

  1. Écrivez et testez votre requête KQL à l’aide de tables fédérées.
  2. Sélectionnez le bouton Créer un travail dans le coin supérieur droit du volet de requête.
  3. Configurez les paramètres du travail, y compris la planification et la destination de sortie.
  4. Enregistrez la tâche.

Remarque

  • L’écriture de données dans une table fédérée n’est pas prise en charge. La sortie KQL est créée selon les mêmes critères qu’aujourd’hui lors de la création d’une tâche KQL, et peut écrire les résultats dans une table nouvelle ou existante en fonction de la destination sélectionnée.

  • Si les tables fédérées ne contiennent pas de colonnes TimeGenerated, ou si votre sortie ne contient pas de colonne TimeGenerated avec une valeur de date au format correct pour chaque ligne, les requêtes KQL ne fonctionneront pas sur cette table une fois qu’elle aura été créée dans le lac de données.

Les tables fédérées sont entièrement prises en charge pour les travaux KQL, les requêtes asynchrones et les outils MCP.

Créer un outil MCP avec des requêtes de table fédérées

Vous pouvez créer des outils MCP basés sur des requêtes qui utilisent des tables fédérées :

  1. Écrivez et testez votre requête KQL à l’aide de tables fédérées.

  2. Sélectionnez le bouton Enregistrer sous au-dessus de l’éditeur de requête.

  3. Ajustez la requête en fonction des besoins, par exemple paramétrer des valeurs.

  4. Pour toute référence d’une table fédérée, veillez à préfixer le nom de la table avec workspace("default").. Par exemple, si votre table était widgets_ADLS01, votre code s’affiche workspace("default").widgets_ADLS01 pour cette table.

  5. Enregistrez l’outil.

Utiliser des tables fédérées dans les notebooks Jupyter

Les tables fédérées sont accessibles dans les notebooks Jupyter via l’extension VS Code Microsoft Sentinel.

Dans l’extension Microsoft Sentinel pour VS Code, les tables fédérées apparaissent sous les éléments suivants : Tables du lac>Tables système>Tables fédérées

Capture d’écran montrant des tables fédérées dans l’extension Microsoft Sentinel VS Code sous Tables système Tables fédérées.

L’utilisation de tables fédérées dans les notebooks Jupyter suit les mêmes modèles que les tables système natives :

  1. Utilisez le nom complet de la table : Référencez les tables au <tableName>_<connectorInstance> format .
  2. Ne spécifiez pas de nom d’espace de travail : les opérations de lecture ne nécessitent pas de spécification d’espace de travail.
  3. Accès en lecture seule : les tables fédérées sont en lecture seule ; vous ne pouvez pas réécrire des données dans des sources fédérées.

Remarque

Après avoir activé la fédération des données la première fois, il peut s’agir d’un délai de 24 heures avant que les tables fédérées ne s’affichent dans les notebooks Jupyter.

Tâches de Jupyter Notebook

Il est possible de créer des tâches Jupyter Notebook planifiées exploitant des tables fédérées, selon le même principe que pour des tables natives du lac de données :

  1. Développez votre notebook avec des requêtes de table fédérée.
  2. Testez le notebook pour vous assurer que les requêtes fédérées s’exécutent correctement.
  3. Créez un travail à partir du notebook.
  4. Configurez la planification et les paramètres du travail.

Remarque

Les tâches Notebook ne peuvent écrire que vers des espaces de travail Sentinel ou des tables système en tant que cibles. Vous ne pouvez pas écrire de données dans une table fédérée.

Meilleures pratiques

Suivez ces recommandations d’optimisation des requêtes, de stratégie de jointure et de gestion des erreurs pour obtenir les meilleures performances des tables fédérées.

Optimisation des requêtes

Utilisez les pratiques suivantes pour améliorer les performances des requêtes fédérées.

  • Appliquer les filtres à l’avance : filtrez les données à la source si possible pour réduire le transfert de données.
  • Limiter les jeux de résultats : utilisez les clauses take ou limit pendant le développement.
  • Utiliser des projections : sélectionnez uniquement les colonnes dont vous avez besoin pour améliorer les performances.

Exemple : Requête optimisée

La requête suivante illustre le filtrage précoce d’un jeu de données fédéré volumineux pour réduire le volume de données et sélectionner uniquement les colonnes nécessaires pour améliorer les performances des requêtes.

large_dataset_adls_connector
| where EventTime >= ago(1h)           // Filter early
| where EventType == "Login"           // Reduce data volume
| project EventTime, UserId, SourceIP  // Select needed columns
| take 10000                           // Limit results

Stratégies de jointure

Utilisez les bonnes pratiques suivantes en matière de performances des requêtes lors de la jointure de tables fédérées et natives.

  • Utilisez les types de jointures appropriés : choisissez inner, leftouterou rightouter en fonction de vos besoins.
  • Filtrer avant la jointure : réduisez le volume de données avant les opérations de jointure.
  • Tenez compte des tailles de données : placez la table la plus petite sur le côté droit de la jointure.

Gestion des erreurs

Tenez compte des pratiques suivantes pour diagnostiquer et gérer les problèmes courants de requête fédérée.

  • Vérifier les status de connexion : vérifiez que les instances de connecteur fédéré sont connectées avant l’interrogation.
  • Gérer les valeurs nulles : les données externes peuvent contenir des valeurs nulles inattendues ; utilisez les fonctions coalesce() ou isnull().
  • Surveiller les performances des requêtes : suivez les temps d’exécution des requêtes fédérées afin d’identifier les problèmes de performances.

Résolution des problèmes

La requête ne retourne aucun résultat

  • Vérifiez que le connecteur instance est dans un état connecté.
  • Vérifiez que la source de données externe est disponible, ainsi que les tables ciblées dans la requête.
  • Assurez-vous que les autorisations du principal de service ou de l’identité gérée par Sentinel n’ont pas été révoquées en fonction de la source de données visées.
  • Vérifiez que vous utilisez le format de nom de table fédéré correct.
  • Vérifiez que les tables système sont disponibles dans le volet de navigation pour vos requêtes KQL ou votre session notebook.

La requête est lente

  • Appliquez des filtres pour réduire le volume de données interrogés à partir de sources externes.
  • Vérifiez les performances et la disponibilité de la source externe.
  • Envisagez de créer des tables récapitulatives pour les données fréquemment consultées.

Incompatibilité de schéma

  • Passez en revue le schéma de table dans la vue gestion des tables.
  • Ajustez votre requête pour gérer les différences de schéma.
  • Vérifiez si le schéma de table externe a changé depuis la création du connecteur.

Impossible d’exécuter des outils MCP pour les tables fédérées

Veillez à faire précéder le nom de la table de workspace("default"). chaque fois que vous faites référence à une table fédérée dans l’outil MCP.