awsとvpcフローログの基礎から活用法まで徹底的に解説

目次

はじめに

本ドキュメントの目的

本書は、AWSのVPCフローログについて、仕組みや基本仕様、設定方法、活用例、送信先別の運用方法、運用上の注意点とベストプラクティスを分かりやすくまとめることを目的とします。VPCフローログは、ネットワークトラフィックの監視やセキュリティ運用に欠かせない情報源です。

読者対象

クラウド環境の運用担当者、セキュリティ担当者、そしてこれからVPCフローログを導入したいエンジニアを想定しています。基礎的なAWSの知識があれば読み進めやすい内容です。

期待できる効果

フローログを適切に使うことで、通信の可視化、不審な通信の検出、障害時の原因追及が速くなります。例えば、特定インスタンスからの意図しない外部アクセスをログで確認できます。

本書の構成と読み方

全8章で段階的に解説します。まず基礎を押さえ、その後設定や分析、運用面の実践的なコツを紹介します。実例や設定例を交えて理解を助けますので、順に読み進めることをおすすめします。

VPCフローログとは何か

VPCフローログは、AWSのVPC(仮想ネットワーク)内で発生するIP通信を自動で記録する監視機能です。どのインスタンス(やサブネット)からどこへ通信したか、プロトコルやポート、通信が許可されたか拒否されたかなどを把握できます。例として、あるEC2インスタンスが外部と通信できないとき、フローログを見れば送信元IP・宛先IP・ポートと許可/拒否の結果が分かり、原因特定が速くなります。

主な記録項目は送信元・宛先のIP、ポート番号、プロトコル、許可/拒否フラグ、タイムスタンプなどです。ログは指定した保存先へ送れますので、長期保存や検索、分析に活用できます。たとえば、攻撃と思われる大量の通信や誤ったアクセス制御の確認、監査用の証跡取得に使えます。

利点は設定が簡単でリアルタイムに近い情報を得られる点です。一方で、暗号化された通信の中身までは分からないことや、大量ログの保管や解析コストがかかる点に注意が必要です。本章ではまず基本の役割と具体的な使いどころを押さえました。

フローログの基本仕様と仕組み

概要

VPCフローログは、VPC全体・サブネット・ネットワークインターフェイス(ENI)単位で作成できます。対象リソースを通るIPトラフィックを記録し、通信の可視化やトラブル対応に使います。

レコードに含まれる主な項目

  • タイムスタンプ:記録時刻
  • 送信元IP・宛先IP
  • 送信元ポート・宛先ポート
  • プロトコル(TCP/UDP/ICMPなど)
  • 許可/拒否(Accept/Reject)
  • パケット数・バイト数
  • ログステータス(配信状態など)
    これらはスペース区切りで1行に並びます。誰でも読みやすい形で数値やIPが並ぶため、自動処理しやすいです。

レコードフォーマット

デフォルト形式のほか、必要な項目だけを選ぶカスタム形式が指定できます。不要な情報を省くとコストと解析負荷を下げられます。

粒度と運用上の影響

ENI単位は細かい監視向き、VPC単位は広範囲の傾向把握に向きます。記録量が増えると保存先(CloudWatch Logs、S3、Kinesis)でのコストや遅延に注意が必要です。

簡単な例(スペース区切り)

1597680000 10.0.0.5 192.0.2.10 443 51514 6 ACCEPT 10 6540 OK

VPCフローログの設定方法

前提条件

  • AWSアカウントとVPCへのアクセス権があること
  • ログの保存先(S3/CloudWatch/Kinesis)に書き込み可能なIAMロールを用意できること

設定手順(AWSマネジメントコンソール)

  1. AWSコンソールで「VPC」を開き、左メニューの「フローログ」を選択します。
  2. 「フローログの作成」をクリックし、対象を選びます(VPC、サブネット、ENI)。
  3. フィルタを選びます(ALL / ACCEPT / REJECT)。一般的にはまずALLで全トラフィックを取得します。
  4. ログ送信先を選択します:Amazon S3、CloudWatch Logs、Kinesis Data Firehoseのいずれかを指定します。
  5. IAMロールを指定します。ロールがなければ作成します(例: flowlogsRole)。
  6. 必要に応じてタグや集計間隔(1分/10分)などを設定し、作成を確定します。

ログ保存先の選び方(簡単な目安)

  • Amazon S3:長期保管やバッチ解析向け。コスト低めでアーカイブに適します。
  • CloudWatch Logs:リアルタイム検索やアラート作成に便利です。
  • Kinesis Data Firehose:別サービスへストリーミングして即時処理・分析する場合に使います。

IAMロールのポイント

  • 例としてflowlogsRoleにS3用ならs3:PutObject、CloudWatch用ならlogs:CreateLogStreamとlogs:PutLogEventsの権限を付与します。
  • 最小権限の原則で必要なアクションだけ許可してください。

作成後の確認方法

  • CloudWatchならロググループにログが流れているか確認します。
  • S3なら指定バケットのプレフィックスにファイルが出力されているか確認します。
  • Kinesisなら配信先(Firehoseの末端)でデータの到達状況を確認します。

以上の手順で、コンソールから簡単にVPCフローログを設定できます。問題が発生した場合は、IAM権限と保存先の設定をまずご確認ください。

フローログの分析・活用事例

1. 通信ブロックの原因解明

フローログで「どのIPとどのポートが拒否されたか」を絞り込みます。送信元・宛先・ポートでフィルタし、セキュリティグループやNACLの設定と突き合わせると原因を特定しやすいです。具体例:特定のサーバーから外部への80番が拒否されていた場合、SGのアウトバウンドやルートテーブルを確認します。

