🧱

Azure Firewall での top flows と Flow trace の取得方法について

2024/02/21に公開

はじめに

Azure Firewall にてフロートレース (Flow trace) を取得する機能が 2024年2月13日に GA となりました (2024年2月13日)。ただ 公式Docs の手順が少しわかりにくいです。。そのため、実際に検証を行いログの出力確認を行ったので、その時の内容を簡単に纏めたいと思います

1. Top flows ログの出力設定

1-1. Top flows ログの有効化

  • 以下コマンドを実行し Top flows ログを有効にする ( Azure PowerShell )
Set-AzContext -SubscriptionName <subscription_id> or <subscription_name>
$firewall = Get-AzFirewall -ResourceGroupName <ResourceGroupName> -Name <FirewallName>
$firewall.EnableFatFlowLogging = $true
Set-AzFirewall -AzureFirewall $firewall
  • Top flows ログが有効化されたことを確認
    • EnableFatFlowLogging : True となっていること
Get-AzFirewall -Name <FirewallName> -ResourceGroupName <ResourceGroupName> |select *

1-2. 診断設定 (ログ転送設定)

  • Azure Firewall にて診断設定を行う

1-3. Top Flows ログの確認

  • ログ転送先の Log Analytics にて Top flows ログを表示する (入力クエリ:AZFWFatFlow)

2. Top flows ログの出力停止

2-1. Top flows ログの無効化

  • 以下コマンドを実行し、Top flows ログを無効にする ( Azure PowerShell )
Set-AzContext -SubscriptionName <subscription_id> or <subscription_name>
$firewall = Get-AzFirewall -ResourceGroupName <ResourceGroupName> -Name <FirewallName>
$firewall.EnableFatFlowLogging = $false
Set-AzFirewall -AzureFirewall $firewall
  • Top flows ログが無効化されたことを確認
    • EnableFatFlowLogging : False となっていること
Get-AzFirewall -Name <FirewallName> -ResourceGroupName <ResourceGroupName> |select *

2-2. Top Flows ログの確認

  • ログ転送先の Log Analytics にて Top flows ログの表示し、ログの転送が止まっていることを確認する (入力クエリ:AZFWFatFlow)

3. Flow trace ログの出力設定

3-1. Flow trace ログの有効化

  • 以下コマンドを実行し Flow trace ログを有効にする ( Azure PowerShell )
Select-AzSubscription -Subscription <subscription_id> or <subscription_name>
Register-AzProviderFeature -FeatureName AFWEnableTcpConnectionLogging -ProviderNamespace Microsoft.Network
Register-AzResourceProvider -ProviderNamespace Microsoft.Network
  • 以下コマンドを実行し Flow trace ログが有効化されたことを確認する
    • RegistrationState : Registered となっていること
Get-AzProviderFeature -FeatureName "AFWEnableTcpConnectionLogging" -ProviderNamespace "Microsoft.Network" 

3-2. 診断設定 (ログ転送設定)

  • Azure Firewall にて診断設定を行う

3-3. Flow trace ログの確認

  • ログ転送先の Log Analytics にて Flow trace ログを表示する (入力クエリ:AZFWFlowTrace)

4. Flow trace ログの出力停止

4-1. Flow trace ログの無効化

  • 以下コマンドを実行し、Flow trace ログを無効にする ( Azure PowerShell )
Select-AzSubscription -Subscription <subscription_id> or <subscription_name>
Unregister-AzProviderFeature -FeatureName AFWEnableTcpConnectionLogging -ProviderNamespace Microsoft.Network
  • Flow trace ログが無効化されたことを確認
    • RegistrationState : Unregistering となっていること
Get-AzProviderFeature -FeatureName "AFWEnableTcpConnectionLogging" -ProviderNamespace "Microsoft.Network"

4-2. Flow trace ログの確認

  • ログ転送先の Log Analytics にて Flow trace ログの表示し、ログの転送が止まっていることを確認する (入力クエリ:AZFWFlowTrace)

まとめ

今回は Azure Firewall にてフロートレース (Flow trace) を取得する方法について纏めました。Flow trace のログ転送を行うために Azure Firewall に対して更新作業が必要だったりと、まだ少し動作が不安定な部分があるように感じます。基本的にトラブルシューティングの際に利用する機能となりますが、本番環境で実施する前にまずは検証環境にて動作確認を行っていただいた方がよろしいかと思います

Appendix

Azure の更新情報

https://azure.microsoft.com/ja-jp/updates/azure-firewall-flow-trace-logs-and-autoscaling-based-on-number-of-connections-and-are-now-generally-available/

公式Docs

https://learn.microsoft.com/ja-JP/azure/firewall/enable-top-ten-and-flow-trace#flow-trace

ログリファレンス

https://learn.microsoft.com/ja-jp/azure/azure-monitor/reference/tables/azfwfatflow

https://learn.microsoft.com/ja-jp/azure/azure-monitor/reference/tables/azfwflowtrace

参考にした記事

https://techcommunity.microsoft.com/t5/azure-network-security-blog/announcing-new-monitoring-and-scaling-updates-in-azure-firewall/ba-p/4055166

Microsoft (有志)

Discussion