Interroger des journaux de flux à l'aide d'Amazon Athena - Amazon Virtual Private Cloud

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Interroger des journaux de flux à l'aide d'Amazon Athena

Amazon Athena est un service de requête interactif vous permet d'analyser des données dans Amazon S3, telles que vos journaux de flux, à l'aide du langage SQL standard. Vous pouvez utiliser Athena avec les journaux de flux VPC pour obtenir rapidement des informations exploitables concernant le trafic qui passe par votre VPC. Par exemple, vous pouvez identifier les ressources de vos Virtual Private Clouds (VPC) qui sont les principaux interlocuteurs ou identifier les adresses IP avec les connexions TCP les plus rejetées.

Options
  • Vous pouvez rationaliser et automatiser l'intégration de vos journaux de flux VPC à Athena en générant un CloudFormation modèle qui crée les AWS ressources requises et des requêtes prédéfinies que vous pouvez exécuter pour obtenir des informations sur le trafic circulant dans votre VPC.

  • Vous pouvez créer vos propres requêtes à l'aide d'Athena. Pour de plus amples d'informations, veuillez consulter Interroger des journaux de flux à l'aide d'Amazon Athena dans le Guide de l'utilisateur Amazon Athena.

Tarification

Vous encourez des frais Amazon Athena standard pour l'exécution des requêtes. Vous encourez des frais AWS Lambda standard pour la fonction Lambda qui charge de nouvelles partitions selon un calendrier récurrent (lorsque vous spécifiez une fréquence de chargement de partition et que vous ne spécifiez pas de dates de début et de fin).

Générer le CloudFormation modèle à l'aide de la console

Une fois les premiers journaux de flux envoyés dans votre compartiment S3, vous pouvez les intégrer à Athena en générant un CloudFormation modèle et en utilisant le modèle pour créer une pile.

Prérequis
  • La région sélectionnée doit prendre en charge AWS Lambda Amazon Athena.

  • Les compartiments Amazon S3 doivent se trouver dans la région sélectionnée.

  • Le format d'enregistrement du journal de flux doit inclure les champs utilisés par les requêtes prédéfinies spécifiques que vous souhaitez exécuter.

