VNet フロー ログ (プレビュー)

仮想ネットワーク (VNet) フロー ログは、Azure Network Watcher の機能です。 これらを使用して、仮想ネットワークを通過する IP トラフィックに関する情報をログに記録できます。

VNet フロー ログからのフロー データは、Azure Storage に送信されます。 そこからデータにアクセスし、任意の視覚化ツール、セキュリティ情報イベント管理 (SIEM) ソリューション、または侵入検出システム (IDS) にエクスポートできます。 VNet フロー ログは、NSG フロー ログの制限を克服します。

重要

VNet フロー ログ機能は現在、プレビュー段階です。 このプレビュー バージョンはサービス レベル アグリーメントなしで提供されており、運用環境のワークロードに使用することは推奨されません。 特定の機能はサポート対象ではなく、機能が制限されることがあります。 ベータ版、プレビュー版、または一般提供としてまだリリースされていない Azure の機能に適用される法律条項については、「Microsoft Azure プレビューの追加使用条件」を参照してください。

フロー ログを使用する理由

ネットワークを保護して最適化できるように、ネットワークを監視、管理、把握することは重要です。 ネットワークの現在の状態、接続しているユーザー、ユーザーの接続先を把握することが必要な場合があります。 また、インターネットに対して開かれているポート、予想されるネットワーク動作、不規則なネットワーク動作、トラフィックが急激に増加するタイミングを把握することが必要な場合もあります。

フロー ログは、クラウド環境内のすべてのネットワーク アクティビティの信頼できるソースです。 リソースを最適化しようとしているスタートアップ企業でも、侵入を検出しようとしている大企業でも、フロー ログは役立ちます。 フロー ログは、ネットワーク フローの最適化、スループットの監視、コンプライアンスの検証、侵入の検出などに使用できます。

一般的なユース ケース

ネットワーク監視

  • 不明または不要なトラフィックを特定します。
  • トラフィック レベルと帯域幅の消費を監視します。
  • アプリケーションの動作を把握するために、フロー ログを IP およびポートでフィルター処理します。
  • 任意の分析ツールや視覚化ツールにフロー ログをエクスポートして、監視ダッシュボードを設定します。

使用状況の監視と最適化

  • ネットワークのトップ トーカーを特定します。
  • GeoIP データと組み合わせて、リージョン間のトラフィックを識別します。
  • 容量の予測用にトラフィックの増加について把握します。
  • データを使用して、過度に制限されたトラフィック規則を削除します。

コンプライアンス

  • フロー データを使用して、ネットワークの分離とエンタープライズ アクセス規則への準拠を確認します。

ネットワーク フォレンジクスとセキュリティ分析

  • 侵害された IP とネットワーク インターフェイスからのネットワーク フローを分析します。
  • 選択した SIEM または IDS ツールにフロー ログをエクスポートします。

NSG フロー ログと比較した VNet フロー ログ

VNet フロー ログと NSG フロー ログの両方で IP トラフィックが記録されますが、その動作と機能は異なります。

VNet フロー ログを使用すると、仮想ネットワークでログ記録を有効にできるため、トラフィック監視のスコープが簡略化されます。 仮想ネットワーク内でサポートされているすべてのワークロードを通過するトラフィックが記録されます。

また、VNet フロー ログでは、NSG フロー ログの場合のような、複数レベルのフロー ログを有効にする必要がなくなります。 NSG フロー ログでは、ネットワーク セキュリティ グループはサブネットとネットワーク インターフェイス (NIC) の両方で構成されます。

ネットワーク セキュリティ グループ規則によって許可または拒否されるトラフィックを識別するための既存のサポートに加えて、VNet フロー ログでは、Azure Virtual Network Manager セキュリティ管理規則によって許可または拒否されるトラフィックの識別がサポートされます。 VNet フロー ログでは、仮想ネットワーク暗号化を使用しているシナリオでのネットワーク トラフィックの暗号化状態の評価もサポートされています。

重要

トラフィックの重複記録や追加コストを避けるために、同じ基になるワークロードで VNet フロー ログを有効にする前に、NSG フロー ログを無効にすることをお勧めします。 サブネットのネットワーク セキュリティ グループで NSG フロー ログを有効にした場合、同じサブネットまたは親仮想ネットワークで VNet フロー ログを有効にすると、重複したログが取得される可能性があります (NSG フロー ログと VNet フロー ログの両方が、その特定のサブネットでサポートされているすべてのワークロードに対して生成されます)。

ログのしくみ

