Architecture & Governance参照資料確認: 2026-09-11

Centralized Egress Architecture

SpokeのoutboundをAzure Firewall/NVAへ集約するcentralized egressを、UDR・SNAT・DNS/FQDN・public IP・NAT Gateway・failure domain・検証方法まで含めて設計する。

Architecture contract

Centralized egressの目的は『0.0.0.0/0をFirewallへ向ける』ことではありません。送信元workloadからinternet/SaaSまで、route selection、inspection policy、SNAT capacity/public identity、DNS、return traffic、loggingを一つのegress contractとして設計します。

この記事の目次

Centralized Egress Architectureを理解するための前提

Cloud Adoption Frameworkのcurrent guidanceは、default outbound accessへ依存せず、workload要件に合う明示的なoutbound methodを設計するよう推奨している。 Hub-SpokeではAzure Firewallまたはpartner NVAをcentral hubへ置き、Spoke subnetのUDRでinternet/private prefixをinspection pointへ向けるpatternが一般的。

Azure NAT Gatewayはsubnet outboundの明示的SNAT機能であり、Layer 7 policy/IDPS/FQDN inspectionを行うFirewallの代替ではない。要件が『安定したSNAT/public IPと大きいSNAT port pool』だけならdistributed NAT Gatewayが適する場合がある。 Azure FirewallのSNAT scalabilityが要件になる場合、traditional Hub-SpokeではNAT GatewayをAzureFirewallSubnetへ関連付けてFirewall outboundを拡張するofficial patternがある。

FQDN application ruleを使うcentral Firewallでは、clientとFirewallの名前解決結果が不一致だと正当trafficをblockする可能性がある。DNS pathはegress architectureの一部。 centralized egressは共有failure domainでもある。Firewall/NVAのavailability、zone、route convergence、policy deployment、SNAT pressure、logging pipelineをcapacity/failure reviewへ含める。

通信や判断の流れを追う
Platform policyShared servicesSpoke / Workload運用・変更

Ownership / Control / Data plane boundary

Routing

Spokeからどのprefixをcentral egressへ送るかをUDR/effective routeで定義。Internetだけか、east-west/on-premも同じinspectionへ送るかを分ける。

Security

Firewall Policy/NVA ruleは許可条件を決める。routeがFirewallを指していてもpolicyが許可するとは限らず、逆も同じ。

SNAT identity

partner allowlistやauditに見えるsource public IPをownership対象にする。Firewall public IP / NAT Gateway prefix等を明示。

DNS

FQDN policy利用時はclient resolver、Firewall DNS proxy/upstream、Private/Public resolutionを整合させ、IP driftを考慮する。

Architecture model

読み方FirewallとNAT Gatewayを同じ『egress製品』として比較しません。Firewall/NVAはpolicy enforcement/inspection、NAT GatewayはSNAT/outbound identity・port scaleが主目的です。必要なら組み合わせます。

設計判断

判断軸推奨する問い設計時に固定するもの
InspectionL3/L4、FQDN、TLS inspection、IDPS、third-party security serviceのどこまで必要か。service/SKU、rule model、certificate/DNS dependency、log requirement。
Route scope0.0.0.0/0だけか、RFC1918/on-prem/spoke routeもinspectionするか。prefix list、longest-prefix conflict、BGP propagation方針。
SNAT同時connection、destination fan-out、partner allowlist、public IP stabilityを満たすか。public IP/prefix、capacity model、monitoring threshold。
DNSFirewall FQDN ruleとworkload resolutionを同一provider/resultへ寄せるか。DNS proxy、resolver、upstream、TTL、split-horizon。
BypassMicrosoft PaaS/Private Endpoint/backup/updateなどdirect pathを許すか。bypass criteria、service tag/prefix、security owner、exception expiry。
HAegress serviceまたはregion障害時にfail closed / fail overのどちらか。RTO、secondary path、route switch mechanism、test cadence。

