Azure Firewall のログを Log Analytics に保存する

# Azure Firewall の ログ
Azure Firewall は、仮想ネットワーク から インターネット へのアクセスを集中制御できます。
ハード機器の Firewall であれば、コマンドでログインして すぐにログを見る事ができたりしますが、 Azure Firewall の場合は、すぐにログは見れません。

Azure Firewall を通過しようとしたパケットを 許可したのか、ブロックしたのか は アクティビティログでは見る事ができません。そのようなログを見るためには、リソースログを Log Analytics と連携する必要があります。そのための手順を 次章 以降で説明しています。

**Azure Firewall の 既定のログ**
なお、既定で Azure Portal から参照できるログは、アクティビティ ログ のみです。
アクティビティ ログは、リソースを 追加・削除・変更 などを いつ・誰が実施したのかを確認できますが、それだけです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/7925a2c6-3686-6e99-951e-4e0d17b4d236.png)

アクティビティログを Log Analytics に保存する場合は、本手順とは別に 以下の記事の手順を実施する必要があります。

https://qiita.com/carol0226/items/791c37494a2a9995c486

# 3. Azure Firewall ログを Log Analytics に保存する
通常は、Azure Portal から参照できない、Firewall のアクセスログを参照できるようにする手順です。

## 3-1. 前提事項
事前に、以下の記事の手順を参照して Log Analytics ワークスペースをデプロイします。

https://qiita.com/carol0226/items/eb07275fe8b3eda4a703

## 3-2. Azure Firewall の診断設定
続いて、以下の手順を実施します。

0. Azure Firewall のリソースのページを開き、左ペインの **監視** を開き **診断設定** を選択します。続いて **診断設定を追加する** をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/de6e445c-441c-1b5c-da94-ec28d603503f.png)
　<br>
0. 以下の順に設定を行います。
① 取得するログのカテゴリを決めます（図で 選択している項目が推奨）
② ログの宛先として **Log Analytics ワークスペースへの送信** にチェックを入れます。
　続いて、出力先のワークスペース名を指定し、**リソース固有** を選択します。
③ 診断設定の名称（任意）を指定します。
④ **保存** ボタンを押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/8465c576-c13f-f541-2230-8aae8de10d6b.png)

以下の通知が表示されれば、OK です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/26456800-49f4-8c6d-5053-276cef0d98d8.png)

以下の公開情報でも説明されていますが、Azure Diagnostics は古い方式。
リソース固有 が新しい方式で、おススメです。

**公開情報**
https://learn.microsoft.com/ja-jp/azure/firewall/firewall-structured-logs

# 4. ワークスペースに保存された Azure Firewall ログ の参照
保存されたログは、以下の操作で参照できます。
① 左ペインの **ログ** を選択します。
② **時間の範囲** を適切な範囲に設定します。
③ KQL を入力します。 **AZFWApplicationRule** と入力することで、アプリケーションルール によって制御された際のログが表示されます。
④ **実行** を押すと、KQL 命令が実行された結果が表示されます。
⑤ 表示されたログは、赤枠 をクリックすると 内容を開いて参照できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/ad90ae5e-dda3-17e9-cd98-4f25df8bdc3c.png)

:::note alert
AZFWApplicationRule と入力すると、以下のように表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/ee603368-c268-bbaf-b073-84299076e245.png)

そのあと **実行** を押すと、エラーになります。
エラーの原因は、２行目の | です。 | は、続けて命令を書く時に必要がですが、続きの命令が無い場合には、削除してから実行する必要があります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/cf508c64-6f6a-ae5d-634e-54fee52cffee.png)
:::

:::note info
この他にも、以下の KQL を入力することで 該当のログを参照することができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/cc230acc-1365-6469-77eb-4615841c5924.png)
:::

**KQL AZFW 関連のリファレンス**

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

左ペインを切替える事で、リファレンスを参照できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/347c6211-d359-ebf3-837b-b482ae9d84c0.png)


# 5. ブックの利用
ブックを活用すると、ログを元に 以下のような グラフィカル な分析結果を参照する事ができるようになります。

**ブックの参照方法**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/862acbd6-6f98-fe0c-be2a-377bfc3689c3.png)

**概要**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/17d0c6dd-318b-e5e8-18fe-a07825a5be17.png)

**アプリケーション規則**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/0f096f1f-35dc-3412-c665-6ccd0d4713ac.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/75240f4f-bcde-6984-5099-35b3df49b392.png)

**ネットワーク規則**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/5dcadbc0-fbc2-cbb5-bd3b-d40b0da61117.png)

**調査**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/58389d23-a19b-b937-9b03-98a29541b761.png)

# 参考情報
以下の記事で AVD が利用する通信を Azure Firewall で制御して、ログも取得した例を記載しています。制御の掛け方や、どういうログが取れるのか 参考になると思います。

https://qiita.com/carol0226/items/894f506d3f7aa8e1a77e

以下は、フロートレースログの解説をしてくれているので、後で研究してみようと思い、リンクを記録しておきました。

https://zenn.dev/microsoft/articles/20240219-azfw-flowtracelog