チュートリアル:Azure portal を使用して仮想マシンへの送受信ネットワーク トラフィックをログに記録する

このチュートリアルでは、Azure Network Watcher の NSG フロー ログ機能を使って、ネットワーク インターフェイスに関連付けられているネットワーク セキュリティ グループ (NSG) を通過する仮想マシンのネットワーク トラフィックをログする方法について説明します。

以下の方法について説明します。

  • 仮想ネットワークと bastion ホストを作成する
  • ネットワーク インターフェイスに関連付けられたネットワーク セキュリティ グループを使用して仮想マシンを作成する
  • Microsoft.insights プロバイダーを登録する
  • Network Watcher NSG のフロー ログを使用してネットワーク セキュリティ グループのフロー ログを有効にする
  • ログに記録されたデータをダウンロードする
  • ログに記録されたデータを表示する

前提条件

  • アクティブなサブスクリプションが含まれる Azure アカウント。 お持ちでない場合は、開始する前に無料アカウントを作成してください。

Azure へのサインイン

Azure portal にサインインします。

仮想ネットワークの作成

このセクションでは、myVNet 仮想ネットワークを作成します。

  1. ポータルの上部にある検索ボックスに、「仮想ネットワーク」と入力します。 検索結果で、[仮想ネットワーク] を選択します。

    Azure portal での仮想ネットワークの検索を示すスクリーンショット。

  2. [+ 作成] を選択します。 [仮想ネットワークの作成][基本] タブで、次の値を入力するか選びます。

    設定
    プロジェクトの詳細
    サブスクリプション Azure サブスクリプションを選択します。
    リソース グループ [新規作成] を選択します。
    [名前] に「myResourceGroup」と入力します。
    [OK] を選択します。
    インスタンスの詳細
    名前 myVNet」と入力します。
    リージョン [米国東部] を選択します。
  3. [IP アドレス] タブを選択するか、ページ下部の [次へ: IP アドレス] ボタンを選択します。

  4. [IP アドレス] タブで、次の値を入力します。

    設定
    IPv4 アドレス空間 10.0.0.0/16」と入力します。
    サブネット名 mySubnet」と入力します。
    サブネットのアドレス範囲 10.0.0.0/24」と入力します。
  5. [セキュリティ] タブを選択するか、ページ下部にある [次へ: セキュリティ] ボタンを選択します。

  6. [BastionHost][有効にする] を選択し、次のように入力します。

    設定
    要塞名 myBastionHost」と入力します
    AzureBastionSubnet のアドレス空間 10.0.1.0/24」と入力します。
    パブリック IP アドレス [新規作成] を選択します。
    [名前] に「myBastionIP」と入力します。

    を選択します。
  7. [確認と作成] タブを選択するか、 [確認と作成] ボタンを選択します。

  8. 設定を確認し、 [作成] を選択します。

仮想マシンの作成