2. セキュリティ監査・インシデント調査

発生時刻順にログを並べ、接続の開始・終了を追跡します。攻撃の経路や侵害の有無を記録でき、監査証跡として残せます。ログはタイムスタンプで整列し、該当インスタンスIDやサブネットで絞ります。

3. 不審通信の検出

短時間で大量に発生する通信、未知の国からのアクセス、高頻度のポートスキャンなどを検出します。ベースラインを作り、その逸脱をアラート化すると早期発見につながります。

4. AWS Network Firewallとの連携

Firewallログと組み合わせると、なぜ通信がブロックされたか(ルールか別要因か)を詳しく分析できます。FirewallでブロックされたフローとVPCフローログの許可状況を突き合わせると有効です。

5. 外部SIEM連携と運用効率化

Kinesis Data Firehose経由でSplunkやELKに転送し、ダッシュボードや相関分析で運用を効率化します。リアルタイムアラートや長期保存で監査・分析が容易になります。

運用のヒント:フィルタとタグで見たいログだけ集める、ログの時刻はUTC統一、サンプル頻度と保存期間はコストと用途で調整することをおすすめします。

送信先による運用の違い

送信先ごとの特徴

  • Amazon S3:長期保存とコスト効率に優れます。週次や月次のバッチ分析、履歴保管に向きます。AthenaやEMRでの後処理に適します。ファイル形式(Parquet/GZIP)やパーティションでクエリコストを下げられます。
  • CloudWatch Logs:リアルタイム監視やアラート、ダッシュボード連携に便利です。ログの検索やメトリクス化が容易で、障害検知に向きます。短期保持での素早い対応に役立ちます。
  • Kinesis Data Firehose:リアルタイムで外部SIEMやElasticsearch、S3へ転送します。途中で変換やバッファリングが可能で、外部分析基盤と連携する場合に有利です。

運用ポリシー別の選び方

  • 長期保存・コスト重視:S3を第一候補にします。保存期間が長くてもコストを抑えられます。
  • 即時監視・通知が必要:CloudWatch Logsを使い、アラームやダッシュボードを組み合わせます。
  • リアルタイム集約・外部連携:Firehoseで送って変換やバッファを活用します。

実運用で気をつけるポイント

  • 保管・閲覧権限は最小権限にします。
  • 暗号化とライフサイクル(移行・削除)を設定します。
  • データフォーマットとパーティション設計でコストと検索性能を最適化します。
  • 監査目的ならS3とCloudWatchの併用を検討します。

運用上の注意点とベストプラクティス

コスト管理を設計する

ログ取得対象(ENI/サブネット/VPC)、集約間隔、保存期間でコストが大きく変わります。短い間隔や長期保存は詳細が増えますが費用も増えます。まずは目的を明確にし、必要な範囲だけを取得する方針を決めます。例えば、外部向け公開サブネットのみ詳細に取り、内部通信は集約するなどが有効です。

権限とセキュリティ(IAM)

ログを配信するロールは最小権限で設定します。書き込み先のバケットやロググループに限定したポリシーを適用し、定期的に権限を見直します。不要なアクセスを防ぐことで情報漏えいリスクを下げます。

不要ログの抑制とフィルタリング

全トラフィックを無差別に取らず、目的に応じたフィルタを設定します。例:正常なヘルスチェックや社内バックアップ帯域は除外してノイズを減らします。これで分析負荷と保管コストを下げられます。

保存とライフサイクル管理

CloudWatch Logsの保持期間やS3のライフサイクルで自動削除・アーカイブを設定します。短期で解析し長期は圧縮保存、一定期間後に削除する運用が一般的です。

連携と監視運用

CloudWatch Logs Insightsや外部SIEMと連携してリアルタイム分析やアラートを用意します。例えば、拒否パケットの急増を検知して自動で通知するルールを作ります。

定期検証と運用手順

ログ設定変更時は必ず取得確認を行い、障害時の対応手順(ランブック)を整備します。定期レビューで対象や保存期間を見直し、コストと有用性を両立させます。

短いチェックリスト

  • 取得対象を最小化する
  • 集約間隔と保存期間を目的に合わせる
  • IAMは最小権限にする
  • 不要ログはフィルタで除外する
  • 保存先でライフサイクルを設定する
  • アラートとランブックを用意する

これらを守ることで、コストを抑えつつ迅速なセキュリティ対応と障害対応を実現できます。

まとめと参考情報

要点のまとめ

VPCフローログは、VPC内のネットワーク通信を記録して運用・セキュリティに役立てる基本機能です。ログの送信先(CloudWatch Logs、S3、Kinesis)とフィルタ(accept/reject/all)を目的に合わせて選び、保存期間やサンプリングでコスト管理を行います。権限は最小限にし、ログの暗号化とアクセス制御を設定してください。

実践のコツ

  • まずは主要サブネットや疑わしいトラフィック先を対象に有効化し、運用に慣れてから範囲を広げます。
  • CloudWatch Logsで短期分析、S3+Athenaで長期保存と検索を行うと便利です。
  • 解析ではCSVやパーサーを使い、頻度の高い通信や異常接続を可視化します。

参考情報(出発点)

  • AWS公式ドキュメント(VPCフローログ設定、料金、権限)
  • CloudWatch Logs Insights、Amazon Athena、ログ解析ツールのハンズオン記事

まずは小さく始めて、ログの量とコストを見ながら運用を改善してください。必要であれば、具体的な設計例やコスト試算もご案内します。

よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

目次