PowerShell を使用したネットワーク セキュリティ グループのフローのログの構成Configuring Network Security Group Flow logs with PowerShell

ネットワーク セキュリティ グループ フロー ログは、ネットワーク セキュリティ グループを介して IP トラフィックの送信と受信に関する情報を表示できるようにする Network Watcher の機能です。Network Security Group flow logs are a feature of Network Watcher that allows you to view information about ingress and egress IP traffic through a Network Security Group. これらのフローのログは json 形式で記述され、ルールごとの送信、受信フロー、フロー (送信元/送信先 IP、送信元/送信先ポート、プロトコル) についての 5 組の情報が適用される NIC、トラフィックが許可されているか、拒否されているかを示しています。These flow logs are written in json format and show outbound and inbound flows on a per rule basis, the NIC the flow applies to, 5-tuple information about the flow (Source/Destination IP, Source/Destination Port, Protocol), and if the traffic was allowed or denied.

Insights プロバイダーの登録Register Insights provider

フローのログ記録を成功させるには、Microsoft.Insights プロバイダーを登録する必要があります。In order for flow logging to work successfully, the Microsoft.Insights provider must be registered. Microsoft.Insights プロバイダーが登録されているかどうか不明な場合は、次のスクリプトを実行します。If you are not sure if the Microsoft.Insights provider is registered, run the following script.

Register-AzResourceProvider -ProviderNamespace Microsoft.Insights

ネットワーク セキュリティ グループのフロー ログと Traffic Analytics を有効にするEnable Network Security Group Flow logs and Traffic Analytics

フローのログを有効にするコマンドを次の例に示します。The command to enable flow logs is shown in the following example:

$NW = Get-AzNetworkWatcher -ResourceGroupName NetworkWatcherRg -Name NetworkWatcher_westcentralus
$nsg = Get-AzNetworkSecurityGroup -ResourceGroupName nsgRG -Name nsgName
$storageAccount = Get-AzStorageAccount -ResourceGroupName StorageRG -Name contosostorage123
Get-AzNetworkWatcherFlowLogStatus -NetworkWatcher $NW -TargetResourceId $nsg.Id

#Traffic Analytics Parameters
$workspaceResourceId = "/subscriptions/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb/resourcegroups/trafficanalyticsrg/providers/microsoft.operationalinsights/workspaces/taworkspace"
$workspaceGUID = "cccccccc-cccc-cccc-cccc-cccccccccccc"
$workspaceLocation = "westeurope"

#Configure Version 1 Flow Logs
Set-AzNetworkWatcherConfigFlowLog -NetworkWatcher $NW -TargetResourceId $nsg.Id -StorageAccountId $storageAccount.Id -EnableFlowLog $true -FormatType Json -FormatVersion 1

#Configure Version 2 Flow Logs, and configure Traffic Analytics
Set-AzNetworkWatcherConfigFlowLog -NetworkWatcher $NW -TargetResourceId $nsg.Id -StorageAccountId $storageAccount.Id -EnableFlowLog $true -FormatType Json -FormatVersion 2

#Configure Version 2 FLow Logs with Traffic Analytics Configured
Set-AzNetworkWatcherConfigFlowLog -NetworkWatcher $NW -TargetResourceId $nsg.Id -StorageAccountId $storageAccount.Id -EnableFlowLog $true -FormatType Json -FormatVersion 2 -EnableTrafficAnalytics -WorkspaceResourceId $workspaceResourceId -WorkspaceGUID $workspaceGUID -WorkspaceLocation $workspaceLocation

#Query Flow Log Status
Get-AzNetworkWatcherFlowLogStatus -NetworkWatcher $NW -TargetResourceId $nsg.Id

指定するストレージ アカウントに対しては、Microsoft サービスまたは特定の仮想ネットワークのみにネットワーク アクセスを制限するネットワーク規則が構成されていてはなりません。The storage account you specify cannot have network rules configured for it that restrict network access to only Microsoft services or specific virtual networks. ストレージ アカウントは、フロー ログを有効化した NSG と同じ Azure サブスクリプションにも、異なる Azure サブスクリプションにも設定できます。The storage account can be in the same, or a different Azure subscription, than the NSG that you enable the flow log for. 異なるサブスクリプションを使用する場合は、それらが同じ Azure Active Directory テナントに関連付けられている必要があります。If you use different subscriptions, they must both be associated to the same Azure Active Directory tenant. 各サブスクリプションで使用するアカウントは、必要なアクセス許可を持っている必要があります。The account you use for each subscription must have the necessary permissions.

Traffic Analytics とネットワーク セキュリティ グループのフロー ログを無効にするDisable Traffic Analytics and Network Security Group Flow logs

Traffic Analytics とフロー ログを無効にするには、次の例を使用します。Use the following example to disable traffic analytics and flow logs:

#Disable Traffic Analaytics by removing -EnableTrafficAnalytics property
Set-AzNetworkWatcherConfigFlowLog -NetworkWatcher $NW -TargetResourceId $nsg.Id -StorageAccountId $storageAccount.Id -EnableFlowLog $true -FormatType Json -FormatVersion 2 -WorkspaceResourceId $workspaceResourceId -WorkspaceGUID $workspaceGUID -WorkspaceLocation $workspaceLocation

#Disable Flow Logging
Set-AzNetworkWatcherConfigFlowLog -NetworkWatcher $NW -TargetResourceId $nsg.Id -StorageAccountId $storageAccount.Id -EnableFlowLog $false

フローのログをダウンロードするDownload a Flow log

フローのログの保存場所は作成時に定義されます。The storage location of a flow log is defined at creation. ストレージ アカウントに保存されているこれらのフローのログにアクセスする際の便利なツールが Microsoft Azure Storage Explorer です。このツールは、https://storageexplorer.com/ からダウンロードできます。A convenient tool to access these flow logs saved to a storage account is Microsoft Azure Storage Explorer, which can be downloaded here: https://storageexplorer.com/

ストレージ アカウントが指定されている場合、フロー ログ ファイルは、次の場所にあるストレージ アカウントに保存されます。If a storage account is specified, flow log files are saved to a storage account at the following location:

https://{storageAccountName}.blob.core.windows.net/insights-logs-networksecuritygroupflowevent/resourceId=/SUBSCRIPTIONS/{subscriptionID}/RESOURCEGROUPS/{resourceGroupName}/PROVIDERS/MICROSOFT.NETWORK/NETWORKSECURITYGROUPS/{nsgName}/y={year}/m={month}/d={day}/h={hour}/m=00/macAddress={macAddress}/PT1H.json

ログの構造については、ネットワーク セキュリティ グループのフローのログの概要に関する記事をご覧ください。For information about the structure of the log visit Network Security Group Flow log Overview

次の手順Next Steps

PowerBI を使用して、NSG フロー ログを視覚化する方法を確認するLearn how to Visualize your NSG flow logs with PowerBI

オープン ソース ツールを使用して、NSG フロー ログを視覚化する方法を確認するLearn how to Visualize your NSG flow logs with open source tools