駆け出しアーキテクトのやまぱんです。
この記事は Microsoft Azure Tech Advent Calendar 2022 の 18 日目の記事です
Azure Firewall の新しい構造化されたファイヤーフォールログ(リソース固有)を試してみました。
執筆時現在ではプレビュー機能となっています。
2023/06/15(木) 追記:GA(General Available - 一般提供)したようです。
・Announcing Azure Firewall Structured Logs General Availability
https://techcommunity.microsoft.com/t5/azure-networking-blog/announcing-azure-firewall-structured-logs-general-availability/ba-p/3847154
・Azure 構造化ファイアウォール ログ
https://learn.microsoft.com/ja-JP/azure/firewall/firewall-structured-logs
何が嬉しいか
従来の Azure Firewall の新しい構造化されたファイヤーフォールログ(リソース固有) では、見やすくするために Kusto クエリ(parse 処理)を使って整形する必要がありました。その時の記事はこちらです!
一方、今回利用する構造化されたログとは、従来のファイヤーウォールログ(Azure Diagnostics)に比べて取れるデータに大きな違いはないものの Azure Firewall が生成するログデータが一定の形式に整形されていることを指します。これにより、データの分析や可視化が容易になり、セキュリティインシデントを発見したり、トラフィックの動向を把握したりすることが容易にできます。
診断設定をする
Docs はこちらです、基本的には下記に従って設定することができますが、従来のファイヤーウォールログ(Azure Diagnostics)に比べて設定が反映されるのに時間がかかりました。(私の環境では半日ぐらいで設定が反映されてログが Log Analytics ワークスペースで確認できました。)
Azure PowerShell で有効にする
こちらはプレビュー状態ならではのお作法でGA(General Available=一般提供)後は不要になるかと思います。
Connect-AzAccount
Select-AzSubscription -Subscription "subscription_id or subscription_name"
Register-AzProviderFeature -FeatureName AFWEnableStructuredLogs -ProviderNamespace Microsoft.Network
Register-AzResourceProvider -ProviderNamespace Microsoft.Network
私の環境ではコマンド一発では値が registered にならなかった(registeringで返ってきた)ので、なっていない場合はなるまで再度 Register~~ のコマンドを実施します。
Azure Firewall の診断設定を行う
今回は下記のように設定しました。
ターゲットテーブルがAzure Diagnostics ではなく、リソース固有 になっているところがポイントです。
古い診断設定がある場合は一度削除してからの作り直しをしてみてください。
私の環境ではすでに作っていた古い診断設定(Azure Diagnostics)があり、その診断設定を編集してターゲットテーブルをリソース固有 に変更しましたがなぜかうまくいきませんでした。そのため一度診断設定を削除して再度リソース固有で診断設定を新規作成することでうまくいきました。
構造化されたファイヤーフォールのログ(リソース固有)を使う
前回のファイヤーウォールログ(Azure Diagnostics) ではparse 処理 していましたが、こちらの構造化されたファイヤーウォールログを使うことで不要になったのではないかと思います。
発信元(SoutceIP)や宛先IP(DestinationIP)、Action が標準でカラムとしてあるので 少なくともこれらの情報を取る(カラムにして見やすくする)ために parse する必要はなくなりました。
AzureFirewallNetworkRuleLog / AZFWNetworkRule テーブル
kusto クエリ
AZFWNetworkRule
AzureFirewallNATRulelog / AZFWNatRule テーブル
kusto クエリ
AZFWNatRule
その他のテーブル
上記のものも含めて AZFW~ のテーブルには下記のようなものがあります。
- AZFWApplicationRule
- AZFWApplicationRuleAggregation
- AZFWDnsQuery
- AZFWFatFlow
- AZFWIdpsSignature
- AZFWInternalFqdnResolutionFailure
- AZFWNatRule
- AZFWNatRuleAggregation
- AZFWNetworkRule
- AZFWNetworkRuleAggregation
- AZFWThreatIntel
詳細は下記より対象のテーブルの説明をみてみて、ぜひ一度使ってみてください!
https://learn.microsoft.com/ja-jp/azure/azure-monitor/reference/tables/azfwapplicationrule