メニュー
Amazon Athena
ユーザーガイド

Amazon VPC フローログのクエリ

Amazon Virtual Private Cloud フローログは、VPC のネットワークインターフェイスとの間で行き来する IP トラフィックに関する情報をキャプチャします。このログを使用してネットワークトラフィックのパターンを調査し、VPC ネットワーク全体の脅威やリスクを特定します。

Athena でログのクエリを開始する前に、VPC フローログの有効化Amazon S3 へのログデータのエクスポートを行います。ログを作成したら、それを数分間実行していくらかのデータを収集します。

VPC フローログのテーブルの作成

Amazon VPC テーブルを作成するには

  1. 次の DDL ステートメントをコピーして Athena コンソール内に貼り付けます。

  2. ログデータの保存先の S3 バケットを指すように LOCATION 's3://your_log_bucket/prefix/' を変更します。

    CREATE EXTERNAL TABLE IF NOT EXISTS vpc_flow_logs ( ts string, version int, account string, interfaceid string, sourceaddress string, destinationaddress string, sourceport int, destinationport int, protocol int, numpackets int, numbytes int, starttime int, endtime int, action string, logstatus string ) ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.RegexSerDe' WITH SERDEPROPERTIES ( "input.regex" = "^([^ ]+)\\s+([0-9]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([0-9]+)\\s+([0-9]+)\\s+([0-9]+)\\s+([0-9]+)\\s+([0-9]+)\\s+([0-9]+)\\s+([0-9]+)\\s+([^ ]+)\\s+([^ ]+)$" ) LOCATION 's3://your_log_bucket/prefix/';
  3. Athena コンソールでクエリを実行します。クエリが完了すると、Athena は vpc_flow_logs テーブルを登録し、そのデータに対してクエリを発行できるように準備します。

Amazon VPC フローログのクエリ例

次のクエリは、すべての拒否された TCP 接続を一覧表示します。このクエリでは、日付/時刻関数および演算子を使用してタイムスタンプフィールドの ts を変換し、該当するイベントが発生した週の曜日のみを抽出します。

SELECT day_of_week(from_iso8601_timestamp(ts)) AS day, interfaceid, sourceaddress, action, protocol FROM vpc_flow_logs WHERE action = 'REJECT' AND protocol = 6 LIMIT 100;

最大数の HTTPS リクエストを受信しているサーバーを確認するには、次のクエリを使用します。HTTPS ポート 443 で受信したパケット数をカウントし、送信先 IP アドレス別にグループ分けして、上位 10 のサーバーを返します。

SELECT SUM(numpackets) AS packetcount, destinationaddress FROM vpc_flow_logs WHERE destinationport = 443 GROUP BY destinationaddress ORDER BY packetcount DESC LIMIT 10;

詳細については、AWS Big Data Blog の記事「Amazon Kinesis Firehose、Athena、および Amazon QuickSight による VPC フローログの分析」を参照してください。