LoginSignup
0
0

【AWS-Athena】VPCフローログのクエリ例

Last updated at Posted at 2023-08-24

対象EC2インスタンスのVPCフローログをクエリする

条件

対象ec2インスタンス(10.10.20.20)のVPCフローログ
宛先IPアドレスは20.20.10.10/28
Portは22
日付は20230101
通信が正常に行われているかの確認
時間順に並べる

SQLクエリ

SELECT *
FROM "your_vpc_flow_logs_table_name"
WHERE "source_ip_column" = '10.10.20.20'
  AND "destination_ip_column" BETWEEN '20.20.10.10' AND '20.20.10.15'
  AND 
  AND "destination_port_column" = 22
  AND DATE("date_column") = DATE '2023-01-01'
  AND "action_column" = 'ACCEPT'
  AND "status_column" = 'OK'
ORDER BY "time_column" ASC;
SELECT
  startime,
  endtime,
  sourceaddress,
  destinationaddress,
  sourceport,
  destinationport,
  protocol,
  action,
  bytes,
  packets
FROM
  vpc_logs.flow_logs
WHERE
  (
  sourceaddress = '10.25.13.15' 
  OR destinationaddress = '10.25.13.15'
  )
  AND startime >= timestamp '2023-10-21T10:00:00Z'
  AND endtime <= timestamp '2023-10-21T18:00:00Z'
ORDER BY
  startime;

以下の部分を実際のテーブル名とカラム名に置き換える必要がある。

•	"your_vpc_flow_logs_table_name": フローログを保存しているテーブル名
•	"source_ip_column": 送信元IPアドレスを表すカラム名
•	"destination_ip_column": 宛先IPアドレスを表すカラム名
•	"destination_port_column": 宛先ポート番号を表すカラム名
•	"action_column": フローログのアクション(ACCEPTやREJECTなど)を表すカラム名
•	"status_column": フローログのステータス(OKやNODATAなど)を表すカラム名
•	"date_column": 日付を表すカラム名
•	"time_column": 時刻を表すカラム名

クエリの解説:
• BETWEEN '20.20.10.10' AND '20.20.10.15': 宛先IPアドレスが指定の範囲に含まれる行を選択する。
• DATE("date_column") = DATE '2023-01-01': クエリに指定された日付(2023年1月1日)に一致する行を選択する。
• ORDER BY "time_column" ASC: 時刻を昇順(時間順)に並び替える。
• "action_column" = 'ACCEPT': フローログのアクションが “ACCEPT”(通信が許可された)である行を選択する。
• "status_column" = 'OK': フローログのステータスが “OK”(正常)である行を選択する。
これにより、指定された条件に一致し、かつ通信が正常に行われたフローログエントリが選択され、結果が返される。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0