このセクションでは、myVM 仮想マシンを作成します。

  1. ポータルの上部にある検索ボックスに「仮想マシン」と入力します。 検索結果から [仮想マシン] を選択します。

  2. [+ 作成] を選択し、[Azure 仮想マシン] を選択します。

  3. [仮想マシンの作成][基本] タブに次の値を入力するか選択します。

    設定
    プロジェクトの詳細
    サブスクリプション Azure サブスクリプションを選択します。
    リソース グループ [myResourceGroup] を選択します。
    インスタンスの詳細
    仮想マシン名 myVM」と入力します。
    リージョン [(米国) 米国東部] を選択します。
    可用性オプション [インフラストラクチャ冗長は必要ありません] を選択します。
    セキュリティの種類 [Standard] を選択します。
    Image [Windows Server 2022 Datacenter: Azure Edition - x64 Gen2] を選択します。
    サイズ サイズを選択するか、既定の設定のままにします。
    管理者アカウント
    ユーザー名 ユーザー名を入力します。
    Password パスワードを入力します。
    パスワードの確認 パスワードを再入力します。
  4. [ネットワーク] タブまたは [次へ: ディスク] を選択してから [次へ: ネットワーク] を選択します。

  5. [ネットワーク] タブで、次の値を選びます。

    設定
    ネットワーク インターフェイス
    仮想ネットワーク [myVNet] を選択します。
    Subnet [mySubnet] を選択します。
    パブリック IP [なし] を選択します。
    NIC ネットワーク セキュリティ グループ [Basic] を選択します。 この設定により、myVM-nsg という名前のネットワーク セキュリティ グループが作成され、myVM 仮想マシンのネットワーク インターフェイスに関連付けられます。
    パブリック受信ポート [なし] を選択します。
  6. [Review + create](レビュー + 作成) を選択します。

  7. 設定を確認し、 [作成] を選択します。

  8. デプロイが完了したら、[リソースに移動] を選んで myVM[概要] ページに移動します。

  9. [接続] を選んでから、[Bastion] を選びます。

  10. 前の手順で作成したユーザー名とパスワードを入力します。 [新しいブラウザー タブで開く] はオンのままにします。

  11. [接続] ボタンを選択します。

Insights プロバイダーの登録

NSG フローのログ記録には、Microsoft.Insights プロバイダーが必要です。 その状態を調べるには、次の手順のようにします。

  1. ポータルの上部にある検索ボックスに、「サブスクリプション」と入力します。 検索結果で [サブスクリプション] を選択します。

  2. [サブスクリプション] で、プロバイダーを有効にする Azure サブスクリプションを選びます。

  3. サブスクリプションの [設定] で、[リソース プロバイダー] を選びます。

  4. フィルター ボックスに「insight」と入力します。

  5. 表示されるプロバイダーの状態が [登録済み] になっていることを確認します。 状態が NotRegistered の場合は、Microsoft.Insights プロバイダーを選んで、[登録] を選びます。

    Azure portal での Microsoft Insights プロバイダーの登録のスクリーンショット。

ストレージ アカウントの作成

このセクションでは、フロー ログの格納に使うストレージ アカウントを作成します。

  1. ポータルの上部にある検索ボックスに、「ストレージ アカウント」と入力します。 検索結果で [ストレージ アカウント] を選択します。

  2. [+ 作成] を選択します。 [ストレージ アカウントの作成][基本] タブで、次の値を入力するか選びます。

    設定
    プロジェクトの詳細
    サブスクリプション Azure サブスクリプションを選択します。
    リソース グループ [myResourceGroup] を選択します。
    インスタンスの詳細
    ストレージ アカウント名 一意の名前を入力します。 このチュートリアルでは mynwstorageaccount を使用します。
    リージョン [(米国) 米国東部] を選択します。 このストレージ アカウントは、仮想マシンおよびそのネットワーク セキュリティ グループと同じリージョンに存在する必要があります。
    パフォーマンス [Standard] を選択します。 NSG フロー ログでは、Standard レベルのストレージ アカウントのみがサポートされます。
    冗長性 [ローカル冗長ストレージ (LRS)] を選択します。
  3. [確認] タブを選ぶか、下部にある [確認] ボタンを選びます。

  4. 設定を確認し、 [作成] を選択します。

NSG フロー ログの有効化

