クラウドを利用するにあたってセキュリティの観点を気にされる方も多いのではないでしょうか。

以前まではAzureでのセキュリティといえばNSGや、3rdParty製の仮想アプライアンスを導入するのがセオリーでした。

今回は今年10月にAzureで一般公開された新たなマネージドファイアウォールサービスであるAzure Firewallの紹介をします。



1.Azure Firewallとは

Azure FirewallはAzureが提供するマネージドのファイアウォールです。クラウドの特性を活かした制限なしの自動スケーリングによって高い可用性を備えています。Azure VMからの通信をAzure Firewallへ向けることで、プロキシーサーバーとして動作します。
(参考リンク:Azure Firewall)

1-1.Azure Firewallの2つの機能

Azure Firewallが持つネットワーク機能は主に次の2つです。
A. NAT機能
B.トラフィックフィルタリング

 

A. NAT機能

  • Source-NAT
    Azure Firewallから外部へ送信されるトラフィックは自動的にAzure FirewallのパブリックIPへ変換します。
  • Destination-NAT
    Azure FirewallパブリックIP宛の通信を仮想ネットワークのプライベートIPへ変換します。内部のプライベートIPを秘匿したまま外部からの接続性を担保できます。
    宛先アドレスと変換先アドレスの関連付けは1対1です。もし複数のサーバーに通信を振り分けたい場合は、内部ロードバランサーを利用して分散を行います。

B.トラフィックフィルタリング

  • ネットワークルール
    宛先とソースのIPアドレス、ポート番号、プロトコル(TCP/UDP/ICMP)をもとに、トラフィックをフィルタリングできます。
  • アプリケーションルール
    FQDNを指定して、特定の接続先への送信HTTP/HTTPSトラフィックを制限できます。
    また、定義済のMicrosoftサービスに関連付けられたFQDNのグループ(FQDNタグ)を使用して制御することも可能です。現在使用できるFQDNタグは次のとおりです。
    – Windows Update
    – Windows診断
    – Microsoft Active Protection Service(MAPS)
    – App Service Environment(ASE)
    – Azure Backup

2.Azure Firewallによる監視機能

2-1.診断ログの監視

Azure Storage/Event Hub/Log Analyticsへログを保存可能です。保存できるログは次の3種類です。

– アプリケーションルールログ
– ネットワークルールログ
– Azure Firewallのメトリック

メトリックにはフィルタリングしたIPやポート番号、Dest-NATアクションの統計情報が含まれます。


3.AzureFirewallの料金プラン

ファイアウォールの稼働時間:¥140/h
固定料金。自動でスケールアップしていても変動なし。

データ処理:¥3.36/GB
送受信するデータに対して課金計算。データが処理された日付に紐付いて料金が計算される。
(参考リンク:Azure Firewallの価格)

このほかにAzure FirewallはStandardのパブリックIP(静的)を既定で利用します。(¥0.56/h)

月間730時間稼働し、受信データ10 GB、送信データ150 GBの通信を処理すると仮定すると次のような料金計算となります。
140 * 730 + 0.56 * 730 + 3.36 * (10 + 150) = 102,737.60
(Azureデータ通信量、VM稼働料金他含まず)


4.Azure Firewallでウェブアクセス制御とDest-NATを触ってみる

以下のような構成でAzure Firewallの動きを見ます。

Azure Firewallデプロイ

以下の通り値を設定します。Azure Firewallをデプロイする仮想ネットワークには「Azure Firewall Subnet」というサブネットが必要です。
あらかじめ作成しておくか、同じタイミングで新規作成するとよいです。

UDR関連付け

Azure Firewallを利用するVMが所属するサブネットにUDRを関連付けます。
宛先:0.0.0.0/0、ネクストホップ:仮想アプライアンス、ネクストホップのIPアドレス:<Azure FirewallのプライベートIP>としたルートを作成します。

アプリケーションルール追加

既定ではインターネット向けトラフィックはすべて拒否されるので、VMからブラウザでWebページを見ようとしてもアクセスが拒否されます。

アプリケーションルールで特定のFQDNを指定することで、Webページへのアクセスを制御することができます。

Dest-NATルール追加

外部から来たトラフィックを内部のIPへ変換するDest-NAT機能を実行します。
Azure Firewall宛のトラフィックを内部ロードバランサー向けのIPアドレスへ変換するルールを作成します。

この状態でAzure FirewallのIPアドレスにアクセスするとVMで動かしているIISの画面が表示されました。仮想ネットワーク内に転送されたトラフィックは内部ロードバランサーの効果で負荷分散されます。Azure Firewallの診断ログからNAT変換の統計を見ることができます。
(1.x.x.xとなっているのはtypoです。。)


5.Azure Firewallを使ってみて

Azure Firewallを経由するトラフィック設計にすることで、ネットワークセキュリティルールを一元的に管理できます。診断ログをLog AnalyticsやEvent Hubへ連携し、クラウドネイティヴな監視を行えるでしょう。

この記事を書いた人

曽根悠斗
曽根悠斗
Azureエンジニア2年目です。
IaaSだけでなくAzureの各種サービスを幅広く扱えるように修行中。。
好きなAzureのサービスはAzure ADとNetwork Watcher。