【AWS】VPCフローログの見方・ログ形式・拒否トラフィックの確認方法
生徒
「AWSのVPCフローログって何ですか?どんな情報が見られるんでしょうか?」
先生
「VPCフローログは、VPC内のネットワークトラフィックを記録する機能で、通信の許可や拒否の状況を詳しく分析できます。ログの形式や確認方法も重要ですよ。」
生徒
「拒否されたトラフィックってどうやって見ればいいですか?ログの具体的な見方も教えてください!」
先生
「では、VPCフローログの概要からログ形式、拒否トラフィックの確認方法まで、初心者にもわかりやすく説明していきますね。」
1. VPCフローログとは?基本の理解
AWSのVPCフローログは、Virtual Private Cloud内のネットワーク通信をキャプチャし、ログとして保存するサービスです。通信が許可されたか拒否されたか、どのIPアドレスがどのポートにアクセスしたかなどの詳細が記録されます。
これにより、ネットワークのトラブルシューティングやセキュリティ監視が効率的に行えます。
2. VPCフローログのログ形式について
VPCフローログは、主にAWS CloudWatch LogsやS3に出力されます。ログのフォーマットは以下のようなフィールドで構成されています。
- version:ログのバージョン
- account-id:AWSアカウントID
- interface-id:ENI(Elastic Network Interface)のID
- srcaddr:送信元IPアドレス
- dstaddr:宛先IPアドレス
- srcport:送信元ポート
- dstport:宛先ポート
- protocol:通信プロトコル番号(例:6はTCP)
- packets:パケット数
- bytes:バイト数
- start:通信開始時刻(UNIXタイムスタンプ)
- end:通信終了時刻(UNIXタイムスタンプ)
- action:通信の許可状況(ACCEPTまたはREJECT)
- log-status:ログの状態(OKやNODATAなど)
この情報をもとに、どの通信が成功し、どの通信が拒否されたかを判断します。
3. 拒否トラフィックの確認方法
拒否された通信は、ログのactionフィールドがREJECTになっています。CloudWatch Logsなどでフィルタをかけることで、拒否トラフィックだけを抽出可能です。
例えば、CloudWatch Logs Insightsで以下のようなクエリを使うと、拒否された通信が一覧表示されます。
fields @timestamp, srcaddr, dstaddr, srcport, dstport, protocol, action
| filter action = "REJECT"
| sort @timestamp desc
| limit 50
これで、直近50件の拒否トラフィックを時間順に確認できます。
4. VPCフローログの設定とログの見方
VPCフローログは、VPC単位やサブネット単位、ENI単位で有効化できます。AWSコンソールのVPC画面から「フローログの作成」を選択し、ロググループやフィルタ(許可されたトラフィックのみ、拒否のみ、すべて)を指定します。
ログの見方としては、IPアドレスやポート番号を確認し、問題のある通信元や通信先を特定することが重要です。異常なアクセスや拒否された通信があれば、セキュリティグループやネットワークACLの設定を見直しましょう。
5. VPCフローログ活用のポイント
- セキュリティグループやネットワークACLの効果を確認できる。
- 不正アクセスや異常通信の検知に役立つ。
- 通信のトラブルシューティングが効率化できる。
- ログはCloudWatch LogsやS3に保存し、長期間の分析も可能。
6. よくある質問(FAQ)
Q1: VPCフローログの料金はかかりますか?
A: フローログ自体の機能は無料ですが、CloudWatch LogsやS3に保存する際のストレージ料金やデータ転送料金が発生します。
Q2: ログにすべての通信が記録されますか?
A: フィルタ設定によって「許可された通信のみ」「拒否された通信のみ」「すべての通信」を選択できます。
Q3: フローログの有効化はすぐ反映されますか?
A: 有効化してからログの収集が始まるまでに数分かかることがあります。
7. これからのVPCフローログ活用に向けて
VPCフローログを活用することで、AWSネットワークの可視化とセキュリティ強化が可能です。ログ形式の理解や拒否トラフィックの確認方法をマスターし、日々の運用やトラブル対応に役立ててください。
初心者の方も、今回の内容を参考にぜひVPCフローログを設定してみましょう。
まとめ
AWSのVPCフローログは、VPC内で発生しているネットワーク通信を確認するための重要な機能です。Amazon VPCの中で、どの送信元IPアドレスから、どの宛先IPアドレスへ通信が行われたのか、どのポート番号が使われたのか、通信が許可されたのか拒否されたのかをログとして確認できます。AWS初心者にとって、ネットワーク通信は目に見えにくく難しく感じやすい部分ですが、VPCフローログを使うことで、通信状況を具体的なログとして見られるようになります。
VPCフローログで特に大切なのは、ログ形式を理解することです。ログには、version、account-id、interface-id、srcaddr、dstaddr、srcport、dstport、protocol、packets、bytes、start、end、action、log-statusなどの項目があります。これらのフィールドを見ることで、通信元、通信先、ポート番号、プロトコル、通信量、通信時間、通信結果を確認できます。最初は項目が多く感じるかもしれませんが、拒否トラフィックを調べたい場合は、まずactionの値を見ると分かりやすいです。
actionがACCEPTであれば通信は許可されており、REJECTであれば通信は拒否されています。拒否された通信を確認することで、セキュリティグループやネットワークACLの設定ミス、不要なアクセス、想定外の通信、外部からの不正アクセスの可能性を調査できます。たとえば、EC2に接続できない場合、アプリケーションへアクセスできない場合、特定のポートだけ通信できない場合などに、VPCフローログを確認すると原因調査に役立ちます。
VPCフローログは、CloudWatch LogsやS3に出力できます。CloudWatch Logsに出力すれば、CloudWatch Logs Insightsを使って拒否トラフィックを検索したり、時間順にログを確認したりできます。S3に保存すれば、長期間のログ保管や後からの分析にも向いています。短期的なトラブルシューティングではCloudWatch Logs、長期的な監査や分析ではS3というように、目的に合わせて保存先を考えるとよいでしょう。
VPCフローログは、VPC単位、サブネット単位、ENI単位で有効化できます。広い範囲の通信を確認したい場合はVPC単位、特定のネットワーク範囲だけを確認したい場合はサブネット単位、特定のEC2インスタンスやネットワークインターフェースに注目したい場合はENI単位で設定すると分かりやすくなります。どの範囲でログを取得するかを決めることも、AWSネットワーク運用では大切なポイントです。
AWSのセキュリティ対策では、セキュリティグループとネットワークACLの理解も重要です。セキュリティグループはEC2などのリソース単位で通信を制御し、ネットワークACLはサブネット単位で通信を制御します。VPCフローログでREJECTが出ている場合、どちらかの設定によって通信が拒否されている可能性があります。ログを確認しながら、送信元IPアドレス、宛先IPアドレス、ポート番号、プロトコルを照らし合わせることで、原因を絞り込みやすくなります。
VPCフローログを使いこなせるようになると、AWSネットワークの可視化、通信トラブルの調査、拒否トラフィックの確認、不正アクセスの検知、クラウド環境のセキュリティ強化に役立ちます。初心者の方は、まずログのaction、srcaddr、dstaddr、dstport、protocolを中心に見ることから始めると理解しやすいです。通信が許可されたのか拒否されたのか、どこからどこへ通信しているのかを読み取れるようになると、AWS運用の基礎力が大きく高まります。
VPCフローログを確認するときの考え方
VPCフローログを見るときは、最初からすべての項目を完璧に理解しようとしなくても大丈夫です。まずは、通信の結果を表すaction、送信元を表すsrcaddr、宛先を表すdstaddr、宛先ポートを表すdstport、通信の種類を表すprotocolを確認しましょう。特にREJECTのログを見つけた場合は、どのIPアドレスからどのポートへ通信しようとして拒否されたのかを確認します。そのうえで、セキュリティグループやネットワークACLの設定を見直すと、トラブル対応が進めやすくなります。
たとえば、Webサーバーへアクセスできない場合は、宛先ポートが八十番や四百四十三番になっているか、通信がREJECTになっていないかを確認します。SSH接続ができない場合は、二十二番ポートへの通信が拒否されていないかを確認します。このように、VPCフローログは単なる記録ではなく、AWSネットワークの問題を見つけるための手がかりになります。
生徒
AWSのVPCフローログは、VPC内のネットワーク通信を記録するための機能だと分かりました。通信が許可されたか拒否されたかを確認できるのが便利ですね。
先生
その通りです。VPCフローログを見ることで、EC2やサブネットやネットワークインターフェース周辺の通信状況を確認できます。ネットワークのトラブルシューティングやセキュリティ監視に役立ちます。
生徒
ログの中では、actionを見ると通信がACCEPTなのかREJECTなのか分かるんですね。拒否トラフィックを調べたいときは、まずREJECTを探せばよいと理解しました。
先生
はい。REJECTのログを確認すると、拒否された通信の送信元IPアドレス、宛先IPアドレス、ポート番号、プロトコルなどを調べられます。そこからセキュリティグループやネットワークACLの設定確認につなげられます。
生徒
CloudWatch Logsに出力すれば、ログを検索しやすくなるんですね。S3に保存すれば長期間の分析にも使えるという点も分かりました。
先生
よく整理できています。CloudWatch Logsは日々の確認や障害対応に向いていて、S3は長期保存や後からの分析に向いています。運用目的に合わせて出力先を選ぶことが大切です。
生徒
VPCフローログは、VPC単位、サブネット単位、ENI単位で有効化できるんですね。どの範囲の通信を見たいかで設定を変える必要がありそうです。
先生
その理解で大丈夫です。広い範囲を見たいならVPC単位、特定のネットワーク範囲ならサブネット単位、特定のEC2インスタンスに注目したいならENI単位で考えると分かりやすいです。
生徒
ログを見るときは、srcaddrやdstaddrやdstportも大切なんですね。どこからどこへ、どのポートで通信しているかを確認できるから、原因調査に使えると思いました。
先生
はい。AWSネットワークの調査では、送信元、宛先、ポート番号、通信結果を見ることが基本です。VPCフローログを読む力がつくと、接続できない原因や拒否された通信の理由を考えやすくなります。
生徒
これからは、EC2に接続できないときやアプリケーションにアクセスできないときに、セキュリティグループだけでなくVPCフローログも確認してみます。
先生
とてもよい考え方です。VPCフローログは、AWSネットワークの見えない通信を可視化するための重要な手段です。拒否トラフィックの確認、ログ形式の理解、CloudWatch Logsでの検索、セキュリティグループやネットワークACLの見直しを組み合わせて、安定したAWS運用につなげていきましょう。