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

Application Security Groups (ASG)

VM/NICをapplication roleでgroupingし、NSG ruleをIP直書きからrole-based policyへ変えるASGの設計・制約・障害切り分け。

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

Application Security Groups (ASG)を理解するための前提

ASGはNIC membershipをapplication roleとして扱い、NSG ruleのsource/destinationに参照できる。 IP addressの増減をruleへ逐次反映せず、Web/Logic/DBなどlogical tier単位でpolicyを再利用できる。

1 NICは複数ASGへ所属可能だが、subscription/ASGに関するcurrent limitsを確認する。 1 ASGへ所属するNICは同一VNetに存在する必要がある。異なるVNetのNICを同じASGに混在させない。

ASG source→ASG destinationのruleでは両側のNICが同一VNetの制約を満たす必要がある。 ASGはidentity/authorizationではなくnetwork grouping。application認証やRBACの代替にしない。

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

Control plane と data plane

Control planecontrol planeではASG resource、NIC membership、NSG rule referenceを管理する。role changeはIP変更ではなくmembership changeとして表現する。
Data planedata planeではpacketのsource/destination NICが参照ASGのmemberかどうかでNSG ruleがmatchする。ASG自体がroutingやNATを行うわけではない。

仕組み

workload roleをASGとして定義する(例: AsgWeb / AsgLogic / AsgDb)。

NICを正しいASGへmembershipさせる。

NSG ruleでsource/destination ASGとservice portを組み合わせる。

packet到着時にAzureがNIC membershipに基づいてrule matchを評価する。

scale-out時は新NICのASG membershipが自動化されているかIaC/deployment pipelineで確認する。

Packet / decision path

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

  1. application tierと通信matrixを先に定義する。
  2. ASG membershipをVM名や手作業に依存させずIaCへ含める。
  3. Internet/PaaSはservice tag、workload roleはASGなどobjectの責務を分ける。
  4. same-VNet制約をmulti-VNet architectureへ無理に拡張しない。
  5. membership漏れをnegative testで検知する。

設計判断

判断点推奨理由
Granularitytechnical componentではなくsecurity policyが同じroleでgroupingする。同一ASG内のmemberは同じrule scopeになる。
Multi-VNetASGをglobal objectとして使わずVNetごとに設計する。membershipは同一VNet制約がある。
AutomationNIC作成とASG membershipを同じdeployment unitにする。scale-out直後のunclassified NICを防ぐ。
Namingapp-role-envなどpolicy意図が読める名前にする。rule review時にIPリスト展開なしで理解しやすい。

確認手順

Azure Portal / Network Watcher

  • Application security groups → 対象ASG → NIC membershipを確認。
  • VM/NIC → Application security groupsで期待roleに所属しているか確認。
  • NSG ruleでASG referenceとpriorityを確認し、NSG diagnosticsで代表flowを試験。

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 asg show -g <rg> -n <asg> -o jsonc
az network nic show -g <rg> -n <nic> -o jsonc
az network nsg rule list -g <rg> --nsg-name <nsg> -o jsonc
PowerShell — read-only first
Get-AzApplicationSecurityGroup -ResourceGroupName <rg> -Name <asg>
Get-AzNetworkInterface -ResourceGroupName <rg> -Name <nic>

障害切り分け

症状疑う点証拠次の確認
ASG ruleが効かないNIC membership漏れNIC ipConfigurationのASG referencedeployment/IaCにmembershipを追加
別VNet memberを追加できないASG same-VNet制約ASG/NIC VNet resource IDVNetごとにASGを分ける
DBが全VNetから到達AllowVNet default ruleが先に残る/必要Deny不足effective rulesとpriorityAsgLogic→AsgDb allow + broader denyを設計
scale-out nodeだけ通信不可新NICのASG加入漏れinstance NIC membership比較autoscale/deploy pipelineを修正

変更時の確認と rollback

  • membership変更前にASG member一覧とNSG rule referenceを保存する。
  • rollbackでNICを元ASGへ戻した後、role間positive/negative flowを再試験する。

Official sources