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

ネットワーク セキュリティ グループのフロー ログは、ネットワーク セキュリティ グループを通過する IP トラフィックに関する情報をログに記録できる Azure Network Watcher の機能です。 ネットワーク セキュリティ グループのフロー ログの詳細については、NSG フロー ログの概要に関するページを参照してください。

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

チュートリアルで作成されるリソースを示す図。

このチュートリアルでは、次の作業を行う方法について説明します。

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

前提条件

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

仮想ネットワークの作成

このセクションでは、仮想マシン用のサブネットを 1 つ持つ myVNet 仮想ネットワークを作成します。

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

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

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

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

    設定
    プロジェクトの詳細
    サブスクリプション Azure サブスクリプションを選択します。
    リソース グループ [新規作成] を選択します。
    [名前] に「myResourceGroup」と入力します。
    [OK] を選択します。
    インスタンスの詳細
    名前 myVNet」と入力します。
    リージョン [(米国) 米国東部] を選択します。
  4. [Review + create](レビュー + 作成) を選択します。

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

仮想マシンの作成

このセクションでは、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 (新規) myVM-ip を選択します。
    NIC ネットワーク セキュリティ グループ [Basic] を選択します。 この設定により、myVM-nsg という名前のネットワーク セキュリティ グループが作成され、myVM 仮想マシンのネットワーク インターフェイスに関連付けられます。
    パブリック受信ポート [選択したポートを許可する] を選択します。
    受信ポートの選択 [RDP (3389)] を選択します。

    注意事項

    RDP ポートをインターネットに対して開いたままにしておくことは、テストにのみお勧めします。 運用環境では、RDP ポートへのアクセスを特定の IP アドレスまたは IP アドレスの範囲に制限することをお勧めします。 RDP ポートへのインターネット アクセスをブロックし、Azure Bastion を使用して、Azure ポータルから仮想マシンに安全に接続することもできます。

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

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

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

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

  10. [RDP ファイルのダウンロード] を選択して、ダウンロードしたファイルを開きます。

  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. [ログ] の下の [フロー ログ] を選択します。

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

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

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

    設定
    プロジェクトの詳細
    サブスクリプション ログに記録するネットワーク セキュリティ グループの Azure サブスクリプションを選択します。
    ネットワーク セキュリティ グループ [+ リソースの選択] を選択します。
    [ネットワーク セキュリティ グループの選択] で、"myVM-nsg" を選択します。 次に、[選択の確認] を選択します。
    フロー ログ名 既定値の [myVM-nsg-myResourceGroup-flowlog] のままにします。
    インスタンスの詳細
    サブスクリプション ストレージ アカウントの Azure サブスクリプションを選択します。
    ストレージ アカウント 前の手順で作成したストレージ アカウントを選択します。 このチュートリアルでは mynwstorageaccount を使用します。
    保有期間 (日) フロー ログ データをストレージ アカウントから削除するまではストレージ アカウントに無期限に保持するには、「0」を入力します。 アイテム保持ポリシーを適用するには、保持期間を日数で入力します。 ストレージの価格の詳細については、Azure Storage の価格に関する記事をご覧ください。

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

    Note

    Azure portal では、NetworkWatcherRG リソース グループに NSG フロー ログが作成されます。

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

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

  7. デプロイが完了したら、[リソースに移動] を選択して、フロー ログが作成され、[フロー ログ] ページに一覧表示されていることを確認します。

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

  8. myVM 仮想マシンとの RDP セッションに戻るします。

  9. Microsoft Edge を開き、 www.bing.com に移動します。

フロー ログをダウンロードする

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

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

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

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

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

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

    https://{storageAccountName}.blob.core.windows.net/insights-logs-networksecuritygroupflowevent/resourceId=/SUBSCRIPTIONS/{subscriptionID}/RESOURCEGROUPS/{resourceGroupName}/PROVIDERS/MICROSOFT.NETWORK/NETWORKSECURITYGROUPS/{networSecurityGroupName}/y={year}/m={month}/d={day}/h={hour}/m=00/macAddress={acAddress}/PT1H.json
    
  6. PT1H.json ファイルの右側にある省略記号 [...] を選んでから、[ダウンロード] を選びます。

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

Note

Azure Storage Explorer を使用して、ストレージ アカウントにあるフロー ログにアクセスしてダウンロードすることができます。 詳細については、「Storage Explorer の概要」を参照してください。

フロー ログを表示する

任意のテキスト エディターを使って、ダウンロードした 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 パケット バイト数の合計。 パケットのバイト数には、パケット ヘッダーとペイロードが含まれます。

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

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

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

  2. [リソース グループの削除] を選択します。

  3. [リソース グループの削除] に「myResourceGroup」と入力し、[削除] を選択します。

  4. [削除] を選択して、リソース グループとそのすべてのリソースの削除を確認します。

注意

myVM-nsg-myResourceGroup-flowlog フローログは NetworkWatcherRG リソース グループにありますが、myVM-nsg ネットワーク セキュリティ グループを削除した後 (myResourceGroup リソース グループを削除することによって) 削除されます。