Créer des tables à partir de données CloudTrail
Définissez un schéma qui permet d'interroger directement les événements d'audit.
Créer des tables à partir de données CloudTrail est une leçon Cloud & IT Cert Prep gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Cloud & IT Cert Prep, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Cloud & IT Cert Prep comprend 4 leçons au total.
Pourquoi une table est nécessaire
Athena ne peut pas interroger les fichiers S3 bruts tant que vous ne lui avez pas indiqué comment les lire. Une table associe les fichiers JSON CloudTrail de votre compartiment S3 à des colonnes nommées et typées. Une fois la table créée, la structure riche des événements CloudTrail devient accessible avec du SQL ordinaire.
Structure des journaux CloudTrail
CloudTrail fournit les événements au format JSON, chaque enregistrement décrivant un appel d'API avec des champs imbriqués comme userIdentity, eventName, sourceIPAddress et requestParameters. Le schéma de la table doit reproduire cette imbrication, notamment au moyen de types struct pour les objets, afin que les requêtes puissent accéder à des champs comme userIdentity.arn.
Utiliser le DDL fourni par AWS
Vous n'avez pas besoin d'écrire le schéma vous-même. AWS publie une instruction CREATE TABLE standard pour CloudTrail, que la console CloudTrail et Athena peuvent générer pour vous. Utiliser le DDL fourni garantit que chaque champ, y compris les champs profondément imbriqués, est correctement mappé afin que vos requêtes ne manquent aucune donnée.
Le SerDe
Un SerDe (sérialiseur/désérialiseur) indique à Athena comment analyser chaque fichier. Les tables CloudTrail utilisent un SerDe conçu pour la structure JSON de CloudTrail, qui comprend le tableau de valeurs et les structures imbriquées. Choisir le bon SerDe est essentiel : un SerDe incorrect provoque des erreurs d'analyse ou des colonnes nulles.
ROW FORMAT SERDE
'com.amazon.emr.hive.serde.CloudTrailSerde'
STORED AS INPUTFORMAT
'com.amazon.emr.cloudtrail.CloudTrailInputFormat'Pointer vers l'emplacement S3
La clause LOCATION de la table pointe vers le préfixe S3 où CloudTrail stocke les journaux, généralement un chemin qui inclut l'ID du compte et la région. Il est important de définir correctement ce préfixe : s'il est trop large, vous analysez des données sans rapport ; s'il est trop étroit, vous manquez des événements que vous vouliez interroger.
Interroger des champs imbriqués
Une fois la table créée, vous interrogez les champs imbriqués avec la notation par points, par exemple userIdentity.arn ou requestParameters.bucketName. Les fonctions SQL vous aident à décomposer les tableaux et les chaînes JSON. C'est ici qu'Athena est particulièrement utile pour les investigations : vous pouvez filtrer précisément selon le nom de l'événement, le principal et les paramètres de n'importe quel appel d'API.
Les robots Glue comme solution alternative
Au lieu d'écrire manuellement le DDL, un robot AWS Glue peut analyser les données S3 et déduire automatiquement un schéma dans le catalogue de données. Pour les formats connus comme celui de CloudTrail, le DDL fourni est généralement plus propre, mais les robots sont utiles pour les formats de journaux personnalisés ou évolutifs lorsque vous préférez ne pas écrire le schéma manuellement.
Gérer les particularités de JSON
Le JSON de CloudTrail contient des champs qui sont eux-mêmes des chaînes JSON, comme requestParameters lorsque les valeurs varient selon le service. Vous les analysez souvent au moment de l'interrogation à l'aide de fonctions JSON. Savoir que certaines colonnes sont des chaînes à analyser, et non des colonnes préstructurées, évite toute confusion lorsqu'un champ ne se comporte pas comme une colonne normale.
Tables de journaux d'organisation
Pour un journal d'organisation, les journaux de tous les comptes sont placés dans un même compartiment, sous des préfixes propres à chaque compte. Vous pouvez créer une table unique sur l'ensemble du préfixe afin d'interroger tous les comptes en une seule fois, ou créer une table par compte pour les isoler. Une table unifiée est très utile pour rechercher des menaces à l'échelle de l'organisation avec une seule interrogation.
Vérifier la table
Après avoir créé la table, exécutez rapidement un SELECT avec un petit LIMIT pour vérifier que des lignes sont renvoyées et que les colonnes sont alimentées comme prévu. Si les colonnes sont nulles, le SerDe, l'emplacement ou le schéma est probablement incorrect. Cette vérification de cohérence vous évite de fonder vos investigations sur une table défectueuse sans que cela soit visible.
De la table à l'investigation
Une fois la table CloudTrail correcte, vous disposez d'une piste d'audit interrogeable couvrant tout l'historique enregistré. Chaque connexion à la console, chaque appel d'API et chaque erreur constitue désormais une ligne que vous pouvez filtrer et agréger. Cette table est la base des interrogations liées aux incidents que vous allez écrire ensuite.
Vérification rapide
Testez vos connaissances sur la création de tables.
Récapitulatif
Pour interroger CloudTrail dans Athena, vous créez une table qui associe les fichiers JSON à des colonnes, en utilisant le CREATE TABLE DDL fourni par AWS, le bon SerDe et le bon LOCATION S3. Interrogez les champs imbriqués avec la notation par points, analysez les colonnes contenant des chaînes JSON au moment de l'interrogation et vérifiez le résultat avec un petit SELECT. Un journal d'organisation peut être regroupé dans une seule table pour rechercher des menaces à l'échelle de l'organisation.
Questions Fréquemment Posées
La leçon « Créer des tables à partir de données CloudTrail » est-elle gratuite ?
Oui — le texte complet de « Créer des tables à partir de données CloudTrail » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Cloud & IT Cert Prep, passe à CoddyKit PRO. Le cours Cloud & IT Cert Prep comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Créer des tables à partir de données CloudTrail » ?
Définissez un schéma qui permet d'interroger directement les événements d'audit. Tu pratiques Cloud & IT Cert Prep avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Cloud & IT Cert Prep ?
Aucune expérience préalable n'est requise. Cloud & IT Cert Prep sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.
Combien de temps prend la leçon « Créer des tables à partir de données CloudTrail » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Cloud & IT Cert Prep ?
Oui. Chaque leçon Cloud & IT Cert Prep inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Interroger les journaux S3 avec Athena
- Créer des tables à partir de données CloudTrail
- Enquêter sur les incidents avec des requêtes SQL
- Partitionner les journaux pour gagner en rapidité et en coût