Aller au contenu principal

Créer et gérer des sources de données

info

Aperçu

Lakewatch est en aperçu privé. Pour demander l'accès, contactez l'équipe de votre compte Databricks.

Cette page explique les composants d'une source de données et vous apprend à créer et à gérer des sources de données dans l'interface utilisateur. Une source de données est un pipeline configuré qui ingère des données de sécurité brutes et les écrit dans des tables Unity Catalog schématisées et régies, prêtes pour l'analyse de sécurité. Une source de données combine une méthode d'ingestion avec un ou plusieurs analyseurs .

Méthodes d'importation​

Une méthode d'importation définit la manière dont une source de données LakeWatch extrait les données de sécurité brutes, selon leur emplacement. Chaque méthode possède son propre flux de création, mais toutes aboutissent dans une couche brute où les analyseurs normalisent ensuite les données.

Lakewatch propose trois méthodes d'ingestion :

  • Cloud storage: ingérez des fichiers à partir d’un stockage d’objets pris en charge (Amazon S3, Azure Data Lake Storage ou Google Cloud Storage) via un volume Unity Catalog ou un emplacement externe. Lakewatch lit la source avec Auto Loader, récupérant les nouveaux fichiers dès leur arrivée.
  • Table existante: ingérez une table ou une vue Delta du Unity Catalog qui existe déjà dans votre workspace. Lakewatch lit la source directement et exécute les parsers attachés dessus, au lieu de copier les données.
  • Connecteurs d'API: ingèrent des données de sécurité à partir d'applications SaaS via des connecteurs gérés régis par des connexions Unity Catalog. Tous les connecteurs d'API sont associés à des analyseurs prédéfinis.
remarque

Une méthode d'ingestion sert à analyser et à normaliser une source dans les tables analysées Lakewatch. Si une table Unity Catalog est déjà prête pour l'interrogation, vous n'avez pas besoin de l'ingérer : vous pouvez exécuter des queries et écrire des règles de détection directement sur celle-ci.

Parsers​

Les analyseurs schématisent les données ingérées en tables analysées. Chaque analyseur décrit les colonnes de sortie d’une source de journal et écrit une table analysée avec les colonnes lw_id, lw_meta et lw_observables gérées par Lakewatch.

Sélectionnez un ou plusieurs analyseurs lors du flux de création de la source de données. Vous pouvez sélectionner un analyseur intégré correspondant à votre source, personnaliser un analyseur intégré ou créer un analyseur à partir de zéro.

Lorsque la source de données s’exécute, chaque événement entrant est comparé aux analyseurs joints dans l’ordre dans lequel ils sont déclarés et aboutit au premier analyseur auquel il correspond. Un événement correspond lorsque ses champs requis sont présents, que ses champs typés sont convertis en types déclarés et que tous les validateurs réussissent. Pour les règles de correspondance et le format complet du parser syntaxique, consultez la Référence du parser syntaxique.

remarque

Lorsque vous prévisualisez la sortie analysée pendant la création d’une source de données, lw_meta.datasource_name apparaît comme nul. Une source de données n'est pas nommée avant que vous ne la créiez, Lakewatch ne renseigne donc datasource_name qu'après la création et l'exécution de la source de données.

Créer une source de données​

Allez dans Sources de données et cliquez sur Ajouter une source de données . Vous verrez un sélecteur qui demande « Quelles données voulez-vous intégrer ? ». Sélectionnez une carte de connecteur intégrée pour une source SaaS, ou sélectionnez Source de données personnalisée et choisissez un Type de source . Les méthodes d’importation sont les suivantes :

  • Stockage cloud: fichiers dans Amazon S3, Azure Data Lake Storage ou Google Cloud Storage.
  • Table existante: une table Delta ou une vue du Unity Catalog déjà présente dans votre Workspace.
  • Connecteurs d’API: applications SaaS, via des connecteurs gérés.

Gérer les sources de données existantes​

