Network Security参照資料確認: 2026-09-10

NSG Default Rules

65000以降にAzureが持つAllowVNet / AllowAzureLoadBalancer / AllowInternetOutbound / DenyAllを、service tagの意味とoverride設計まで含めて読む。

運用前提: Portal上のresource stateだけでなく、対象5-tupleのeffective state・route・security logs・new connectionを組み合わせてdata planeを確認します。SKU/limit/preview statusは変更されるため、導入時は末尾のcurrent Microsoft Learnも再確認してください。

NSG Default Rulesを理解するための前提

Inbound既定はAllowVNetInBound(65000)、AllowAzureLoadBalancerInBound(65001)、DenyAllInbound(65500)。 Outbound既定はAllowVnetOutBound(65000)、AllowInternetOutBound(65001)、DenyAllOutBound(65500)。

default rulesは削除できないが、100–4096のcustom ruleで先にmatchさせることで実質的にoverrideする。 VirtualNetwork / AzureLoadBalancer / Internetは固定CIDRではなくservice tag。特にVirtualNetworkを「そのVNetのCIDRだけ」と決めつけない。

AllowInternetOutBoundはfilter許可であり、public IP、NAT Gateway、Firewall、routeなどのoutbound connectivityを生成しない。 default ruleをbaselineとして使う場合も、workload trust boundaryを明示し、必要ならVNet内east-westをcustom ruleで細分化する。

通信や判断の流れを追う
SourceRouteNSG / PolicyWorkloadResponse

Control plane と data plane

Control planedefault rulesはNSG resourceへAzureが提供するcontrol-plane baseline。custom rulesのpriority設計が実際のoverride方法になる。
Data planedata planeではcustom ruleでmatchしなかったflowだけがdefault rulesまで到達する。service tagの展開範囲が期待と異なると、意図しないAllow/Denyになる。

仕組み

custom inbound/outbound rulesをpriority順に評価する。

matchがなければ65000/65001/65500のdefault chainへ進む。

AllowVNet系はVirtualNetwork service tag同士を許可するため、VNet内segmentationを要件にするなら追加policyが必要。

Internet outboundはNSG上Allowでも、effective routeとSNAT/explicit outboundがなければInternet到達は成立しない。

Packet / decision path

障害時はresource一覧ではなく、同じsource/destination/port/protocolで各enforcement pointを順に追います。

  1. flowがcustom ruleにmatchするか確認する。
  2. matchしなければ該当directionのdefault ruleへ進む。
  3. service tagが現在どのprefix集合を表すかを確認する。
  4. route/NAT/firewallとNSGを分けて判定する。
  5. east-west trustが広すぎないか設計レビューする。

設計判断

判断点推奨理由
East-Westtier間通信はASG/CIDRで必要serviceだけ明示し、AllowVNetに丸投げしない。VNetはtrust boundaryそのものではない。
Load balancerAzureLoadBalancer service tagを理解してhealth probeを不要に遮断しない。probe失敗をbackend/application障害と誤認しやすい。
OutboundNSG allowとegress connectivityを別契約にする。security ruleとrouting/SNATは別レイヤー。
Overridedefault Denyを変更したいのではなく、上位priorityのspecific ruleで意図を表現する。Azure管理default ruleを直接変更できない。

確認手順

Azure Portal / Network Watcher

  • NSG → Default security rulesをInbound/Outbound両方確認。
  • Effective security rulesでdefault ruleが実際にどのprefixへ展開されるか確認。
  • Network Watcher NSG diagnosticsでcustom→defaultのどこが判定したか確認。

Verification discipline

  • subscription / resource group / resource ID / NIC / direction / 5-tupleを記録する。
  • 同じ条件でbefore/afterを比較し、既存sessionとnew connectionを区別する。
  • configuration、effective state、logs、application resultを別々の証拠として残す。
  • 変更成功はcontrol-plane Succeededではなくobservable data-plane behaviorで判定する。
Azure CLI — read-only first
az network nsg show -g <rg> -n <nsg> -o jsonc
az network nic list-effective-nsg -g <rg> -n <nic> -o jsonc
PowerShell — read-only first
Get-AzNetworkSecurityGroup -ResourceGroupName <rg> -Name <nsg>
Get-AzEffectiveNetworkSecurityGroup -ResourceGroupName <rg> -NetworkInterfaceName <nic>

障害切り分け

症状疑う点証拠次の確認
VNet内通信が広く通るAllowVNetInBound/OutBounddefault ruleとVirtualNetwork tag展開tier別custom Deny/Allowを設計
LB probeだけ失敗AzureLoadBalancer probe許可をoverrideしたcustom DenyNSG diagnosticsでprobe sourcehealth probe要件をspecificに許可
Internet outbound Allowなのに不達egress route/SNAT欠落effective route/NAT/Firewallexplicit outboundを確認
想定外prefixがVirtualNetwork扱いservice tag semanticseffective rule prefixesconnected network/UDR等を含む現在のtag範囲を確認

変更時の確認と rollback

  • 追加したoverride ruleを削除/restoreし、default behaviorに戻した後も新規flowで確認する。
  • VNet内segmentationをrollbackする場合はblast radiusを明示し、広いAllowへ戻す前に関係者合意を取る。

What changed recently

2026-09-10時点

NSG flow logsは新規作成できず、2027-09-30にretire予定です。新しい可視化設計はVNet flow logsを前提にし、既存NSG flow logsは移行計画を持たせます。

Official sources