VNet フロー ログの主な特性は次のとおりです。

  • フロー ログは、オープン システム相互接続 (OSI) モデルのレイヤー 4 で動作し、仮想ネットワークを通過するすべての IP フローを記録します。
  • ログは、Azure プラットフォームを通して 1 分間隔で収集されます。 お使いの Azure リソースやネットワーク トラフィックに影響はありません。
  • ログは JavaScript Object Notation (JSON) 形式で書き込まれます。
  • 各ログ レコードには、フローが適用されるネットワーク インターフェイス、5 タプル情報、トラフィックの方向、フローの状態、暗号化状態、およびスループット情報が含まれています。
  • ネットワーク内のすべてのトラフィック フローは、該当するネットワーク セキュリティ グループ規則または Azure Virtual Network Manager セキュリティ管理規則を通じて評価されます。

ログ形式

VNet フロー ログには、次のプロパティがあります。

  • time: イベントがログに記録された時刻 (UTC)。
  • flowLogVersion: フロー ログ スキーマのバージョン。
  • flowLogGUID: FlowLog リソースの リソース GUID。
  • macAddress: イベントがキャプチャされたネットワーク インターフェイスの MAC アドレス。
  • category: イベントのカテゴリ。 カテゴリは常に FlowLogFlowEvent となります。
  • flowLogResourceID: FlowLog リソースのリソース ID。
  • targetResourceID: FlowLog リソースに関連付けられたターゲット リソースのリソース ID。
  • operationName: 常に FlowLogFlowEvent となります。
  • flowRecords: フロー レコードのコレクション。
    • flows: フローのコレクション。 このプロパティには、アクセス制御リスト (ACL) に対する複数のエントリがあります。
      • aclID: トラフィックを評価するリソース (ネットワーク セキュリティ グループまたは Virtual Network Manager) の識別子。 暗号化のために拒否されたトラフィックの場合、この値は unspecified です。
      • flowGroups: ルール レベルでのフロー レコードのコレクション:
        • rule: トラフィックを許可または拒否したルールの名前。 暗号化のために拒否されたトラフィックの場合、この値は unspecified です。
        • flowTuples: コンマ区切り形式のフローの組に対する複数のプロパティを含む文字列。
          • Time Stamp: フローが発生した際のタイム スタンプ (UNIX エポック形式 )。
          • Source IP: 送信元 IP アドレス。
          • Destination IP: 宛先 IP アドレス。
          • Source port: 送信元ポート。
          • Destination port: 宛先ポート。
          • Protocol: IANA 割り当て値で表されるフローのレイヤー 4 プロトコル。
          • Flow direction: トラフィックの方向。 有効な値は受信の I と送信の O です。
          • Flow state: フローの状態。 次の状態があります。
            • B: 開始。フローが作成された時点。 統計は提供されません。
            • C: 継続中。フローが進行中。 統計が 5 分間隔で提供されます。
            • E: 終了。フローが終了した時点。 統計が提供されます。
            • D: フローが拒否された場合 (Deny)。
          • Flow encryption: フローの暗号化の状態。 このリストの後の表で、使用可能な値について説明されています。
          • Packets sent: 最後の更新以降に送信元から宛先に送信されたパケット数の合計。
          • Bytes sent: 最後の更新以降に送信元から宛先に送信されたパケットのバイト数の合計。 パケットのバイト数には、パケット ヘッダーとペイロードが含まれます。
          • Packets received: 最後の更新以降に宛先から送信元に送信されたパケット数の合計。
          • Bytes received: 最後の更新以降に宛先から送信元に送信されたパケットのバイト数の合計。 パケットのバイト数には、パケット ヘッダーとペイロードが含まれます。

Flow encryption には、次の暗号化状態があり得ます。