このセクションでは、このチュートリアルで前に作成したストレージ アカウントに保存される NSG フロー ログを作成します。

  1. ポータルの上部にある検索ボックスに、「network watcher」と入力します。 検索結果で [Network Watcher] を選択します。

  2. [ログ] の下で [NSG フローログ] を選択します。

  3. [Network Watcher | NSG フロー ログ] で、[+ 作成] または青い [NSG フロー ログの作成] ボタンを選びます。

    Azure portal の NSG フロー ログ ページのスクリーンショット。

  4. [フロー ログの作成] で、次の値を入力するか選びます。

    設定
    プロジェクトの詳細
    サブスクリプション Azure サブスクリプションを選択します。 仮想マシンとそのネットワーク セキュリティ グループのサブスクリプション。
    ネットワーク セキュリティ グループ [+ NSG の選択] を選びます。
    [myVM-nsg] を選択します。
    [選択の確認] を選択します。
    フロー ログ名 既定値の [myVM-nsg-myResourceGroup-flowlog] のままにします。
    インスタンスの詳細
    サブスクリプション Azure サブスクリプションを選択します。 ストレージ アカウントのサブスクリプション。
    ストレージ アカウント 前の手順で作成したストレージ アカウントを選択します。 このチュートリアルでは mynwstorageaccount を使用します。
    保有期間 (日) ログの保有期間を入力します。 このチュートリアルでは、1 日を使います。

    Azure portal の NSG フロー ログ作成ページのスクリーンショット。

  5. [Review + create](レビュー + 作成) を選択します。

  6. 設定を確認し、 [作成] を選択します。

  7. デプロイが完了したら、[リソースに移動] を選択します。

    新しく作成されたフロー ログが示されている、Azure portal の NSG フロー ログ ページのスクリーンショット。

  8. myVM 仮想マシンのブラウザー タブに戻ります。

  9. myVM で、Microsoft Edge を開いて www.bing.com に移動します。

フロー ログのダウンロード

このセクションでは、前に選んだストレージ アカウントに移動し、前のセクションで作成した NSG フロー ログをダウンロードします。

  1. ポータルの上部にある検索ボックスに、「ストレージ アカウント」と入力します。 検索結果で [ストレージ アカウント] を選択します。

  2. mynwstorageaccount または前にログを保存するために作成して選んだストレージ アカウントを選びます。

  3. [データ ストレージ] で、[コンテナー] を選択します。

  4. [insights-logs-networksecuritygroupflowevent] コンテナーを選択します。

  5. このコンテナーで、PT1H.json ファイルの場所までフォルダー階層内を移動します。 NSG ログ ファイルは、次の名前付け規則に従うフォルダー階層に書き込まれます。

    https://<ストレージ アカウント名>.blob.core.windows.net/insights-logs-networksecuritygroupflowevent/resourceId=/SUBSCRIPTIONS/<サブスクリプション ID>/RESOURCEGROUPS/<リソース グループ名>/PROVIDERS/MICROSOFT.NETWORK/NETWORKSECURITYGROUPS/<ネットワーク セキュリティ グループ名>/y=<年>/m=<月>/d=<日>/h=<時>/m=00/macAddress=/PT1H.json

  6. PT1H.json ファイルの右側にある省略記号 [...] を選んでから、[ダウンロード] を選びます。

    Azure portal のストレージ アカウント コンテナーから NSG フロー ログをダウンロードする方法を示すスクリーンショット。

フロー ログの表示

任意のテキスト エディターを使って、ダウンロードした PT1H.json ファイルを開きます。 次の例は、ダウンロードした PT1H.json ファイルから取得したセクションであり、ルール DefaultRule_AllowInternetOutBound によって処理されるフローを示しています。

{
    "time": "2023-02-26T23:45:44.1503927Z",
    "systemId": "00000000-0000-0000-0000-000000000000",
    "macAddress": "112233445566",
    "category": "NetworkSecurityGroupFlowEvent",
    "resourceId": "/SUBSCRIPTIONS/abcdef01-2345-6789-0abc-def012345678/RESOURCEGROUPS/MYRESOURCEGROUP/PROVIDERS/MICROSOFT.NETWORK/NETWORKSECURITYGROUPS/MYVM-NSG",
    "operationName": "NetworkSecurityGroupFlowEvents",
    "properties": {
        "Version": 2,
        "flows": [
            {
                "rule": "DefaultRule_AllowInternetOutBound",
                "flows": [
                    {
                        "mac": "112233445566",
                        "flowTuples": [
                            "1677455097,10.0.0.4,13.107.21.200,49982,443,T,O,A,C,7,1158,12,8143"                            
                        ]
                    }
                ]
            }
        ]
    }
}

