対象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”(正常)である行を選択する。
これにより、指定された条件に一致し、かつ通信が正常に行われたフローログエントリが選択され、結果が返される。