株式会社サーバーワークスでは一緒に働く仲間を募集しています
VPC Flow Logsを閲覧時にフィルタする方法
セキュリティグループを正しく設定したつもりなのに、なぜか通信ができない…
そんなときはVPC Flow Logsをチェックしましょう。
VPC Flow LogsをONにしておけば、VPC内を流れるパケットのログを取ることができます。
また、セキュリティグループかNACLで許可あるいは拒否された場合の結果も、ログに残ります。
VPC FLow Logsを設定する方法は、下記のURLの手順の通りです。
参考: https://docs.aws.amazon.com/ja_jp/AmazonVPC/latest/UserGuide/flow-logs.html#working-with-flow-logs
上記の設定が完了すれば、あとはCloudWatch LogsのログストリームにVPC Flow Logsが出力されます。
そのレコードには、以下の情報が含まれています。
version, account, eni, source, destination, srcport, destport, protocol, packets, bytes, windowstart, windowend, action, flowlogstatus
CloudWatch Logsのコンソール画面でVPC Flow Logsを確認したときのスクリーンショット
しかし、出力される情報は数分間で何百行にも及ぶでしょう。以下の通り、フィルタを利用して必要な情報を絞り込みましょう。
- CloudWatchの画面へ遷移
- 左部メニューから「ログ」を選択
- VPC FLow Logsのロググループを選択
- ENI IDごとにログストリームがあるため見たいENIを選択
- 検索フィルタに以下の文法で入力し、絞り込む
宛先ポート22 かつ プロトコルがTCP かつ SGかNACLでREJECTされているパケット
[version, account, eni, source, destination, srcport, destport="22", protocol="6", packets, bytes, windowstart, windowend, action="REJECT", flowlogstatus]
宛先IPが10.0.0.10のパケット
[version, account, eni, source, destination="10.0.0.10", srcport, destport, protocol, packets, bytes, windowstart, windowend, action, flowlogstatus]
ちょっとフィルタリングのルール(文法)が独特なので、いつも忘れてしまいます。
備忘的なブログでした。