チュートリアル:Azure portal を使用して仮想マシンへの送受信ネットワーク トラフィックをログに記録する
このチュートリアルでは、Azure Network Watcher の NSG フロー ログ機能を使って、ネットワーク インターフェイスに関連付けられているネットワーク セキュリティ グループ (NSG) を通過する仮想マシンのネットワーク トラフィックをログする方法について説明します。
以下の方法について説明します。
- 仮想ネットワークと bastion ホストを作成する
- ネットワーク インターフェイスに関連付けられたネットワーク セキュリティ グループを使用して仮想マシンを作成する
- Microsoft.insights プロバイダーを登録する
- Network Watcher NSG のフロー ログを使用してネットワーク セキュリティ グループのフロー ログを有効にする
- ログに記録されたデータをダウンロードする
- ログに記録されたデータを表示する
前提条件
- アクティブなサブスクリプションが含まれる Azure アカウント。 お持ちでない場合は、開始する前に無料アカウントを作成してください。
Azure へのサインイン
Azure portal にサインインします。
仮想ネットワークの作成
このセクションでは、myVNet 仮想ネットワークを作成します。
ポータルの上部にある検索ボックスに、「仮想ネットワーク」と入力します。 検索結果で、[仮想ネットワーク] を選択します。
[+ 作成] を選択します。 [仮想ネットワークの作成] の [基本] タブで、次の値を入力するか選びます。
設定 値 プロジェクトの詳細 サブスクリプション Azure サブスクリプションを選択します。 リソース グループ [新規作成] を選択します。 [名前] に「myResourceGroup」と入力します。 [OK] を選択します。 インスタンスの詳細 名前 「myVNet」と入力します。 リージョン [米国東部] を選択します。 [IP アドレス] タブを選択するか、ページ下部の [次へ: IP アドレス] ボタンを選択します。
[IP アドレス] タブで、次の値を入力します。
設定 値 IPv4 アドレス空間 「10.0.0.0/16」と入力します。 サブネット名 「mySubnet」と入力します。 サブネットのアドレス範囲 「10.0.0.0/24」と入力します。 [セキュリティ] タブを選択するか、ページ下部にある [次へ: セキュリティ] ボタンを選択します。
[BastionHost] で [有効にする] を選択し、次のように入力します。
設定 値 要塞名 「myBastionHost」と入力します AzureBastionSubnet のアドレス空間 「10.0.1.0/24」と入力します。 パブリック IP アドレス [新規作成] を選択します。 [名前] に「myBastionIP」と入力します。 を選択します。 [確認と作成] タブを選択するか、 [確認と作成] ボタンを選択します。
設定を確認し、 [作成] を選択します。
仮想マシンの作成
このセクションでは、myVM 仮想マシンを作成します。
ポータルの上部にある検索ボックスに「仮想マシン」と入力します。 検索結果から [仮想マシン] を選択します。
[+ 作成] を選択し、[Azure 仮想マシン] を選択します。
[仮想マシンの作成] の [基本] タブに次の値を入力するか選択します。
設定 値 プロジェクトの詳細 サブスクリプション Azure サブスクリプションを選択します。 リソース グループ [myResourceGroup] を選択します。 インスタンスの詳細 仮想マシン名 「myVM」と入力します。 リージョン [(米国) 米国東部] を選択します。 可用性オプション [インフラストラクチャ冗長は必要ありません] を選択します。 セキュリティの種類 [Standard] を選択します。 Image [Windows Server 2022 Datacenter: Azure Edition - x64 Gen2] を選択します。 サイズ サイズを選択するか、既定の設定のままにします。 管理者アカウント ユーザー名 ユーザー名を入力します。 Password パスワードを入力します。 パスワードの確認 パスワードを再入力します。 [ネットワーク] タブまたは [次へ: ディスク] を選択してから [次へ: ネットワーク] を選択します。
[ネットワーク] タブで、次の値を選びます。
設定 値 ネットワーク インターフェイス 仮想ネットワーク [myVNet] を選択します。 Subnet [mySubnet] を選択します。 パブリック IP [なし] を選択します。 NIC ネットワーク セキュリティ グループ [Basic] を選択します。 この設定により、myVM-nsg という名前のネットワーク セキュリティ グループが作成され、myVM 仮想マシンのネットワーク インターフェイスに関連付けられます。 パブリック受信ポート [なし] を選択します。 [Review + create](レビュー + 作成) を選択します。
設定を確認し、 [作成] を選択します。
デプロイが完了したら、[リソースに移動] を選んで myVM の [概要] ページに移動します。
[接続] を選んでから、[Bastion] を選びます。
前の手順で作成したユーザー名とパスワードを入力します。 [新しいブラウザー タブで開く] はオンのままにします。
[接続] ボタンを選択します。
Insights プロバイダーの登録
NSG フローのログ記録には、Microsoft.Insights プロバイダーが必要です。 その状態を調べるには、次の手順のようにします。
ポータルの上部にある検索ボックスに、「サブスクリプション」と入力します。 検索結果で [サブスクリプション] を選択します。
[サブスクリプション] で、プロバイダーを有効にする Azure サブスクリプションを選びます。
サブスクリプションの [設定] で、[リソース プロバイダー] を選びます。
フィルター ボックスに「insight」と入力します。
表示されるプロバイダーの状態が [登録済み] になっていることを確認します。 状態が NotRegistered の場合は、Microsoft.Insights プロバイダーを選んで、[登録] を選びます。
ストレージ アカウントの作成
このセクションでは、フロー ログの格納に使うストレージ アカウントを作成します。
ポータルの上部にある検索ボックスに、「ストレージ アカウント」と入力します。 検索結果で [ストレージ アカウント] を選択します。
[+ 作成] を選択します。 [ストレージ アカウントの作成] の [基本] タブで、次の値を入力するか選びます。
設定 値 プロジェクトの詳細 サブスクリプション Azure サブスクリプションを選択します。 リソース グループ [myResourceGroup] を選択します。 インスタンスの詳細 ストレージ アカウント名 一意の名前を入力します。 このチュートリアルでは mynwstorageaccount を使用します。 リージョン [(米国) 米国東部] を選択します。 このストレージ アカウントは、仮想マシンおよびそのネットワーク セキュリティ グループと同じリージョンに存在する必要があります。 パフォーマンス [Standard] を選択します。 NSG フロー ログでは、Standard レベルのストレージ アカウントのみがサポートされます。 冗長性 [ローカル冗長ストレージ (LRS)] を選択します。 [確認] タブを選ぶか、下部にある [確認] ボタンを選びます。
設定を確認し、 [作成] を選択します。
NSG フロー ログの有効化
このセクションでは、このチュートリアルで前に作成したストレージ アカウントに保存される NSG フロー ログを作成します。
ポータルの上部にある検索ボックスに、「network watcher」と入力します。 検索結果で [Network Watcher] を選択します。
[ログ] の下で [NSG フローログ] を選択します。
[Network Watcher | NSG フロー ログ] で、[+ 作成] または青い [NSG フロー ログの作成] ボタンを選びます。
[フロー ログの作成] で、次の値を入力するか選びます。
設定 値 プロジェクトの詳細 サブスクリプション Azure サブスクリプションを選択します。 仮想マシンとそのネットワーク セキュリティ グループのサブスクリプション。 ネットワーク セキュリティ グループ [+ NSG の選択] を選びます。
[myVM-nsg] を選択します。
[選択の確認] を選択します。フロー ログ名 既定値の [myVM-nsg-myResourceGroup-flowlog] のままにします。 インスタンスの詳細 サブスクリプション Azure サブスクリプションを選択します。 ストレージ アカウントのサブスクリプション。 ストレージ アカウント 前の手順で作成したストレージ アカウントを選択します。 このチュートリアルでは mynwstorageaccount を使用します。 保有期間 (日) ログの保有期間を入力します。 このチュートリアルでは、1 日を使います。 [Review + create](レビュー + 作成) を選択します。
設定を確認し、 [作成] を選択します。
デプロイが完了したら、[リソースに移動] を選択します。
myVM 仮想マシンのブラウザー タブに戻ります。
myVM で、Microsoft Edge を開いて
www.bing.com
に移動します。
フロー ログのダウンロード
このセクションでは、前に選んだストレージ アカウントに移動し、前のセクションで作成した NSG フロー ログをダウンロードします。
ポータルの上部にある検索ボックスに、「ストレージ アカウント」と入力します。 検索結果で [ストレージ アカウント] を選択します。
mynwstorageaccount または前にログを保存するために作成して選んだストレージ アカウントを選びます。
[データ ストレージ] で、[コンテナー] を選択します。
[insights-logs-networksecuritygroupflowevent] コンテナーを選択します。
このコンテナーで、
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 PT1H.json ファイルの右側にある省略記号 [...] を選んでから、[ダウンロード] を選びます。
フロー ログの表示
任意のテキスト エディターを使って、ダウンロードした 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 フロー ログを無効にできます。
ポータルの上部にある検索ボックスに、「network watcher」と入力します。 検索結果で [Network Watcher] を選択します。
[ログ] の下で [NSG フローログ] を選択します。
myVM-nsg-myresourcegroup-flowlog フロー ログの右側にある省略記号 [...] を選ぶか、それを右クリックして、[無効] を選びます。
[NSG フロー ログを無効にする] で、[無効] を選びます。
リソースをクリーンアップする
myResourceGroup とそれに含まれるすべてのリソースが不要になったら、それらを削除します。
- ポータル上部の [検索] ボックスに「myResourceGroup」と入力します。 検索結果に [myResourceGroup] が表示されたら、それを選択します。
- [リソース グループの削除] を選択します。
- [TYPE THE RESOURCE GROUP NAME:](リソース グループ名を入力してください:) に「myResourceGroup」と入力し、 [削除] を選択します。
次のステップ
このチュートリアルでは、以下の内容を学習しました。
- ネットワーク セキュリティ グループの NSG フロー ログを有効にして、仮想マシンとの間のトラフィックをログします。
- フロー ログのデータをダウンロードして表示します。
JSON ファイル内の生データは解釈が難しい場合があります。 フロー ログのデータを視覚化するには、Azure Traffic Analytics や Microsoft Power BI を使用できます。
NSG フロー ログを有効にする別の方法については、PowerShell、Azure CLI、REST API、または Resource Manager テンプレートに関する記事をご覧ください。
Network Watcher の接続モニターを使って、仮想マシン間のネットワーク通信を監視する方法については、次をご覧ください。