Azure Firewall を設計して実装する
Azure Firewall は、Azure Virtual Network リソースを保護するクラウドベースのマネージド ネットワーク セキュリティ サービスです。 これは、組み込みの高可用性とクラウドによる無制限のスケーラビリティを備えた、完全にステートフルなサービスとしてのファイアウォールです。
Azure Firewall の機能
Azure Firewall には次の機能が含まれています。
- 組み込みの高可用性 - 高可用性は組み込まれているため、追加のロード バランサーは必要なく、何も構成する必要はありません。
- クラウドによる無制限のスケーラビリティ - Azure Firewall では、必要に応じてスケールアウトしてネットワーク トラフィック フローの変化に対応できるので、ピーク時のトラフィックを処理するために予算を立てる必要がありません。
- アプリケーションの FQDN フィルター規則 - アウトバウンド HTTP/S トラフィックまたは Azure SQL トラフィックを、ワイルドカードを含む完全修飾ドメイン名 (FQDN) の指定されたリストに制限できます。 この機能に TLS 終端は必要ありません。
- ネットワーク トラフィックのフィルタリング規則 - 送信元と送信先の IP アドレス、ポート、プロトコルを基準として、"許可" または "拒否" のネットワーク フィルタリング規則を一元的に作成できます。 Azure Firewall は完全にステートフルであるため、各種の接続の正当なパケットを識別できます。 規則は、複数のサブスクリプションと仮想ネットワークにまたがって適用および記録されます。
- FQDN タグ - これらのタグを使用すると、ファイアウォールを通過するよく知られた Azure サービス ネットワーク トラフィックを簡単に許可できます。 たとえば、ファイアウォール経由の Windows Update のネットワーク トラフィックを許可したいとします。 アプリケーションの規則を作成して、Windows Update のタグを組み込みます。 これで、Windows Update からのネットワーク トラフィックをファイアウォール経由でフローできるようになります。
- サービス タグ - サービス タグは IP アドレスのプレフィックスのグループを表し、セキュリティ規則の作成の複雑さを最小限に抑えるのに役立ちます。 独自のサービス タグを作成したり、タグに含まれる IP アドレスを指定したりすることはできません。 サービス タグに含まれるアドレス プレフィックスの管理は Microsoft が行い、アドレスが変化するとサービス タグは自動的に更新されます。
- 脅威インテリジェンス - ファイアウォールに対して脅威インテリジェンス ベースのフィルター処理 (IDPS) を有効にし、既知の悪意のある IP アドレスやドメインとの間で送受信されるトラフィックのアラートと拒否を行うことができます。 この IP アドレスとドメインのソースは、Microsoft の脅威インテリジェンス フィードです。
- TLS 検査 - ファイアウォールを使用して送信トラフィックを復号化し、データを処理した後、データを暗号化して宛先に送信することができます。
- アウトバウンド SNAT のサポート - すべてのアウトバウンド仮想ネットワーク トラフィックの IP アドレスは、Azure Firewall のパブリック IP アドレスに変換されます (送信元ネットワーク アドレス変換 (SNAT))。 仮想ネットワークからインターネット上のリモートの送信先に向かうトラフィックを特定して許可できます。
- インバウンド DNAT のサポート - ファイアウォールのパブリック IP アドレスへのインバウンド インターネット ネットワーク トラフィックは変換されて (送信先ネットワーク アドレス変換)、仮想ネットワーク上のプライベート IP アドレスにフィルター処理されます。
- 複数のパブリック IP アドレス - ファイアウォールに複数のパブリック IP アドレス (最大 250) を関連付けて、特定の DNAT および SNAT シナリオを有効にすることができます。
- Azure Monitor ログ - すべてのイベントは Azure Monitor と統合され、ログをストレージ アカウントにアーカイブしたり、イベントを Event Hubs にストリーミングしたり、それらを Azure Monitor ログに送信したりできます。
- 強制トンネリング - すべてのインターネット宛てトラフィックを、インターネットに直接渡すのではなく、指定されたネクスト ホップにルーティングするように、Azure Firewall を構成できます。 たとえば、インターネットに渡す前にネットワーク トラフィックを処理するために、オンプレミスのエッジ ファイアウォールや他のネットワーク仮想アプライアンス (NVA) があるような場合です。
- Web カテゴリ - Web カテゴリを使用すると、管理者は、ギャンブル Web サイトやソーシャル メディア Web サイトなどの Web サイト カテゴリへのユーザー アクセスを、許可または拒否できます。 Web カテゴリは Azure Firewall Standard に含まれていますが、Azure Firewall Premium プレビューではさらに細かく調整されています。 FQDN に基づくカテゴリと照合する Standard SKU の Web カテゴリ機能とは異なり、Premium SKU では、HTTP と HTTPS の両方のトラフィックについて URL 全体に従ってカテゴリを照合します。
- 認定資格 - Azure Firewall は、Payment Card Industry (PCI)、Service Organization Controls (SOC)、International Organization for Standardization (ISO)、ICSA Labs に準拠しています。
Azure Firewall でのルールの処理
Azure Firewall では、NAT 規則、ネットワーク規則、アプリケーション規則を、クラシック規則またはファイアウォール ポリシーを使用して構成することができます。 トラフィックを許可する規則を手動で構成するまで、すべてのトラフィックは Azure Firewall によって既定で拒否されます。
クラシック規則での規則の処理
クラシック規則では、規則のコレクションは規則の種類と優先順位に基づいて処理されます。優先順位は 100 から 65,000 までであり、数字の低い順から高い順に処理されます。 ルール コレクションの名前に使用できるのは、文字、数字、アンダースコア、ピリオド、ハイフンのみです。 また、先頭は文字または数字、末尾は文字、数字、またはアンダースコアでなければなりません。 名前の最大長は 80 文字です。 必要になったときに規則コレクションをさらに追加する余裕があるように、最初は規則コレクションの優先順位番号を 100 刻み (つまり、100、200、300 など) で間を空けて増やしておくのがベスト プラクティスです。
ファイアウォール ポリシーでの規則の処理
ファイアウォール ポリシーでは、規則は規則コレクション内に編成され、規則コレクションは規則コレクション グループに含まれます。 規則コレクションは次のいずれかの種類にできます。
- DNAT (宛先ネットワーク アドレス変換)
- ネットワーク
- Application
1 つの規則コレクション グループ内で複数の規則コレクションの種類を定義でき、規則コレクション内で 0 個以上の規則を定義できますが、規則コレクション内の規則は同じ種類 (つまり、DNAT、ネットワーク、またはアプリケーション) である必要があります。
ファイアウォール ポリシーでは、規則は規則コレクション グループの優先順位と規則コレクションの優先順位に基づいて処理されます。 優先順位は、100 (最も高い優先順位) から 65,000 (最も低い優先順位) の間の任意の値です。 優先順位が最も高い規則コレクション グループが最初に処理され、規則コレクション グループ内では、優先順位が最も高い (つまり、値が最も小さい) 規則コレクションが最初に処理されます。
ファイアウォール ポリシーが親ポリシーから継承される場合、子ポリシーの優先順位に関係なく、親ポリシーの規則コレクション グループが常に優先されます。
規則コレクション グループまたは規則コレクションの優先順位およびポリシーの継承に関係なく、アプリケーション規則は常にネットワーク規則の後で処理され、ネットワーク規則は常に DNAT 規則の後で処理されます。
ネットワーク規則とアプリケーション規則を使用したアウトバウンド接続
ネットワーク規則とアプリケーション規則の両方を構成した場合、アプリケーション規則より前に、ネットワーク規則が優先順位に従って適用されます。 さらに、すべての規則は終了するので、ネットワーク規則で一致が見つかった場合、それより後の他の規則は処理されません。
一致するネットワーク規則が存在せず、プロトコルが HTTP、HTTPS、または MSSQL の場合、パケットは優先順位に従ってアプリケーション規則で評価されます。 HTTP の場合は、Azure Firewall により、ホスト ヘッダーに従ってアプリケーション規則の一致が検索されますが、HTTPS の場合は、Server Name Indication (SNI) のみに従ってアプリケーション規則の一致が検索されます。
DNAT 規則とネットワーク規則を使用するインバウンド接続
DNAT を構成することで、インバウンド インターネット接続を有効にできます。 前に説明したように、ネットワーク規則より前に DNAT 規則が優先して適用されます。 一致が見つかると、変換されたトラフィックを許可する暗黙的な対応するネットワーク ルールが追加されます。 セキュリティ上の理由から、ネットワークへの DNAT アクセスを許可するための特定のインターネット ソースを追加し、ワイルドカードは使用しないようにすることが推奨されています。
アプリケーション ルールは、受信接続には適用されません。 したがって、インバウンド HTTP/S トラフィックをフィルター処理する場合は、Web Application Firewall (WAF) を使用する必要があります。
セキュリティを強化するため、以前は許可されていたトラフィックへのアクセスを拒否するように規則を変更すると、関連する既存のセッションは終了されます。
Azure Firewall のデプロイと構成
Azure Firewall をデプロイするときは、次の点に注意してください。
- 複数のサブスクリプションや仮想ネットワークを対象に、アプリケーションとネットワークの接続ポリシーを一元的に作成、適用、記録できます。
- 仮想ネットワーク リソースに対しては、静的なパブリック IP アドレスが使用されます。 これにより、対象の仮想ネットワークから送信されるトラフィックを外部のファイアウォールで識別できます。
- ログと分析のために、Azure Monitor と完全に統合されます。
- ファイアウォール規則を作成するときは、FQDN タグを使用するのが最適です。
Azure Firewall のデプロイと構成の主なステージは次のとおりです。
- リソース グループを作成する
- 仮想ネットワークとサブネットを作成する
- サブネットにワークロード VM を作成する
- 仮想ネットワークにファイアウォールとポリシーをデプロイする
- 既定のアウトバウンド ルートを作成する
- アプリケーション ルールを構成する
- ネットワーク ルールを構成する
- 送信先 NAT (DNAT) 規則を構成する
- ファイアウォールをテストする
Availability Zones を使用した Azure Firewall のデプロイ
Azure Firewall の主な機能の 1 つは Availability Zones です。
Azure Firewall をデプロイするときは、可用性を高めるため、複数の Availability Zones にまたがるように構成できます。 この方法で Azure Firewall すると、可用性は 99.99% のアップタイムまで高くなります。 2 つ以上の可用性ゾーンを選択すると、稼働率 99.99% の SLA が提供されます。
サービス標準の 99.95% の SLA を使用して、近接性の理由から Azure Firewall を特定のゾーンに関連付けることもできます。
詳細については、Azure Firewall のサービス レベル アグリーメント (SLA) に関する記事を参照してください。
可用性ゾーンにファイアウォールをデプロイしても追加のコストは発生しません。 ただし、Availability Zones に関連する受信および送信データ転送については追加のコストが発生します。
詳細については、「帯域幅の料金詳細」をご覧ください。
Azure Firewall の Availability Zones は、Availability Zones がサポートされているリージョンでのみ利用できます。
Availability Zones は、ファイアウォールのデプロイの間にのみ構成できます。 Availability Zones を含むように既存のファイアウォールを構成することはできません。
Availability Zones を使用して Azure Firewall をデプロイする方法
Availability Zones を使用して Azure Firewall をデプロイするには、複数の方法を使用できます。
- Azure portal
- Azure PowerShell - 「Azure PowerShell で可用性ゾーンを使用する Azure Firewall をデプロイする」を参照してください
- Azure Resource Manager テンプレート - 「クイック スタート:可用性ゾーンを使用して Azure Firewall をデプロイする - ARM テンプレート」を参照してください