VPC フローログ
VPC フローログの概要には、仮想マシン(VM)インスタンスによって送受信されたネットワーク フローのサンプルが記録されます。これには Google Kubernetes Engine ノードとして使用されるインスタンスも含まれます。これらのログは、ネットワーク モニタリング、フォレンジック、リアルタイム セキュリティ分析、費用の最適化に使用できます。
フローログは Cloud Logging で表示でき、Cloud Logging のエクスポート先としてサポートされている任意の宛先にエクスポートできます。
フローログは、Compute Engine VM からの接続ごとに集計され、リアルタイムでエクスポートされます。Pub/Sub に登録すると、リアルタイム ストリーミングの API を使用してフローログを分析できます。
ユースケース
ネットワーク モニタリング
VPC フローログを使用すると、ネットワークのスループットとパフォーマンスをリアルタイムで把握できます。以下を実現できます。
- VPC ネットワークをモニタリングする
- ネットワーク診断を実行する
- VM とアプリケーションによりフローログをフィルタ処理して、トラフィックの変化を理解する
- トラフィックの増加を把握し、キャパシティの予測に役立てる
ネットワーク使用方法の理解とネットワーク トラフィック費用の最適化
VPC フローログを使用すると、ネットワーク使用量を分析できます。ネットワーク フローを分析して次のことを把握できます。
- リージョンとゾーンの間のトラフィック
- インターネットでの特定の国へのトラフィック
- トラフィック使用量が特に多いプロセス
分析を基にして、ネットワーク トラフィックの費用を最適化できます。
ネットワーク フォレンジック
VPC フローログをネットワーク フォレンジックに利用できます。たとえば、インシデントが発生した場合、以下を調べることができます。
- どの IP が、いつ、どの相手と情報をやり取りしたか
- 不正使用された IP(すべての受信と送信のネットワーク フローを分析して調査)
リアルタイムのセキュリティ分析
リアルタイム ストリーミングの API を(Pub/Sub 経由で)使用し、SIEM(Security Information and Event Management)システムと統合できます。これにより、リアルタイムのモニタリング、イベントの相関、分析、およびセキュリティ アラートを提供できます。
仕様
- VPC フローログは、VPC ネットワークを強化するソフトウェアである Andromeda の一部です。VPC フローログが有効になると、遅延やパフォーマンスの低下は発生しません。
- VPC フローログは、レガシー ネットワークではなく、VPC ネットワークで機能します。サブネットごとに VPC フローログを有効または無効にできます。サブネットに対して有効になっている場合、VPC フローログはそのサブネット内のすべての VM インスタンスからデータを収集します。
- VPC フローログは、各 VM の TCP、UDP、ICMP、ESP、GRE フローをサンプリングします。インバウンド フローとアウトバウンド フローの両方がサンプリングされます。これらのフローは、Google Cloud 内または Google Cloud と他のネットワーク間のいずれでもかまいません。フローがサンプリングによってキャプチャされると、VPC フローログがフロー用のログを生成します。各フローレコードには、レコードの形式セクションで説明されている情報が含まれます。
- VPC フローログは、次の方法でファイアウォール ルールとやり取りします。
- 下り(外向き)のパケットは、下り(外向き) ファイアウォール ルールの前にサンプリングされます。下り(外向き)ファイアウォール ルールによって送信パケットが拒否されていても、これらのパケットは VPC フローログでサンプリングできます。
- 上り(内向き)パケットは、上り(内向き)ファイアウォールルールの後にサンプリングされます。上り(内向き)ファイアウォール ルールによってインバウンド パケットが拒否された場合、それらのパケットは VPC フローログでサンプリングされません。
- VPC フローログのフィルタを使用して、特定のログのみを生成できます。
- VPC フローログは、複数のネットワーク インターフェースを持つ VM をサポートします。ネットワーク インターフェースを含む各 VPC のサブネットごとに VPC フローログを有効にする必要があります。
- 同じ Google Kubernetes Engine(GKE)ノード上の Pod 間のフローをログに記録するには、クラスタのノード内の可視化を有効にする必要があります。
- VPC フローログは、Cloud Run やオンプレミス マシンなどの VM 以外のリソースからは報告されません。
ログの収集
フローログは、各 VM 接続ごとに特定の間隔で収集されます。特定の接続について特定の間隔で収集されたすべてのパケットは、一定期間(一定集計間隔で)単一のフローログ エントリに集計されます。このデータは Logging に送信されます。
ログはデフォルトで 30 日間 Logging に保存されます。それより長く保持するには、カスタム保持期間を設定するか、サポートされている保存先にログをエクスポートします。
ログのサンプリングと処理
Google Cloud は、VM で送受信されたパケットをサンプリングして、フローログを生成します。すべてのパケットが独自のログレコードに収集されるとは限りません。30 パケットごとに約 1 パケットがキャプチャされますが、このサンプリング レートは VM の負荷に応じて低くなることもあります。このレートは調整できません。
Google Cloud で生成されたフローログは、次の手順で処理されます。
- フィルタリング: 指定した条件に一致するログのみを生成するように指定できます。たとえば、特定の VM のログのみ、または特定のメタデータ値を持つログのみが生成され、残りは破棄されるようにフィルタリングできます。詳細については、ログのフィルタリングをご覧ください。
- 集計: サンプリングされたパケットの情報が、ユーザーが構成可能な集計間隔で集計され、フローログ エントリが生成されます。
- フローログのサンプリング: これは 2 番目のサンプリング処理です。ユーザーが構成可能なサンプルレートのパラメータに従って、フローログのエントリがさらにサンプリングされます。
- メタデータ: 無効にすると、すべてのメタデータ アノテーションが破棄されます。メタデータを保持する場合は、すべてのフィールドまたは指定したフィールド セットが保持されるように指定できます。詳細については、メタデータのアノテーションをご覧ください。
- Logging への書き込み: 最終的なログエントリが Cloud Logging に書き込まれます。
VPC フローログはすべてのパケットをキャプチャするわけではないため、キャプチャされたパケットから補完することで、欠落したパケットを補います。これは、初期構成とユーザーが構成可能なサンプリング設定が原因でパケットが欠落している場合に起こります。
Google Cloud ではすべてのパケットをキャプチャしませんが、ログレコードのキャプチャは非常に大きくなる可能性があります。ログ収集の以下の設定を調整すると、トラフィックの可視性と必要なストレージ費用のバランスをとることができます。
- 集計間隔: 一定の時間間隔でサンプリングされたパケットは、単一のログエントリに集計されます。この時間間隔は、5 秒(デフォルト)、30 秒、1 分、5 分、10 分、15 分から選択できます。
- サンプルレート: Logging に書き込まれる前に、ログの数をサンプリングして数を減らすことができます。デフォルトでは、ログエントリのボリュームが 0.5(50%)に縮小されます。つまり、エントリの半分が保持されます。このサンプルレートは
1.0
(100%、すべてのログエントリを保持)から0.0
(0%、ログを保持しない)の範囲で設定できます。 - メタデータ アノテーション: デフォルトでは、フローログ エントリには、送信元と宛先の VM の名前や、外部の送信元と宛先の地理的リージョンなどのメタデータ情報でアノテーションが付きます。メタデータ アノテーションをオフにすることも、特定のアノテーションのみを指定して保存容量を節約することもできます。
- フィルタリング: デフォルトでは、ログはサブネット内のすべてのフローに対して生成されます。特定の条件に一致するログのみを生成するように、フィルタを設定できます。
料金
Logging、BigQuery、または Pub/Sub の標準料金が適用されます。VPC フローログの料金については、Network Telemetry の料金をご覧ください。
次のステップ
- VPC フローログのレコード形式と使用可能なメタデータ アノテーションを確認する。VPC フローログ レコードについてをご覧ください。
- さまざまなユースケースで収集される VPC フローログの例を確認する。トラフィック フローについてをご覧ください。
- サブネットのフローのレポートを開始する。VPC フローログを構成するをご覧ください。