暗号化の状態 説明
X 接続は暗号化されています。 暗号化が構成され、プラットフォームによって接続が暗号化されています。
NX 接続は暗号化されていません。 このイベントは、次の 2 つのシナリオでログされます。
- 暗号化が構成されていない場合。
- 暗号化された仮想マシンが、暗号化がないエンドポイント (インターネット エンドポイントなど) と通信する場合。
NX_HW_NOT_SUPPORTED ハードウェアはサポートされていません。 暗号化は構成されていますが、暗号化をサポートしていないホストで仮想マシンが実行されています。 通常、この問題は、フィールド プログラマブル ゲート アレイ (FPGA) がホストに接続されていないか、障害が発生しているため、発生します。 調査のため、この問題を Microsoft に報告してください。
NX_SW_NOT_READY ソフトウェアの準備ができていません。 暗号化は構成されていますが、ホスト ネットワーク スタック内のソフトウェア コンポーネント (GFT) が、暗号化された接続を処理する準備ができていません。 この問題は、仮想マシンが初めて起動するとき、再起動中、または再デプロイされるときに発生する可能性があります。 また、仮想マシンが実行されているホスト上のネットワーク コンポーネントが更新される場合にも発生する可能性があります。 これらすべてのシナリオで、パケットが破棄されます。 問題は一時的なものです。 仮想マシンが完全に起動して稼働するか、ホスト上のソフトウェア更新プログラムが完了すると、暗号化が機能し始めます。 問題が長期間続く場合は、調査のために Microsoft に報告してください。
NX_NOT_ACCEPTED 暗号化されていないために削除。 暗号化は送信元と宛先のエンドポイントの両方で構成されており、非暗号化を削除するポリシーが設定されています。 トラフィックの暗号化に失敗した場合、パケットは破棄されます。
NX_NOT_SUPPORTED 検出はサポートされていません。 暗号化は構成されていますが、ホスト ネットワーク スタックで検出がサポートされていないため、暗号化セッションは確立されませんでした。 この場合、パケットは削除されます。 この問題が発生した場合は、調査のために Microsoft に報告してください。
NX_LOCAL_DST 宛先は同じホスト上にあります。 暗号化は構成されていますが、送信元と宛先の仮想マシンは同じ Azure ホスト上で実行されています。 この場合、接続は仕様上暗号化されません。
NX_FALLBACK 暗号化なしにフォールバックします。 送信元と宛先のエンドポイントの両方で、非暗号化を許可するポリシーを使用して暗号化が構成されています。 暗号化が試みられましたが、問題が発生しました。 この場合、接続は許可されますが、暗号化されません。 たとえば、仮想マシンが当初は暗号化をサポートするノードで稼動していたが、後でこのサポートが削除された場合などです。

仮想ネットワーク内のトラフィックは、既定では暗号化されていません (NX)。 暗号化されたトラフィックの場合は、「仮想ネットワーク暗号化」を参照してください。

サンプル ログ レコード

次のVNet フロー ログの例では、前に説明したプロパティ リストの後に複数のレコードが続きます。

{
    "records": [
        {
            "time": "2022-09-14T09:00:52.5625085Z",
            "flowLogVersion": 4,
            "flowLogGUID": "abcdef01-2345-6789-0abc-def012345678",
            "macAddress": "00224871C205",
            "category": "FlowLogFlowEvent",
            "flowLogResourceID": "/SUBSCRIPTIONS/00000000-0000-0000-0000-000000000000/RESOURCEGROUPS/NETWORKWATCHERRG/PROVIDERS/MICROSOFT.NETWORK/NETWORKWATCHERS/NETWORKWATCHER_EASTUS2EUAP/FLOWLOGS/VNETFLOWLOG",
            "targetResourceID": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVNet",
            "operationName": "FlowLogFlowEvent",
            "flowRecords": {
                "flows": [
                    {
                        "aclID": "00000000-1234-abcd-ef00-c1c2c3c4c5c6",
                        "flowGroups": [
                            {
                                "rule": "DefaultRule_AllowInternetOutBound",
                                "flowTuples": [
                                    "1663146003599,10.0.0.6,52.239.184.180,23956,443,6,O,B,NX,0,0,0,0",
                                    "1663146003606,10.0.0.6,52.239.184.180,23956,443,6,O,E,NX,3,767,2,1580",
                                    "1663146003637,10.0.0.6,40.74.146.17,22730,443,6,O,B,NX,0,0,0,0",
                                    "1663146003640,10.0.0.6,40.74.146.17,22730,443,6,O,E,NX,3,705,4,4569",
                                    "1663146004251,10.0.0.6,40.74.146.17,22732,443,6,O,B,NX,0,0,0,0",
                                    "1663146004251,10.0.0.6,40.74.146.17,22732,443,6,O,E,NX,3,705,4,4569",
                                    "1663146004622,10.0.0.6,40.74.146.17,22734,443,6,O,B,NX,0,0,0,0",
                                    "1663146004622,10.0.0.6,40.74.146.17,22734,443,6,O,E,NX,2,134,1,108",
                                    "1663146017343,10.0.0.6,104.16.218.84,36776,443,6,O,B,NX,0,0,0,0",
                                    "1663146022793,10.0.0.6,104.16.218.84,36776,443,6,O,E,NX,22,2217,33,32466"
                                ]
                            }
                        ]
                    },
                    {
                        "aclID": "01020304-abcd-ef00-1234-102030405060",
                        "flowGroups": [
                            {
                                "rule": "BlockHighRiskTCPPortsFromInternet",
                                "flowTuples": [
                                    "1663145998065,101.33.218.153,10.0.0.6,55188,22,6,I,D,NX,0,0,0,0",
                                    "1663146005503,192.241.200.164,10.0.0.6,35276,119,6,I,D,NX,0,0,0,0"
                                ]
                            },
                            {
                                "rule": "Internet",
                                "flowTuples": [
                                    "1663145989563,20.106.221.10,10.0.0.6,50557,44357,6,I,D,NX,0,0,0,0",
                                    "1663145989679,20.55.117.81,10.0.0.6,62797,35945,6,I,D,NX,0,0,0,0",
                                    "1663145989709,20.55.113.5,10.0.0.6,51961,65515,6,I,D,NX,0,0,0,0",
                                    "1663145990049,13.65.224.51,10.0.0.6,40497,40129,6,I,D,NX,0,0,0,0",
                                    "1663145990145,20.55.117.81,10.0.0.6,62797,30472,6,I,D,NX,0,0,0,0",
                                    "1663145990175,20.55.113.5,10.0.0.6,51961,28184,6,I,D,NX,0,0,0,0",
                                    "1663146015545,20.106.221.10,10.0.0.6,50557,31244,6,I,D,NX,0,0,0,0"
                                ]
                            }
                        ]
                    }
                ]
            }
        }
    ]
}

