-
Notifications
You must be signed in to change notification settings - Fork 0
MS_AzureFirewall
- 所謂一つのプロキシ・サーバー
- ステートフルインスペクション型のファイアウォール
- WAF は Azure Application Gateway が該当する。
-
VNET の中に作成し、
- 主にアウトバウンドをコントロールする。
- ただし、インバウンドもコントロールする。
補足(位置づけ): Azure Firewall は「フルマネージドのステートフル FW」であり、
NSG とはレイヤも粒度も異なる。使い分けの目安は次のとおり。
NSG Azure Firewall 単位 サブネット / NIC VNET(通常は Hub に 1 台) 判定 5 タプル(IP / ポート / プロトコル) 5 タプル + FQDN + 脅威インテリジェンス ログ フローログ(別途 NW ウォッチャ) 診断設定で標準的に取得可能 費用 無料 時間課金 + 処理データ量課金 NSG は「速いが粗い」、Azure Firewall は「細かいが高い」。
両方を重ねて使うのが標準構成である(NSG で大枠、FW で FQDN 制御)。
ログが確認できる。
補足(最新化): 現在は 診断設定(Diagnostic settings) から
Log Analytics / ストレージ / Event Hubs へ送出する。
従来のAzureFirewallApplicationRule/AzureFirewallNetworkRuleなどの
カテゴリに加え、現在は**構造化ログ(Resource Specific テーブル)**が推奨されている。
- アウトバウンド専門
- HTTP、HTTPS、または MSSQL などのプロトコルに構成
- ネットワーク ルールよりも後に適用される。
- アウトバウンド&インバウンド
- TCP、UDP、ICMP、または 任意 の IP プロトコルに構成
- アプリケーション ルールよりも先に適用される。
補足(評価順序): 原文のとおり、評価順序は
DNAT → ネットワーク → アプリケーション である。
つまり「ネットワーク ルールで許可されていれば、アプリケーション ルールは評価されない」ため、
FQDN で絞りたいのに、ネットワーク ルールで広く開けてしまうと FQDN 制御が効かない
という事故が起きやすい。FQDN 制御を目的とする場合は、
ネットワーク ルールを最小限に留めるのが鉄則。
に関しては、FQDN でフィルタリングできる。
- に関しては、(FQDN では)フィルタリングできない。
- サービス・タグで HTTP 以外のプロトコルのフィルタも可能。
補足(最新化): 現在は ネットワーク ルールでも FQDN が使える(DNS プロキシの有効化が前提)。
原文執筆時点の「TCP/UDP は FQDN 不可」という制約は緩和されている。
ただし、DNS プロキシを有効にすると Azure Firewall が名前解決の経路に入るため、
可用性の考慮が必要になる点は変わらない。
タグという機能が今日枯れていて便利。
-
FQDN タグやサービス・タグ
-
FQDN タグ
Azure サービスに関連付けられた
完全修飾ドメイン名(FQDN)のグループを表す。 -
サービス・タグ
- Azure サービスに関連付けられた
IP アドレス・プレフィックスのグループを表す。 - サービス・タグは、NSG でも利用される。
- Azure サービスに関連付けられた
-
-
IP アドレスや FQDN のリストを更新する必要がない。
-
SQL Database や KeyVault、ストレージ等
マルチテナント型 PaaS サービスの場合には、
FQDN タグを使ったアプリケーション・ルール設定を行う
移行メモ(正誤): FQDN タグはアプリケーション ルール専用、
サービス・タグはネットワーク ルール専用であり、両者は互換ではない。
また、FQDN タグはWindowsUpdate/WindowsDiagnostics/MicrosoftActiveProtectionServiceなど
Microsoft が定義した固定の少数のみで、任意の PaaS 用に増やせるものではない。
「SQL Database や KeyVault、ストレージ」を FQDN で許可する場合は、
FQDN タグではなく個別の FQDN 指定(*.database.windows.netなど)になる。
- 脅威インテリジェンス・ベースのフィルタ処理
- 主に、IP アドレスや FQDN の問題を検知する。
- HTTP だけでなく、TCP / UDP も対象である模様。
最小構成
- 10万/月
- 2円/GB
補足(最新化): 現在は SKU が Basic / Standard / Premium の 3 種類ある。
原文の金額は Standard 相当の目安であり、実際の課金は
デプロイ時間課金 + 処理データ量課金の 2 本立て。
小規模用途では Basic、IDPS や TLS インスペクションが要る場合は Premium を選ぶ。
最新の金額は必ず料金計算ツールで確認すること。
UDR が必要
- デフォルト・ルートを Azure Firewall にする。
- すべてのアウトバウンドがプロキシを経由するようになる。
FQDN で頑張るしか無い。
-
「*」で開けると情報流出経路になる可能性がある。
-
「*」が明確に解らない部分は、手間になる。
- 必要な時点でのみ、一時的に穴をあける。
- ログで「*」の部分の Guid を確認して絞るなど。
-
この場合、Azure Private Endpoint の方が楽なケースも。
補足(なぜ「ユーザ・テナント単位」で絞れないのか): マルチテナント型 PaaS は
テナントが違っても FQDN やエンドポイントが共通(例:*.blob.core.windows.net)である。
つまり FW から見ると「自社のストレージ」と「他社のストレージ」が区別できない。
これが情報持ち出し(exfiltration)経路になるという指摘であり、
だからこそ「そのリソース専用の私設 IP を持つ」
Private Endpoint が本質的な解になる。
- アウトバウンド&インバウンドに対応しているので、SNAT / DNAT に対応している。
- ルール・コレクションの NAT は、インバウンドなので DNAT に該当する。
-
入力制御(インバウンド)
- 経路開放
- Hub にのみ Azure Firewall を作って集中管理する。
※ ゼロトラスト型で構成する場合には Spoke 側に立てても良い。 - 通常、NAT ルールを作らない。
- Hub にのみ Azure Firewall を作って集中管理する。
- 経路開放
-
攻撃検知
- 脅威インテリジェンス機能を有効化する。
- 診断設定を有効化する。
-
ハードニング(クライアント or サーバ)
- -
出力制御(アウトバウンド)
- 経路制限
- 適切に設計・定義されたルールのみが定義されている
・アウトバウンドのネットワーク・アプリケーション・ルール
・パケット・フォワーダとして動作させる場合のルール - タグ(FQDN タグやサービス・タグ)を積極的に利用する。
- 適切に設計・定義されたルールのみが定義されている
- 経路制限
高権限である「Network Contributor」ロールが必要になるので要注意。
補足(最新化): 複数の Firewall を運用する場合は Azure Firewall Manager と
ファイアウォール ポリシーでルールを一元管理できる。
ポリシーは階層化(親ポリシーの継承)が可能なので、
「全社共通の禁止ルール」と「システム個別の許可ルール」を分離でき、
Network Contributor を配りすぎる問題の緩和にもなる。
- Azure Firewall のドキュメント
https://learn.microsoft.com/ja-jp/azure/firewall/ - ファイアウォールまたはプロキシ サーバーのセーフリストに Azure portal の URL を追加する
https://learn.microsoft.com/ja-jp/azure/azure-portal/azure-portal-safelist-urls
Tags: 移行, インフラストラクチャ, クラウド, セキュリティ, 通信技術, Azure
このWikiは「Open棟梁Project」,「OSSコンソーシアム 開発基盤部会」によって運営されています。