AzureFirewallのDNAT規則を使用してみる

はじめに

 本記事ではAzureFirewallのDNAT規則を使用して、AzureFirewall経由でAzureVM上に構築したWebサーバー(IIS)に接続する方法について記載したいと思います。

前提条件

本記事においては以下を前提とします。
・以下Azureリソースが作成済みであること
 ・Webサーバとして使用するAzureVM
 ・Azure仮想ネットワーク
 ・AzureFirewallSubnet
 ・AzureFirewall
・Webサーバへの接続に使用する適当なドメインが存在すること。
 ※本記事ではお名前.comで調達したドメインを使用します。 

 

構成概要

実現したい構成は概ね以下の通りです。上記記載の通り既にAzureVMやAzureFirewallといったリソースは存在する前提の説明を進めていきたいと思います。

手順概要

①DNSレコード登録
②DNAT規則の作成
③NSG規則の設定


詳細手順

①DNSレコードの登録
AzureFirewall経由でWebサーバに接続するので接続に使用するURLとAzureFirewallのパブリックIPアドレスを関連付ける必要が有ります。お名前.comなどのDNSレコード設定にて、AzureFirewallのパブリックIPアドレスの接続ドメイン名を対応させるAレコードを追加します。Webサーバを2台用意しそれぞれ別のドメインで接続させるのでAレコードも2つ追加します。

②DNAT規則の作成
AzureFirewallのFirewall Managerを開き、DNAT規則を作成します。今回はportの指定によって別々のWebサーバへ接続できることを確認したいので、それぞれ以下内容の規則を作成します。

③NSG規則の設定
AzureFirewall経由でWebサーバに接続するので、AzureFirewallのプライべートIPアドレスとWebサーバのプライベートIPアドレスが通信できるような規則がNSGに追加されていることが必要です。同じ仮想ネットワークに存在する場合は既定のNSG規則で充足されますが細かくNSGの規則を作成する場合には注意する必要が有ります。また、AzureFirewallのIPアドレス以外からWebサーバのプライベートIPアドレスへの通信は拒否するNSG規則も作成します。

動作確認

今回作成したDNAT規則を元にすると、2台のWebサーバについてそれぞれ以下のアドレスおよびポートで接続出来れば問題無く設定が完了していることになります。また、余計な経路から接続しないようにWebサーバのAzure仮想マシンにはパブリックIPアドレスリソースを関連付けないようにしておくと尚良いと思います。

1台目:http://<Webサーバ#1のドメイン名>:10000
2台目:http://<Webサーバ#2のドメイン名>:10001

※IISの既定のページではどちらのサーバに接続しているか区別がつかないので、動作確認においても何らかのサイトを用意してどちらのサーバに接続しているか区別できるようにしておくことをお勧めします。

まとめ

非常に簡易な構成ではありますがAzureFirewallのDNAT規則を用いた動作検証を実施することができました。Webサーバのフロントに置くAzureのリソースとしてはApplication GatewayやFrontDoorが一般的かもしれませんが、これらに比べて機能は制限されるもののAzureFirewallのDNATでも最低限のことは実現できることを確認することができました。すでにAzureFirewallが存在しかつコスト要件が厳しい場合の構成として採用の余地があるのではないでしょうか。

いいね (←参考になった場合はハートマークを押して評価お願いします)
読み込み中...

注意事項・免責事項

※技術情報につきましては投稿日時点の情報となります。投稿日以降に仕様等が変更されていることがありますのでご了承ください。

※公式な技術情報の紹介の他、当社による検証結果および経験に基づく独自の見解が含まれている場合がございます。

※これらの技術情報によって被ったいかなる損害についても、当社は一切責任を負わないものといたします。十分な確認・検証の上、ご活用お願いたします。

※当サイトはマイクロソフト社によるサポートページではございません。パーソルプロセス&テクノロジー株式会社が運営しているサイトのため、マイクロソフト社によるサポートを希望される方は適切な問い合わせ先にご確認ください。
 【重要】マイクロソフト社のサポートをお求めの方は、問い合わせ窓口をご確認ください