Pour générer le modèle à l'aide de la console
  1. Effectuez l'une des actions suivantes :

    • Ouvrez la console Amazon VPC. Dans le panneau de navigation, sélectionnez Your VPCs (Vos VPC) et sélectionnez votre VPC.

    • Ouvrez la console Amazon VPC. Dans le panneau de navigation, sélectionnez Subnets (Sous-réseaux), puis sélectionnez votre sous-réseau.

    • Ouvrez la console Amazon EC2. Dans le volet de navigation, sélectionnez Network Interfaces (Interfaces réseau), puis sélectionnez votre interface réseau.

  2. Dans l'onglet Flow logs (Journaux de flux), sélectionnez un journal de flux qui publie dans Amazon S3, puis choisissez Actions, Generate Athena integration (Générer l'intégration Athena).

  3. Spécifiez la fréquence de chargement de la partition. Si vous choisissez None (Aucun), vous devez spécifier les dates de début et de fin de partition, en utilisant des dates dans le passé. Si vous choisissez Daily (Tous les journaux), Weekly (Toutes les semaines) ou Monthly (Tous les mois), les dates de début et de fin de la partition sont facultatives. Si vous ne spécifiez aucune date de début et de fin, le CloudFormation modèle crée une fonction Lambda qui charge de nouvelles partitions selon un calendrier récurrent.

  4. Sélectionnez ou créez un compartiment S3 pour le modèle généré et un compartiment S3 pour les résultats de la requête.

  5. Choisissez Generate Athena integration (Générer l'intégration Athena).

  6. (Facultatif) Dans le message de réussite, cliquez sur le lien pour accéder au compartiment que vous avez spécifié pour le CloudFormation modèle et personnalisez le modèle.

  7. Dans le message de réussite, choisissez Create CloudFormation stack pour ouvrir l'assistant Create Stack dans la AWS CloudFormation console. L'URL du CloudFormation modèle généré est spécifiée dans la section Modèle. Exécutez l'assistant pour créer les ressources spécifiées dans le modèle.

Ressources créées par le CloudFormation modèle
  • Une base de données Athena. Le nom de la base de données est vpcflowlogsathenadatabase<flow-logs-subscription-id>.

  • Un groupe de travail Athéna. Le nom du groupe de travail est <flow-log-subscription-id><partition-load-frequency><start-date><end-date>workgroup

  • Un tableau Athena partitionné qui correspond à vos enregistrements de journaux de flux. Le nom du tableau est <flow-log-subscription-id><partition-load-frequency><start-date><end-date>.

  • Un ensemble de requêtes nommées Athena. Pour plus d'informations, consultez Requêtes prédéfinies.

  • Une fonction Lambda qui charge de nouvelles partitions dans le tableau conformément à la fréquence spécifiée (quotidienne, hebdomadaire ou mensuelle).

  • Un rôle IAM qui accorde l'autorisation d'exécuter les fonctions Lambda.

Générez le CloudFormation modèle à l'aide du AWS CLI

Une fois les premiers journaux de flux envoyés dans votre compartiment S3, vous pouvez générer et utiliser un CloudFormation modèle à intégrer à Athena.

Utilisez la commande get-flow-logs-integration-template suivante pour générer le modèle. CloudFormation

aws ec2 get-flow-logs-integration-template --cli-input-json file://config.json

Voici un exemple du fichier config.json.

{ "FlowLogId": "fl-12345678901234567", "ConfigDeliveryS3DestinationArn": "arn:aws:s3:::my-flow-logs-athena-integration/templates/", "IntegrateServices": { "AthenaIntegrations": [ { "IntegrationResultS3DestinationArn": "arn:aws:s3:::my-flow-logs-analysis/athena-query-results/", "PartitionLoadFrequency": "monthly", "PartitionStartDate": "2021-01-01T00:00:00", "PartitionEndDate": "2021-12-31T00:00:00" } ] } }

Utilisez la commande create-stack suivante pour créer une pile à l'aide du modèle généré CloudFormation .

aws cloudformation create-stack --stack-name my-vpc-flow-logs --template-body file://my-cloudformation-template.json

Exécuter une requête prédéfinie

Le CloudFormation modèle généré fournit un ensemble de requêtes prédéfinies que vous pouvez exécuter pour obtenir rapidement des informations pertinentes sur le trafic de votre AWS réseau. Après avoir créé la pile et vérifié que toutes les ressources ont été créées correctement, vous pouvez exécuter l'une des requêtes prédéfinies.

Pour exécuter une requête prédéfinie à l'aide de la console
  1. Ouvrez la console Athena.

  2. Dans le panneau de navigation de gauche, choisissez Query Editor (Éditeur de requête). Sous Groupe de travail, sélectionnez le groupe de travail créé par le CloudFormation modèle.

  3. Sélectionnez Saved queries (Requêtes enregistrées), sélectionnez une requête, modifiez les paramètres selon vos besoins, puis exécutez la requête. Pour obtenir la liste des requêtes prédéfinies disponibles, consultez la section Requêtes prédéfinies.

  4. Sous Query results (Résultats de requête), consultez les résultats de la requête.

Requêtes prédéfinies

Vous trouverez ci-dessous la liste complète des requêtes nommées Athena. Les requêtes prédéfinies fournies lorsque vous générez le modèle varient en fonction des champs qui font partie du format d'enregistrement du journal de flux. Par conséquent, le modèle peut ne pas contenir toutes ces requêtes prédéfinies.

  • VpcFlowLogsAcceptedTrafic : connexions TCP autorisées en fonction de vos groupes de sécurité et de vos ACL réseau.

  • VpcFlowLogsAdminPortTraffic— Les 10 adresses IP les plus fréquentées, telles qu'elles sont enregistrées par les applications qui répondent aux demandes sur les ports administratifs.

  • VpcFlowLogsIPv4Traffic — Nombre total d'octets de trafic IPv4 enregistrés.

  • VpcFlowLogsIPv6Traffic — Nombre total d'octets du trafic IPv6 enregistrés.

  • VpcFlowLogsRejectedTCPTraffic : connexions TCP rejetées en fonction de vos groupes de sécurité ou de vos ACL réseau.

  • VpcFlowLogsRejectedTrafic : trafic rejeté en fonction de vos groupes de sécurité ou de vos ACL réseau.

  • VpcFlowLogsSshRdpTraffic— Le trafic SSH et RDP.

  • VpcFlowLogsTopTalkers — Les 50 adresses IP ayant enregistré le plus de trafic.

  • VpcFlowLogsTopTalkersPacketNiveau — Les 50 adresses IP au niveau des paquets ayant enregistré le plus de trafic.

  • VpcFlowLogsTopTalkingInstances— Les identifiants des 50 instances ayant enregistré le plus de trafic.

  • VpcFlowLogsTopTalkingSubnets— Les identifiants des 50 sous-réseaux ayant enregistré le plus de trafic.

  • VpcFlowLogsTopTCPTraffic — Tout le trafic TCP enregistré pour une adresse IP source.

  • VpcFlowLogsTotalBytesTransferred— Les 50 paires d'adresses IP source et de destination avec le plus grand nombre d'octets enregistrés.

  • VpcFlowLogsTotalBytesTransferredPacketLevel— Les 50 paires d'adresses IP source et de destination au niveau des paquets avec le plus grand nombre d'octets enregistrés.

  • VpcFlowLogsTrafficFrmSrcAddr — Le trafic enregistré pour une adresse IP source spécifique.

  • VpcFlowLogsTrafficToDstAddr — Le trafic enregistré pour une adresse IP de destination spécifique.