Pour gérer une source de données, ouvrez-la depuis Sources de données . La page de détails contient trois tab :

  • Vue d'ensemble : description de la source de données, exécutions récentes, connexion, statistiques d'ingestion, analyseurs joints et paramètres modifiables (programme de traitement, identité d'exécution, compute et annotations). Modifiez un paramètre en le sélectionnant, en ajustant les valeurs et en cliquant sur Terminé ; ajoutez ou modifiez des analyseurs à partir de la section Analyseurs .
  • Erreurs système : les erreurs système soulevées pour cette source de données, chacune répertoriée avec son titre, son état, sa gravité, son responsable, le nombre d’événements et la date de création. Recherchez par titre, description ou commentaires et filtrez par état. Sélectionnez le titre d’une erreur pour ouvrir sa page de détails.
  • Autorisations : privilèges Unity Catalog accordés sur la source de données. Utilisez Accorder et Révoquer pour gérer l'accès.

Depuis le menu de dépassement ( ⋮ ), vous pouvez modifier la source de données en tant que YAML et supprimer la source de données. La suppression est la seule façon d’arrêter une source de données en cours d’exécution ; elle supprime définitivement la source de données, mais les tables déjà écrites ne sont pas supprimées.

Modifier les paramètres de la source de données​

Dans le tab Vue d’ensemble, vous pouvez modifier les paramètres suivants :

  • Planification du traitement : Fréquence d’exécution du job d’ingestion de la source de données. Les nouvelles sources de données sont programmées default toutes les 10 minutes.

    • Au moins toutes les [unité de temps] : s'exécute à un intervalle spécifié.
    • Exactement à [heure] : s’exécute selon un calendrier exact. Créez-la avec le sélecteur visuel, ou sélectionnez Afficher la syntaxe Cron et saisissez une expression Cron Quartz. Une expression non valide affiche Entrez une expression Cron Quartz valide et empêche l'enregistrement.
    • Continu : ingère les nouvelles données en boucle dès qu'elles arrivent pour une exécution d'environ 30 minutes, puis re-Trigger immédiatement une nouvelle exécution.
    • Connecteurs API : non applicable. Les sources de données de connecteur API s'exécutent selon un calendrier géré que vous ne pouvez pas modifier.
  • Compute : comment l'ingestion de la source de données est regroupée sur le compute, sous Regroupement de jobs :

    • Automatique (default) : l'ingestion peut être combinée avec d'autres jobs traitant les mêmes données afin d'optimiser les coûts de compute.
    • Dédié : L’ingestion s’exécute avec des ressources dédiées.
    • Groupe de job : l'ingestion s'exécute avec d'autres jobs dans un groupe nommé que vous saisissez. La modification des groupes réinitialise les points de contrôle. Le traitement reprendra donc à partir de l’heure actuelle.
  • Annotations : paires clé-valeur appliquées en tant que tags à la source de données.

Définir l’identité d’exécution​

Chaque source de données possède une identité d’exécution : l’utilisateur ou le service principal que Lakewatch utilise pour lire la source, utiliser les identifiants configurés et écrire les tables brutes et analysées. Cette identité est définie lors de la création et peut être modifiée après la création à partir de la page des détails.

  • default : si vous ne choisissez pas d'identité lors de la création de la source de données, l'identité « exécuter en tant que » sera la vôtre default.
  • Choix d’un Service Principal : Pour exécuter un processus en tant que Service Principal, vous devez disposer du rôle Utilisateur Service Principal sur ce Service Principal . Un rôle accordé par l'appartenance à un groupe est actif même si la page de détails du service principal affiche uniquement les rôles directement attribués. Voir Gérer les Service Principal.
  • Réattribution : vous pouvez modifier l’identité d’exécution lorsque vous modifiez la source de données. Lakewatch revalide l’accès à la source et aux identifiants en tant que nouvelle identité lorsque vous enregistrez la modification.

Parce que Lakewatch valide et exécute la source de données en tant que cette identité, l’identité d’exécution doit détenir toutes les autorisations dont la source de données a besoin :

  • Lire la source : l’accès nécessaire dépend de la méthode d’ingestion. Par exemple, l'identité utilisée pour l'exécution a besoin de READ FILES pour un emplacement externe et de READ VOLUME sur un volume pour le stockage cloud. Consultez la page de votre méthode d’ingestion pour connaître l’accès spécifique dont elle a besoin.
  • Utilisez des identifiants configurés : l'identité d'exécution nécessite le privilège ACCESS sur les identifiants de service Unity Catalog, ou l'accès en lecture au Secret Scope AWS, lorsqu'il est configuré.
  • Écrire les tables de sortie : l'identité « run-as » nécessite USE CATALOG, USE SCHEMA et CREATE TABLE sur chaque schéma où Lakewatch crée les tables brutes et analysées.

Lakewatch n'accorde pas automatiquement à l'identité d'exécution l'accès à vos schémas ou tables de destination. Accordez cet accès avant d’attacher cette identité à la source de données.

Modifier les parsers sur une source de données​

La façon dont vous modifiez les analyseurs dépend de la méthode d’ingestion :

  • Les sources de données du connecteur API ne prennent pas en charge la modification des analyseurs après la création. Pour utiliser différents analyseurs, recréez la source de données. La modification d'un analyseur reconstruirait le pipeline d'ingestion géré et recréerait les tables de la source de données ; la modification de l'analyseur est donc désactivée sur ces sources de données.
  • Le stockage cloud et les sources de données de table existantes vous permettent de modifier les analyseurs en ligne. Ouvrez la source de données, apportez vos modifications et cliquez sur Enregistrer .

Pour les sources de données de stockage cloud et de table existante :

  • Ajouter un analyseur : attachez un autre analyseur intégré ou créé. Les événements entrants sont comparés aux analyseurs attachés dans l’ordre de déclaration. Un analyseur nouvellement ajouté prend donc effet pour les événements qui ne correspondent pas à un analyseur précédent. Le nouvel analyseur commence à partir d’un point récent et retraite les données brutes à partir de là ; les analyseurs déjà attachés conservent leur place et ne sont pas retraités. Voir Attacher des analyseurs.
  • Supprimer un analyseur : détachez un analyseur dont vous n’avez plus besoin. Les nouveaux événements ne sont plus écrits dans la table analysée de cet analyseur, et la table analysée précédemment écrite n’est pas supprimée. Supprimez-la séparément dans Unity Catalog si vous n’avez plus besoin des données. Comme la suppression d’un analyseur modifie la façon dont les événements entrants sont acheminés, les analyseurs restants retraitent les données brutes récentes, ce qui peut produire des lignes en double dans leurs tables analysées.
  • Réorganiser les analyseurs : Les analyseurs correspondent à l'ordre de déclaration ; les réorganiser modifie donc le routage de la même manière que l'ajout ou la suppression. La source de données retraite les données brutes récentes, ce qui peut produire des lignes en double dans les tables analysées concernées.
  • Modifier la version d'un analyseur : Une source de données pin une version spécifique de l'analyseur, afin qu'elle ne soit pas affectée par les modifications ultérieures apportées à l'analyseur. Pour adopter une version plus récente, sélectionnez-la lors de la modification de la source de données. Un changement de version ne retraite pas les données existantes ; la nouvelle version s’applique aux événements ingérés après l’enregistrement du changement.
  • Modifier la destination analysée : vous pouvez modifier la table dans laquelle un analyseur écrit. Choisissez un nom de destination qui ne crée pas de conflit avec une table existante. Les données déjà écrites dans l’ancienne table ne sont pas déplacées.

Résoudre les erreurs de source de données​

La page de présentation de la source de données récapitule l' historique des exécutions récentes de chaque source de données, son nombre d' erreurs , ses statistiques d'événements (enregistrements traités au cours des 7 derniers jours et des 24 dernières heures) et une tendance sur 7 jours . Pour voir les détails de l'exécution sous-jacente, ouvrez la source de données et cliquez sur Afficher le job pour atteindre l'exécution du job Databricks, où vous pourrez inspecter l'historique d'exécution, le statut de chaque exécution et les logs.

Lorsqu’une exécution de source de données échoue, Lakewatch enregistre l’échec en tant qu’ événement système associé à une erreur système, qui identifie la source de données affectée et inclut le message d’erreur. Utilisez l’erreur système avec Voir le job pour voir quelle phase a échoué (par exemple : une erreur de pipeline). Pour obtenir la liste complète des Trigger liés aux sources de données, consultez la section Qu’est-ce qui déclenche les événements système ?.

Si l’identité d’exécution de la source de données perd l’accès en lecture à la source, les exécutions échouent et le nombre d’ Erreurs de la source de données augmente.

Pour récupérer :

  1. Restaurer l'accès de l'identité « Exécuter en tant que » à la source. Si vous conservez la même identité « Exécuter en tant que », aucune modification de configuration n'est nécessaire. La prochaine exécution planifiée prendra en compte l'accès restauré.
  2. Si vous réattribuez la source de données à une autre identité d'exécution ou si vous modifiez un autre paramètre, modifiez la source de données en ligne et cliquez sur Enregistrer .
  3. Confirmez la récupération dans Voir le job ou les erreurs système. Une fois les exécutions réussies reprises, les erreurs sont effacées.