次の方法で共有


Azure CLI を使用して NSG フロー ログを管理する

重要

2027 年 9 月 30 日に、ネットワーク セキュリティ グループ (NSG) フロー ログは廃止されます。 この廃止の一環として、2025 年 6 月 30 日以降、新しい NSG フロー ログを作成できなくなります。 NSG フロー ログの制限を克服するために、仮想ネットワーク フロー ログ移行することをお勧めします。 廃止日を過ぎると、NSG フロー ログで有効になっているトラフィック分析がサポートされなくなり、サブスクリプション内の既存の NSG フロー ログ リソースは削除されます。 ただし、NSG フロー ログのレコードは削除されず、引き続きそれぞれのアイテム保持ポリシーに従います。 詳細については、公式告知を参照してください。

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

この記事では、Azure CLI を使用して NSG フロー ログを作成、変更、無効化、または削除する方法について説明します。 Azure portalPowerShellREST API、または ARM テンプレートを使用して NSG フロー ログを管理する方法を説明します。

前提条件

Insights プロバイダーの登録

ネットワーク セキュリティ グループを通過するトラフィックを正しくログに記録するために、Microsoft.Insights プロバイダーが登録されている必要があります。 Microsoft.Insights プロバイダーが登録されているかどうか不明な場合は、az provider register を使用して登録します。

# Register Microsoft.Insights provider.
az provider register --namespace 'Microsoft.Insights'

フロー ログの作成

az network watcher flow-log create を使用してフロー ログを作成します。 フロー ログは、Network Watcher の既定のリソース グループ NetworkWatcherRG に作成されます。

# Create a version 1 NSG flow log.
az network watcher flow-log create --name 'myFlowLog' --nsg 'myNSG' --resource-group 'myResourceGroup' --storage-account 'myStorageAccount'

注意

  • ストレージ アカウントが別のサブスクリプションにある場合は、ネットワーク セキュリティ グループとストレージ アカウントを同じ Azure Active Directory テナントに関連付ける必要があります。 各サブスクリプションで使用するアカウントは、必要なアクセス許可を持っている必要があります。
  • ストレージ アカウントが、別のリソース グループまたはサブスクリプション内にある場合は、ストレージ アカウントの名前だけではなく完全な ID を指定する必要があります。 たとえば、ネットワーク セキュリティ グループがリソース グループ myResourceGroup にあるときに myStorageAccount ストレージ アカウントが StorageRG という名前のリソース グループにある場合は、--storage-account パラメーターに myStorageAccount ではなく /subscriptions/{SubscriptionID}/resourceGroups/RG-Storage/providers/Microsoft.Storage/storageAccounts/myStorageAccount を使用する必要があります。
# Place the storage account resource ID into a variable.
sa=$(az storage account show --name 'myStorageAccount' --query 'id' --output 'tsv')

# Create a version 1 NSG flow log (the storage account is in a different resource group).
az network watcher flow-log create --name 'myFlowLog' --nsg 'myNSG' --resource-group 'myResourceGroup' --storage-account $sa

フロー ログとトラフィック分析ワークスペースを作成する

  1. az monitor log-analytics workspace create を使用して Log Analytics ワークスペースを作成します。

    # Create a Log Analytics workspace.
    az monitor log-analytics workspace create --name 'myWorkspace' --resource-group 'myResourceGroup'
    
  2. az network watcher flow-log create を使用してフロー ログを作成します。 フロー ログは、Network Watcher の既定のリソース グループ NetworkWatcherRG に作成されます。

    # Create a version 1 NSG flow log and enable traffic analytics for it.
    az network watcher flow-log create --name 'myFlowLog' --nsg 'myNSG' --resource-group 'myResourceGroup' --storage-account 'myStorageAccount' --traffic-analytics 'true' --workspace 'myWorkspace'
    

