Wie verwende ich Amazon Athena, um VPC-Flow-Protokolle zu analysieren?

Lesedauer: 4 Minute
0

Ich möchte meine Amazon Virtual Private Cloud (Amazon VPC)-Ablaufprotokolle mit Amazon Athena analysieren.

Kurzbeschreibung

Verwenden Sie Amazon VPC Flow-Protokolle, um Netzwerk-Traffic-Muster zu analysieren und Bedrohungen und Risiken in Ihrem Amazon VPC-Netzwerk zu identifizieren.

Lösung

Verwenden Sie Athena, um Amazon VPC-Flow-Protokolle zu analysieren

Gehen Sie wie folgt vor, um Athena zur Analyse der Amazon VPC-Flow-Protokolle zu verwenden:

  1. Verwenden Sie den Abfrage-Editor der Amazon Athena-Konsole, um den folgenden Befehl zum Erstellen einer Datenbank auszuführen. Ersetzen Sie test_db_vpclogs durch einen Namen für Ihre Datenbank:

    CREATE DATABASE test_db_vpclogs;
    

    Wichtig: Es hat sich bewährt, die Datenbank in derselben AWS-Region wie der Amazon Simple Storage Service (Amazon S3)-Bucket zu erstellen, in dem die Flow-Protokolle gespeichert sind.

  2. Führen Sie in der Datenbank den folgenden Befehl aus, um eine Tabelle für die VPC-Flow-Protokolle zu erstellen. Ersetzen Sie test_table_vpclogs durch den Namen Ihrer Tabelle. Ändern Sie den LOCATION-Parameter in der Abfrage so, dass er auf den Amazon S3-Bucket verweist, der Ihre Protokolldaten enthält:

    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}'
      )

    **Hinweis:**Der vorherige Befehl verwendet die Partitionsprojektion, um eine Tabelle zu erstellen, die Tabelle zu partitionieren und die Partitionen automatisch aufzufüllen. Wenn eine projizierte Partition in Amazon S3 nicht existiert, projiziert Athena die Partition trotzdem. Es hat sich bewährt, partitionierte Attribute in Ihren Abfragen zu verwenden.

  3. Verwenden Sie den Abfrage-Editor der Amazon Athena-Konsole, um SQL-Anweisungen für die Tabelle auszuführen. Sie können Abfragen speichern, frühere Abfragen anzeigen oder Abfrageergebnisse im CSV-Format herunterladen.

Beispielabfragen

**Hinweis:**Ersetzen Sie test_table_vpclogs durch den Namen Ihrer Tabelle. Passen Sie die Spaltenwerte und andere Variablen an Ihre Abfrage an.

Führen Sie eine Abfrage ähnlich der folgenden aus, um die ersten 100 Flow-Protokolleinträge in chronologischer Reihenfolge für einen bestimmten Zeitraum anzuzeigen:

SELECT *
 FROM test_table_vpclogs
 WHERE day >= '2021/02/01' AND day < '2021/02/28'
 ORDER BY day ASC
 LIMIT 100;

Führen Sie eine Abfrage ähnlich der folgenden aus, um zu sehen, welcher Server die zehn häufigsten HTTP-Pakete für einen bestimmten Zeitraum empfängt:

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;

Die vorausgegangene Abfrage zählt die Anzahl der auf dem HTTPS-Port 443 empfangenen Pakete und gruppiert sie nach Ziel-IP-Adresse. Dann werden die 10 besten Einträge der Vorwoche zurückgegeben.

Um die Protokolle zu überprüfen, die für einen bestimmten Zeitraum erstellt wurden, führen Sie eine Abfrage ähnlich der folgenden aus:

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';

Um Flow-Protokolle für eine bestimmte Quell-IP-Adresse innerhalb eines bestimmten Zeitbereichs anzuzeigen, führen Sie eine Abfrage ähnlich der folgenden aus:

SELECT *
FROM test_table_vpclogs
WHERE srcaddr = '10.117.1.22'
  AND day >= '2021/02/01'
  AND day < '2021/02/28';

Um die abgelehnten TCP-Verbindungen zwischen einem bestimmten Zeitraum aufzulisten, führen Sie eine Abfrage ähnlich der folgenden aus:

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;

Führen Sie eine Abfrage ähnlich der folgenden aus, um die Flow-Protokolle für den IP-Adressbereich anzuzeigen, der mit „10.117“ beginnt:

SELECT *
FROM test_table_vpclogs
WHERE split_part(srcaddr,'.', 1)='10'
  AND split_part(srcaddr,'.', 2) ='117'

Führen Sie eine Abfrage ähnlich der folgenden aus, um die Flow-Protokolle für eine bestimmte Ziel-IP-Adresse zwischen einem bestimmten Zeitraum anzuzeigen:

SELECT *
FROM test_table_vpclogs
WHERE dstaddr = '10.0.1.14'
AND day >= '2021/01/01'
AND day < '2021/01/31'

Ähnliche Informationen

Wie überwache ich den Verkehr in meiner VPC mit Ablaufprotokollen?

Analysieren von VPC-Ablaufprotokollen mit Amazon Athena und Amazon QuickSight

AWS OFFICIAL
AWS OFFICIALAktualisiert vor einem Jahr