実装・展開の順序

  1. workloadごとのegress destinationをIP/FQDN/service tag/port/protocolでinventoryし、direct/inspect/denyへ分類する。
  2. central Firewall/NVAのpolicyとDNSを先に作り、routeを変える前にrule coverageとloggingを検証する。
  3. canary subnetだけUDRを関連付け、Effective Routesでdefault/private routeのselected next hopを確認する。
  4. 実requestを発生させ、Firewall/NVA logにsource/destination/rule/SNATが記録され、partner側から期待public IPに見えることを確認する。
  5. SNAT capacity、latency、failure behaviorを負荷/障害testで確認し、必要ならAzureFirewallSubnetへのNAT Gatewayなどscaling designを適用する。
  6. deployment ringごとにSpokeを移行し、legacy egress pathの使用量が0になったことを観測してから撤去する。

Platform team / Workload team の責任分界

領域Platform / central teamWorkload / application team
Egress policycentral allow/deny、TLS/IDPS、public IP inventoryを管理。required SaaS/FQDN/portとbusiness ownerを申請。
UDR標準route intentとNVA/Firewall next hopを管理。subnet固有route exceptionを申請し、勝手な0/0上書きを避ける。
DNSFirewall DNS proxy/central resolverを管理。applicationが独自DNSを使う場合はFQDN policy影響を申告。
SNAT / capacitypublic IP/prefix、SNAT monitoring、scale actionを管理。expected concurrency/destination patternをcapacity planningへ提供。
Validationplatform path/log/negative testを提供。actual SaaS/API transactionでend-to-end successを確認。

Verification / review evidence

設計レビューで残す証拠

  • Egress traffic inventoryとrule owner。
  • Spoke subnetごとのroute table / effective route snapshot。
  • Firewall/NVA policy versionとdeployment timestamp。
  • public IP/prefix allowlistとSNAT capacity assumption。
  • DNS query path、FQDN rule dependency、rollback route。

runtimeで確認すること

  • source NICで0.0.0.0/0および対象prefixが期待Firewall/NVAへ向く。
  • Firewall/NVA logでactual flowが期待ruleにmatchし、bypassしていない。
  • 外部destinationから見えるsource public IPがallowlistと一致。
  • DNS名前解決結果とFirewall側resolutionが整合し、FQDN ruleが安定してmatch。
  • Firewall/NVA failover、policy rollback、route rollback後に新規connectionが回復。
Azure CLI — route / egress inventory
az network route-table list -o table
az network firewall list -o table
az network public-ip list -o table
az network nat gateway list -o table
PowerShell — route / egress inventory
Get-AzRouteTable
Get-AzFirewall
Get-AzPublicIpAddress
Get-AzNatGateway

Common failure modes

症状 / anti-pattern原因になりやすい設計確認・是正
一部SaaSだけ失敗FQDN解決がclientとFirewallで不一致、またはTLS/IDPS/application rule dependency。DNS query pathとFirewall logを同じ時刻で比較。
大量接続時だけtimeoutSNAT port/capacity不足やdestination fan-outの偏り。SNAT utilization/connection metricを確認しpublic IP/NAT Gateway integrationを検討。
Firewallを迂回more-specific routeや別NIC/subnet route、PaaS direct pathが存在。effective routeとactual flow logで選択pathを証明。
Partner allowlistに不一致egress public IP setを資産管理していない。public IP/prefixをcontract化し、変更をpre-change notification対象にする。
egress変更で全Spoke同時停止central route/policyを一括deploy。canary subnet/network group、staged rollout、automatic rollback thresholdを設ける。

Change safety / rollback

一括変更を避ける: UDRとFirewall Policyを同時に大規模変更しないでください。まずpolicy compatibility、次にcanary route、最後にscale-outの順にし、rollbackは旧route table associationと旧policy versionを独立して戻せる状態にします。DNS cacheとexisting connectionは戻した直後も残るため、新規接続で復帰を確認します。

Official sources