ログの組と帯域幅の計算

仮想ネットワーク フロー ログの形式を示す表。

185.170.185.105:3537010.2.0.4:23 の間の TCP 通信のフローのタプルの帯域幅計算の例を次に示します。

1493763938,185.170.185.105,10.2.0.4,35370,23,6,I,B,NX,,,, 1493695838,185.170.185.105,10.2.0.4,35370,23,6,I,C,NX,1021,588096,8005,4610880 1493696138,185.170.185.105,10.2.0.4,35370,23,6,I,E,NX,52,29952,47,27072

継続 (C) と終了 (E) のフロー状態では、バイト数とパケット数は、前のフローの組のレコードの時点から集計した数です。 この通信の例では、転送されたパケットの合計は 1,021 + 52 + 8,005 + 47 = 9,125 です。 転送された合計バイト数は 588,096 + 29,952 + 4,610,880 + 27,072 = 5,256,000 です。

VNet フロー ログのストレージ アカウントに関する考慮事項

  • 場所: ストレージ アカウントは、仮想ネットワークと同じリージョンに存在する必要があります。
  • サブスクリプション: ストレージ アカウントは、仮想ネットワークと同じサブスクリプション内または仮想ネットワークのサブスクリプションと同じ Microsoft Entra テナントに関連付けられているサブスクリプション内にある必要があります。
  • パフォーマンス レベル: ストレージ アカウントは Standard である必要があります。 Premium ストレージ アカウントはサポートされていません。
  • 自己管理型のキーのローテーション: ストレージ アカウントへのアクセス キーを変更またはローテーションすると、VNet フロー ログの動作が停止します。 この問題を修正するには、VNet フロー ログを無効にしてからもう一度有効にする必要があります。

価格

現時点では、VNet フロー ログは課金されません。 ただし、次のコストが適用されます。

  • トラフィック分析: VNet フロー ログでトラフィック分析が有効になっている場合、トラフィック分析の価格はギガバイト単位の処理レートで適用されます。 詳細については、「Network Watcher の価格」を参照してください。

  • ストレージ: フロー ログはストレージ アカウントに保存され、アイテム保持ポリシーは 1 日から 365 日に設定できます。 アイテム保持ポリシーが設定されていない場合、ログは無期限に保持されます。 VNet フロー ログの価格には、ストレージのコストは含まれていません。 詳細については、「Azure Blob Storage の価格」を参照してください。

可用性

VNet フロー ログは、次のリージョンでプレビュー中に利用できます。

  • インド中部
  • 米国東部
  • 米国東部 2
  • フランス中部
  • 東日本
  • 西日本
  • 北ヨーロッパ
  • スイス北部
  • アラブ首長国連邦北部
  • 英国南部
  • 米国中西部
  • 西ヨーロッパ
  • 米国西部
  • 米国西部 2

Note

プレビューにアクセスするためにサインアップする必要がなくなりました。