flowTuples のコンマで区切られた情報を次に示します。

サンプル データ データが表す内容 説明
1677455097 タイム スタンプ フローが発生したときのタイム スタンプ (UNIX EPOCH 形式)。 前の例の日付は、2023 年 2 月 26 日午後 11:44:57 UTC/GMT に変換されます。
10.0.0.4 送信元 IP アドレス フローが発生したソース IP アドレス。 10.0.0.4 は、前に作成した VM のプライベート IP アドレスです。
13.107.21.200 宛先 IP アドレス フローが送信された宛先 IP アドレス。13.107.21.200 は www.bing.com の IP アドレスです。 トラフィックは Azure の外部に送信されるため、セキュリティ規則 DefaultRule_AllowInternetOutBound によってフローが処理されました。
49982 発信元ポート フローが発生したソース ポート。
443 宛先ポート フローが送信された宛先ポート。
T Protocol フローのプロトコル。 T: TCP。
O Direction フローの方向。 O: アウトバウンド。
A 決定 セキュリティ規則によって行われた決定。 A: 許可。
C フロー状態 (バージョン 2 のみ) フローの状態。 C: 継続中。フローが進行中です。
7 送信されたパケット数 (バージョン 2 のみ) 最後の更新以降に宛先に送信された TCP パケットの合計数。
1158 送信されたバイト数 (バージョン 2 のみ) 最後の更新以降に送信元から宛先に送信された TCP パケットのバイト数の合計。 パケットのバイト数には、パケット ヘッダーとペイロードが含まれます。
12 受信されたパケット数 (バージョン 2 のみ) 最後の更新以降に宛先から受信した TCP パケットの合計数。
8143 受信されたバイト数 (バージョン 2 のみ) 最後の更新以降に宛先から受信した TCP パケット バイト数の合計。 パケットのバイト数には、パケット ヘッダーとペイロードが含まれます。

NSG フロー ログを無効にする

ログの必要がなくなったら、前に作成した NSG フロー ログを無効にできます。

  1. ポータルの上部にある検索ボックスに、「network watcher」と入力します。 検索結果で [Network Watcher] を選択します。

  2. [ログ] の下で [NSG フローログ] を選択します。

  3. myVM-nsg-myresourcegroup-flowlog フロー ログの右側にある省略記号 [...] を選ぶか、それを右クリックして、[無効] を選びます。

  4. [NSG フロー ログを無効にする] で、[無効] を選びます。

    Azure portal で無効にされた NSG フロー ログを示すスクリーンショット。

リソースをクリーンアップする

myResourceGroup とそれに含まれるすべてのリソースが不要になったら、それらを削除します。

  1. ポータル上部の [検索] ボックスに「myResourceGroup」と入力します。 検索結果に [myResourceGroup] が表示されたら、それを選択します。
  2. [リソース グループの削除] を選択します。
  3. [TYPE THE RESOURCE GROUP NAME:](リソース グループ名を入力してください:) に「myResourceGroup」と入力し、 [削除] を選択します。

次のステップ

このチュートリアルでは、以下の内容を学習しました。

  • ネットワーク セキュリティ グループの NSG フロー ログを有効にして、仮想マシンとの間のトラフィックをログします。
  • フロー ログのデータをダウンロードして表示します。

JSON ファイル内の生データは解釈が難しい場合があります。 フロー ログのデータを視覚化するには、Azure Traffic AnalyticsMicrosoft Power BI を使用できます。

NSG フロー ログを有効にする別の方法については、PowerShellAzure CLIREST API、または Resource Manager テンプレートに関する記事をご覧ください。

Network Watcher の接続モニターを使って、仮想マシン間のネットワーク通信を監視する方法については、次をご覧ください。