📌

Microsoft Entra Private Access と Azure Firewall でアレを自作

2024/07/03に公開

TL;DR

  • Microsoft Entra Private Access と Azure Firewall を組み合わせてなんちゃって Microsoft Entra Internet Access を作ってみ隊
  • Route table を使って Microsoft Entra Private Access Connector から出たトラフィックを Azure Firewall に全部流し込んで、Azure Firewall の policy で制御、というのができた
  • FQDN ベース、Web Category ベースのアクセス制御ができるので、なんとなく Microsoft Entra Internet Access っぽいことができた

はじめに

Microsoft Entra Private Access と Hub-spoke を組み合わせてみる に引き続き、Microsoft Entra Private Access (MEPA) で遊んでみます。
今回は、MEPA から Azure Firewall に向かって強制トンネリング的にトラフィックを吸い込み、なんとなく Microsoft Entra Internet Access (MEIA) っぽいことをやってみます。

Microsoft Entra Private Access の構成

まずは、MEPA で強制トンネリング (0.0.0.0/0 のルーティングを向けるようなイメージ) を設定していきます。
と、思っていたのですが、0.0.0.0/0 を設定しようと思ったらエラーになってしまうので、仕方がなくちまちま設定していきます。
VPN Gateway を使ったなんちゃって強制トンネリングでよくやっていた、0.0.0.0/1 + 128.0.0.0/1 も拒否されました。。

Microsoft Entra Private Access - Network access property
Microsoft Entra Private Access - Network access property

表にするとこんな感じです、愚直に。。

Destination type Destination Ports
IP address range (CIDR) 128.0.0.0/1 80,443
IP address range (CIDR) 64.0.0.0/2 80,443
IP address range (CIDR) 32.0.0.0/3 80,443
IP address range (CIDR) 16.0.0.0/4 80,443
IP address range (CIDR) 8.0.0.0/5 80,443
IP address range (CIDR) 4.0.0.0/6 80,443
IP address range (CIDR) 2.0.0.0/7 80,443
IP address range (CIDR) 1.0.0.0/8 80,443

Azure Firewall

続いて、Azure Firewall の設定をしていきます。
一覧としてはこんな感じです。

Azure Firewall - Application rules
Azure Firewall - Application rules

MEPA の動作のためには、Microsoft Entra Private Access 用にコネクタを構成する方法 - Global Secure Access に書かれている URL を許可する必要があるので、それをばーっと追加します。

Azure Firewall - Application rules - MEPA https
Azure Firewall - Application rules - MEPA https

Azure Firewall - Application rules - MEPA http
Azure Firewall - Application rules - MEPA http

また、MEIA っぽさを出すために Web Category もやってみます。
今回は、Business、Education、Government を許可してみます。

Azure Firewall - Application rules - Web category
Azure Firewall - Application rules - Web category

そのほか - UDR

最後に、MEPA Connector のある subnet に対して Route table (UDR) を設定し、0.0.0.0/0 に対して next-hop を Azure Firewall のプライベート IP アドレスに向けておきます。
これにより、MEPA Connector を通ってインターネットに向かうトラフィックは Azure Firewall を経由するように変わります。

動作確認

設定がうまくいっているかどうかを確認します。

まず、Microsoft の Web サイトにアクセスしてみます。
これは、MEPA Connector の通信許可の中に含まれてしまっているので Web Category は関係ありません。

Screenshot - www.microsoft.com
Screenshot - www.microsoft.com

次に、Bloomberg の Web サイトにアクセスしてみます。
許可が不十分なのかレイアウトが壊れてしまっていますが、一応メインのコンテンツの部分は取得できていそうです。

Screenshot - www.bloomberg.co.jp
Screenshot - www.bloomberg.co.jp

さらに、Yahoo! JAPAN の Web サイトにアクセスしてみます。
カテゴリが「Search engines + portals」と分類されるサイトなので、正しく拒否できています。
表示されている画面、メッセージが Azure Firewall で拒否されているっぽいのもわかります。

Screenshot - www.yahoo.co.jp

最後に、NISC の Web サイトにアクセスしてみます。
許可されていますね、といいたいところですが、実はこれは IPv6 で通信しているので、MEPA で吸い込めていません。
IPv6 の対応状況についても追って確認しておこうかと思いますが、VNet の中でも IPv6 を使う必要があるかも・・??という気もしています。

Screenshot - www.nisc.go.jp
Screenshot - www.nisc.go.jp

まとめ

ということで、Microsoft Entra Private Access で強制トンネリングっぽいものを設定しトラフィックを吸い込み、それを Azure Firewall を経由させてインターネットに送る、という構成を試してみました。
実質的には Microsoft Entra Internet Access っぽいものを DIY している感じですね、機能はいろいろ足りていませんが。。

Windows Server の運用負荷はありますが冗長化が簡単な Microsoft Entra Private Access Connector とマネージド サービスである Azure Firewall ということで、まぁそこそこ手間のかからない構成ではないでしょうか。
もちろん Azure Firewall の部分を Fortigate をはじめとしたサード パーティー の UTM 的なさむしんぐに置き換えることも可能かとは思います。

一応、ニーズがありそうなポイントとしては SASE (の中の SWG) あるあるの、自分たち専用の IP アドレスで SASE の出口を用意してほしい、でもそのオプションがめっちゃ高い、のの回避策の 1 つにはなるかもしれません。。
まだ Global Secure Access (GSA) 全体が Public preview のためいろいろ変わる可能性もありますが、いったんは、というところで。

参考

  • Microsoft Entra Private Access と Hub-spoke を組み合わせてみる

https://zenn.dev/skmkzyk/articles/mepa-hub-spoke

  • Microsoft Entra Private Access 用にコネクタを構成する方法 - Global Secure Access

https://learn.microsoft.com/entra/global-secure-access/how-to-configure-connectors#allow-access-to-urls

  • Microsoft Entra Private Access はどうやってパケットを曲げているのか (分からんかった)

https://zenn.dev/skmkzyk/articles/me-private-access-routing

  • Microsoft Entra Private Access の出口

https://zenn.dev/skmkzyk/articles/mepa-tunnel-exit

P.S.

もともとのタイトルは「Microsoft Entra Private Access と Azure Firewall で Microsoft Entra Internet Access を自作してみる」だったのですが、Zenn のタイトルが 70 文字制限だそうなのでちょっと釣りっぽい感じになりました。。。

Discussion