注意

  • ストレージ アカウントには、Microsoft サービスまたは特定の仮想ネットワークのみにネットワーク アクセスを制限するネットワーク規則を指定できません。
  • ストレージ アカウントが別のサブスクリプションにある場合は、ネットワーク セキュリティ グループとストレージ アカウントを同じ Azure Active Directory テナントに関連付ける必要があります。 各サブスクリプションで使用するアカウントは、必要なアクセス許可を持っている必要があります。
  • ストレージ アカウントが別のリソース グループまたはサブスクリプションにある場合は、ストレージ アカウントの完全な ID を使用する必要があります。 たとえば、ネットワーク セキュリティ グループがリソース グループ myResourceGroup にあるときに myStorageAccount ストレージ アカウントが StorageRG という名前のリソース グループにある場合は、--storage-account パラメーターに myStorageAccount ではなく /subscriptions/{SubscriptionID}/resourceGroups/RG-Storage/providers/Microsoft.Storage/storageAccounts/myStorageAccount を使用する必要があります。
# Place the storage account resource ID into a variable.
sa=$(az storage account show --name 'myStorageAccount' --query 'id' --output 'tsv')

# Create a Log Analytics workspace.
az monitor log-analytics workspace create --name 'myWorkspace' --resource-group 'myResourceGroup'

# Create a version 1 NSG flow log and enable traffic analytics for it (the storage account is in a different resource group).
az network watcher flow-log create --name 'myFlowLog' --nsg 'myNSG' --resource-group 'myResourceGroup' --storage-account $sa --traffic-analytics 'true' --workspace 'myWorkspace'

フロー ログを変更する

az network watcher flow-log update を使用して、フロー ログのプロパティを変更できます。 たとえば、フロー ログのバージョンを変更したり、トラフィック分析を無効にしたりできます。

# Update the flow log.
az network watcher flow-log update --name 'myFlowLog' --nsg 'myNSG' --resource-group 'myResourceGroup' --storage-account 'myStorageAccount' --traffic-analytics 'false' --log-version '2'

リージョン内のすべてのフロー ログを一覧表示する

az network watcher flow-log list を使用して、サブスクリプション内の特定のリージョン内のすべての NSG フロー ログ リソースを一覧表示します。

# Get all NSG flow logs in East US region.
az network watcher flow-log list --location 'eastus' --out table

フロー ログ リソースの詳細を表示する

az network watcher flow-log show を使用して、フロー ログ リソースの詳細を表示します。

# Get the details of a flow log.
az network watcher flow-log show --name 'myFlowLog' --resource-group 'NetworkWatcherRG' --location 'eastus'

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

フローのログの保存場所は作成時に定義されます。 ストレージ アカウントからフロー ログにアクセスしてダウンロードするには、Azure Storage Explorer を使用できます。 詳細については、「Storage Explorer の概要」を参照してください。

ストレージ アカウントに保存される NSG フロー ログ ファイルは、次のパスに従います。

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

フロー ログの構造については、NSG フロー ログのログ形式に関するページを参照してください。

フロー ログを無効にする

フロー ログを削除せずに一時的に無効にするには、az network watcher flow-log update コマンドを使用します。 フロー ログを無効にすると、関連付けられているネットワーク セキュリティ グループのフロー ログが停止します。 ただし、フロー ログ リソースは、そのすべての設定および関連付けと共に残ります。 いつでも再び有効にして、構成されたネットワーク セキュリティ グループのフロー ログを再開することができます。

Note

フロー ログに対してトラフィック分析が有効になっている場合は、フロー ログを無効にする前にそれを無効にする必要があります。

# Disable traffic analytics log if it's enabled.
az network watcher flow-log update --name 'myFlowLog' --nsg 'myNSG' --resource-group 'myResourceGroup' --storage-account 'myStorageAccount' --traffic-analytics 'false' --workspace 'myWorkspace'

# Disable the flow log.
az network watcher flow-log update --name 'myFlowLog' --nsg 'myNSG' --resource-group 'myResourceGroup' --storage-account 'myStorageAccount' --enabled 'false'

フロー ログを削除する

フロー ログを完全に削除するには、az network watcher flow-log delete コマンドを使用します。 フロー ログを削除すると、その設定と関連付けがすべて削除されます。 同じネットワーク セキュリティ グループに対してフロー ログをもう一度開始するには、それに対して新しいフロー ログを作成する必要があります。

# Delete the flow log.
az network watcher flow-log delete --name 'myFlowLog' --location 'eastus' --no-wait 'true'

Note

フロー ログを削除しても、ストレージ アカウントからフロー ログ データは削除されません。 ストレージ アカウントに格納されているフロー ログ データは、構成されたアイテム保持ポリシーに従います。