Wie analysiere ich die Amazon VPC-Ablaufprotokolle mit Amazon Athena?

Lesedauer: 4 Minute
0

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

Kurzbeschreibung

Amazon VPC-Ablaufprotokolle ermöglichen es Ihnen, Informationen über den IP-Verkehr zu und von Netzwerkschnittstellen in Ihrer VPC zu erfassen. Die Protokolle können verwendet werden, um Netzwerkverkehrsmuster zu untersuchen und Bedrohungen und Risiken in Ihrem Amazon VPC-Netzwerk zu identifizieren.

Lösung

Analysieren der VPC-Protokolle mit Athena

Gehen Sie wie folgt vor, um die Zugriffsprotokolle mit Amazon Athena zu analysieren:

1.    Erstellen Sie auf der Registerkarte des Abfrageeditors der Amazon Athena-Konsole einendatabasetest\ _db\ _vpclogs, indem Sie einen Befehl ausführen, der dem folgenden ähnelt:
Wichtig: Es hat sich bewährt, die Datenbank in derselben AWS-Region wie die des Amazon S3-Buckets zu erstellen, in dem Sie die Ablaufprotokolle speichern möchten.

CREATE DATABASE test_db_vpclogs;

Hinweis: Achten Sie darauf, test\ _db\ _vpclogs durch den Namen der Datenbank zu ersetzen, die Sie erstellen möchten.

2.    Erstellen Sie in der von Ihnen erstellten Datenbank eine Tabelle für die VPC-Ablaufprotokolle, indem Sie einen Befehl ausführen, der dem folgenden ähnelt. Mit diesem Befehl können Sie eine Tabelle erstellen, die Tabelle partitionieren und die Partitionen entsprechend Ihrem Anwendungsfall mithilfe der Partitionsprojektion automatisch auffüllen.

CREATE EXTERNAL TABLE IF NOT EXISTS test_table_vpclogs (
version int,
account string,
interfaceid string,
sourceaddress string,
destinationaddress string,
sourceport int,
destinationport int,
protocol int,
numpackets int,
numbytes bigint,
starttime int,
endtime int,
action string,
logstatus string,
vpcid string,
subnetid string,
instanceid string,
tcpflags int,
type string,
pktsrcaddr string,
pktdstaddr string,
aws_region string,
azid string,
sublocationtype string,
sublocationid string,
pktsrcawsservice string,
pktdstawsservice string,
flowdirection string,
trafficpath string
)
PARTITIONED BY (region string, day string)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ' '
LOCATION 's3://awsexamplebucket/awsexampleprefix/awsexamplelogs/1111222233334444/vpcflowlogs/'
TBLPROPERTIES
(
"skip.header.line.count"="1",
"projection.enabled" = "true",
"projection.region.type" = "enum",
"projection.region.values" = "us-east-1,us-west-2,ap-south-1,eu-west-1",
"projection.day.type" = "date",
"projection.day.range" = "2021/01/01,NOW",
"projection.day.format" = "yyyy/MM/dd",
"storage.location.template" = "s3://awsexamplebucket/awsexampleprefix/awsexamplelogs/1111222233334444/vpcflowlogs/${region}/${day}"
)

Gehen Sie unbedingt folgendermaßen vor:

  • Ersetzen Sie test\ _table\ _vpclogs in der Abfrage 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.

Hinweis: 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 **Abfrageeditor ** in der Konsole, um SQL-Anweisungen für die Tabelle auszuführen. Sie können Abfragen speichern, frühere Abfragen anzeigen oder Abfrageergebnisse im CSV-Dateiformat herunterladen.

Beispielabfragen

Hinweis: Ersetzen Sie test\ _table\ _vpclogs in den Abfragen durch den Namen der Tabelle, die Sie erstellt haben. Passen Sie die Spaltenwerte und andere Variablen an Ihre Abfrage an.

1.    Führen Sie eine Abfrage ähnlich der folgenden aus, um die ersten 100 Zugriffsprotokolleinträ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 time ASC LIMIT 100;

2.    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(numpackets) AS
  packetcount,
  destinationaddress
FROM test_table_vpclogs
WHERE destinationport = 443 AND day >= '2021/03/01' AND day < '2021/03/31'
GROUP BY destinationaddress
ORDER BY packetcount DESC
LIMIT 10;

Diese 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.

3.    Führen Sie eine Abfrage ähnlich der folgenden aus, um die Protokolle zu überprüfen, die während eines bestimmten Zeitraums erstellt wurden:

SELECT interfaceid, sourceaddress, action, protocol, to_iso8601(from_unixtime(starttime))
AS start_time, to_iso8601(from_unixtime(endtime))
AS end_time
FROM test_table_vpclogs
WHERE day >= '2021/04/01' AND day < '2021/04/30';

Diese Abfrage gibt die Protokolle zurück, die zwischen 2020-12-04 11:28:19.000 und 2020-12-04 11:28:33.000 erstellt wurden.

4.    Führen Sie eine Abfrage ähnlich der folgenden aus, um Zugriffsprotokolle für eine bestimmte Quell-IP-Adresse zwischen bestimmten Zeiträumen anzuzeigen:

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

5.    Führen Sie eine Abfrage ähnlich der folgenden aus, um die abgelehnten TCP-Verbindungen aufzulisten:

SELECT day_of_week(date) AS
day,
date,
interfaceid,
sourceaddress,
action,
protocol
FROM test_table_vpclogs
WHERE action = 'REJECT' AND protocol = 6 AND day >= '2021/02/01' AND day < '2021/02/28' LIMIT 10;

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

SELECT * FROM test_table_vpclogs WHERE split_part(sourceaddress,’.’, 1)=’10’ AND split_part(sourceaddress,’.’, 2) =‘117’;

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

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

Verwandte 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 2 Jahren