変更要約: in-scope サービス網羅: 運用/通知/ガバナンス(EventBridge/SNS/SQS/Health Dashboard/Trusted Advisor/Well-Architected/Management Console/Control Tower)を追加
5.1VPC フローログによる可視化
通信を見える化する——VPC フローログ、取得対象(VPC/サブネット/ENI)、ACCEPT/REJECT、出力先(CloudWatch/S3)、トラフィックミラーリングとの違い——を理解します。
VPC フローログは、ネットワークインターフェース(ENI)を通過する通信のメタデータ(送信元/宛先 IP・ポート・許可/拒否など)を記録します。中身(パケット本体)は記録しません。
5.1.1取得対象と出力先
- 取得対象:VPC・サブネット・ENI の単位で有効化できる。ACCEPT と REJECT の両方を記録可能。
- 記録内容:送信元/宛先 IP・ポート・プロトコル・バイト数・許可/拒否などのメタデータ。
- 出力先:CloudWatch Logs(アラーム/Logs Insights)または S3(Athena でクエリ)。
- パケット本体が必要なら:フローログでは不可。トラフィックミラーリングで実パケットを取得する。
「許可/拒否されたトラフィックの可視化=VPC フローログ(メタデータ)」「パケットの中身=トラフィックミラーリング」「出力は CloudWatch Logs か S3(Athena)」 は ANS-C01 で頻出です。フローログはパケット内容を含まない点が頻出の引っかけです。
ANS-C01 ではフローログの「読み方」と限界が問われます。標準フォーマットの action フィールドは ACCEPT/REJECT を示しますが、これはセキュリティグループと NACL を合わせた最終判定であり、どちらが拒否したかは区別しません。さらに log-status が NODATA(期間中トラフィックなし)や SKIPDATA(内部制約で一部欠落)になることがあり、運用で誤解しないよう押さえます。出力先は CloudWatch Logs・S3 のほか Amazon Data Firehose にも送れ、フォーマットはカスタムフィールドで拡張でき、tcp-flags(SYN/ACK など接続フラグ)、pkt-srcaddr/pkt-dstaddr(NAT/中継越しの実 IP)、flow-direction、traffic-path(egress の経路種別)などを足すと、NAT 背後の実際の通信元や TCP の片方向だけ届く非対称の兆候まで分析できます。重要な限界として、フローログは DHCP/Amazon DNS(VPC+2 のリゾルバ)・ウィンドウメタデータ・リンクローカル(169.254.x.x) の一部などを記録しません。DNS の問い合わせ内容を見たい場合はRoute 53 Resolver クエリログを使います。レコードは数分間隔の集約(既定 10 分、最短 1 分)で届くため、リアルタイム遮断の検知には向きません。
| 知りたいこと | 使う機能 | 粒度 |
|---|---|---|
| 誰が誰と通信(許可/拒否) | VPC フローログ | メタデータ・数分集約 |
| パケットの中身 | トラフィックミラーリング | 実パケット・リアルタイム |
| DNS の問い合わせ名 | Route 53 Resolver クエリログ | クエリ単位 |
| NAT 背後の実 IP | フローログ+pkt-srcaddr | カスタムフィールド |
シナリオ:NAT ゲートウェイ経由の外向き通信で、どの内部インスタンスがどの宛先に出ているかを特定したい。→ フローログのカスタムフィールドに pkt-srcaddr を追加する。標準の srcaddr は NAT の IP になってしまうが、pkt-srcaddr は変換前の実インスタンス IP を記録するため、出力先(S3)を Athena でクエリして内部送信元別に集計できる。
FAQ:Q. フローログに REJECT が出ない(拒否しているはずなのに)? A. NACL で拒否されたものは REJECT で出るが、SG で暗黙拒否されたインバウンドは「そもそも記録対象に到達しない」ケースがあり、判断は flow-direction やパケット方向と合わせる。Q. action だけで SG/NACL のどちらが拒否か分かる? A. 分からない。最終判定のみ。原因特定は Reachability Analyzer を併用する。
ひっかけ:「VPC フローログで DNS の問い合わせ内容や通信ペイロードを調べる」は誤り。フローログはメタデータのみで、DNS のクエリ名は Route 53 Resolver クエリログ、ペイロードはトラフィックミラーリングが正解。さらに Amazon 提供 DNS 宛の通信自体がフローログに出ない点も頻出のひっかけ。
5.1.2この節のまとめ
- 可視化=フローログ(メタデータ・ACCEPT/REJECT)
- 出力=CloudWatch/S3、パケット本体=ミラーリング
進捗の記録にはログインが必要です。
理解度チェック
(軽い確認用)Q1. あるサブネットで「拒否された通信」が発生しているか、送信元/宛先 IP とポート単位で確認したい。何を使いますか?
Q2. 侵入検知のため、実際のパケットの中身をコピーして IDS アプライアンスへ送りたい。何を使いますか?
Q3. VPC フローログを SQL でアドホックに集計・分析したい。出力先と分析の組み合わせは?

