Comment puis-je utiliser Amazon Athena pour analyser les journaux de flux VPC ?
Je souhaite utiliser Amazon Athena pour analyser mes journaux de flux Amazon Virtual Private Cloud (Amazon VPC).
Brève description
Utilisez Amazon VPC Flow Logs pour analyser les modèles de trafic réseau et identifier les menaces et les risques qui pèsent sur votre réseau Amazon VPC.
Résolution
Utiliser Athena pour analyser les journaux de flux Amazon VPC
Pour utiliser Athena afin d’analyser les journaux de flux Amazon VPC, procédez comme suit :
-
Utilisez l’éditeur de requêtes de la console Amazon Athena pour exécuter la commande suivante afin de créer une base de données. Remplacez test_db_vpclogs par le nom de votre base de données :
CREATE DATABASE test_db_vpclogs;
Important : il est recommandé de créer la base de données dans la même région AWS que le compartiment Amazon Simple Storage Service (Amazon S3) dans lequel les journaux de flux sont stockés.
-
Dans la base de données, exécutez la commande suivante pour créer une table pour les journaux de flux VPC. Remplacez test_table_vpclogs par le nom de votre table. Modifiez également le paramètre EMPLACEMENT pour qu’il pointe vers le compartiment Amazon S3 qui contient les données de votre journal :
CREATE EXTERNAL TABLE `test_table_vpclogs`( `version` int, `account_id` string, `interface_id` string, `srcaddr` string, `dstaddr` string, `srcport` int, `dstport` int, `protocol` bigint, `packets` bigint, `bytes` bigint, `start` bigint, `end` bigint, `action` string, `log_status` string, `vpc_id` string, `subnet_id` string, `instance_id` string, `tcp_flags` int, `type` string, `pkt_srcaddr` string, `pkt_dstaddr` string, `az_id` string, `sublocation_type` string, `sublocation_id` string, `pkt_src_aws_service` string, `pkt_dst_aws_service` string, `flow_direction` string, `traffic_path` int) PARTITIONED BY ( `region` string, `day` string) ROW FORMAT DELIMITED FIELDS TERMINATED BY ' ' STORED AS INPUTFORMAT 'org.apache.hadoop.mapred.TextInputFormat' OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat' LOCATION 's3://awsexamplebucket/awsexampleprefix/awsexamplelogs/1111222233334444/vpcflowlogs/' TBLPROPERTIES ( 'projection.day.format'='yyyy/MM/dd', 'projection.day.range'='2021/01/01,NOW', 'projection.day.type'='date', 'projection.enabled'='true', 'projection.region.type'='enum', 'projection.region.values'='us-east-1,us-west-2,ap-south-1,eu-west-1', 'skip.header.line.count'='1', 'storage.location.template'='s3://awsexamplebucket/awsexampleprefix/awsexamplelogs/1111222233334444/vpcflowlogs/${region}/${day}' )
Remarque : la commande précédente utilise la projection de partition pour créer une table, la partitionner et remplir automatiquement les partitions. Si aucune partition projetée n’existe dans Amazon S3, Athena projette toujours la partition. Il est recommandé d’utiliser des attributs partitionnés dans vos requêtes.
-
Utilisez l’éditeur de requêtes de la console Amazon Athena pour exécuter des instructions SQL sur la table. Vous pouvez enregistrer les requêtes, afficher les requêtes précédentes ou télécharger les résultats des requêtes au format CSV.
Exemples de requêtes
Remarque : remplacez test_table_vpclogs par le nom de votre table. Modifiez les valeurs des colonnes et les autres variables en fonction de votre requête.
Pour afficher les 100 premières entrées du journal de flux dans l’ordre chronologique pour une période donnée, exécutez une requête semblable à la suivante :
SELECT * FROM test_table_vpclogs WHERE day >= '2021/02/01' AND day < '2021/02/28' ORDER BY day ASC LIMIT 100;
Pour afficher le premier des 10 serveurs recevant le plus grand nombre de paquets HTTP pendant une période donnée, exécutez une requête semblable à la suivante :
SELECT SUM(packets) AS packetcount, dstaddr FROM test_table_vpclogs WHERE dstport = 443 AND day >= '2021/03/01' AND day < '2021/03/31' GROUP BY dstaddr ORDER BY packetcount DESC LIMIT 10;
La requête précédente compte le nombre de paquets reçus sur le port HTTPS 443 et les regroupe par adresse IP de destination. Il fournit les 10 principales entrées de la semaine précédente.
Pour vérifier les journaux créés pour une période donnée, exécutez une requête semblable à la suivante :
SELECT interface_id, srcaddr, action, protocol, to_iso8601(from_unixtime(start)) AS start_time, to_iso8601(from_unixtime("end")) AS end_time FROM test_table_vpclogs WHERE DAY >= '2021/04/01' AND DAY < '2021/04/30';
Pour afficher les journaux de flux pour une adresse IP source spécifique entre une plage de temps spécifiée, exécutez une requête semblable à la suivante :
SELECT * FROM test_table_vpclogs WHERE srcaddr = '10.117.1.22' AND day >= '2021/02/01' AND day < '2021/02/28';
Pour répertorier les connexions TCP rejetées pendant une période spécifiée, exécutez une requête semblable à la suivante :
SELECT day, interface_id, srcaddr, action, protocol FROM test_table_vpclogs WHERE action = 'REJECT' AND protocol = 6 AND day >= '2021/02/01' AND day < '2021/02/28' LIMIT 10;
Pour afficher les journaux de flux pour la plage d’adresses IP commençant par « 10.117 », exécutez une requête semblable à la suivante :
SELECT * FROM test_table_vpclogs WHERE split_part(srcaddr,'.', 1)='10' AND split_part(srcaddr,'.', 2) ='117'
Pour afficher les journaux de flux pour une adresse IP de destination spécifique sur une période donnée, exécutez une requête semblable à la suivante :
SELECT * FROM test_table_vpclogs WHERE dstaddr = '10.0.1.14' AND day >= '2021/01/01' AND day < '2021/01/31'
Informations connexes
Comment puis-je surveiller le trafic dans mon VPC à l’aide de journaux de flux ?
Analyse des journaux de flux VPC à l’aide d’Amazon Athena et d’Amazon QuickSight

Contenus pertinents
- demandé il y a 2 anslg...
- demandé il y a 9 moislg...
- demandé il y a 6 moislg...
- demandé il y a 9 moislg...
- Réponse acceptéedemandé il y a 6 moislg...
- AWS OFFICIELA mis à jour il y a un an
- AWS OFFICIELA mis à jour il y a 10 mois
- AWS OFFICIELA mis à jour il y a 3 ans
- AWS OFFICIELA mis à jour il y a un an