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

Azure Virtual Network Manager

management group / subscriptionをまたぐVNetをNetwork Groupへ整理し、connectivity・security admin・routing・IPAMを中央管理するための設計と責任分界を整理する。

Architecture contract

AVNMを「VNetを作る製品」ではなく、組織スコープに対して意図したnetwork stateを配布するcontrol planeとして扱う。Network Groupへの所属、configurationの所有者、deployment region、exceptionとrollbackの境界を先に固定し、workload teamが担うNSG・subnet・application側の責任を奪わない。

この記事の目次

Azure Virtual Network Managerを理解するための前提

Scopeはmanagement groupまたはsubscriptionで定義し、その配下のVNetだけを管理対象にする。最初に「誰がどのsubscriptionをmanager scopeへ入れるか」を決める。 Network GroupはVNetを論理的に束ねるpolicy適用単位であり、static membershipまたはAzure Policyを使ったdynamic membershipで管理できる。所属そのものは通信許可を意味しない。

Connectivity configurationはmesh / hub-and-spoke等の接続意図、security admin configurationはNSGより上位のcentral guardrail、routing configurationはUDRのdesired stateを配布する。 configurationは作成しただけでは対象VNetへ有効化されず、対象network resourceが存在するregionへdeployして初めて効力を持つ。draftとactive stateを分けてchange reviewする。

IPAMはaddress poolから重複しないCIDRを払い出す中央機能で、connectivity/security featureを使わないAVNM instanceでも利用できる。 AVNMはcentral controlのblast radiusが大きい。全region / 全network groupへの一括deployを標準手順にせず、canary group・region単位の段階展開・effective state確認をchange contractに含める。

manager scope、Network Group、configuration、deploymentの4層を別物として記録する。『managerにVNetが見える』ことと『configurationがそのVNetでactive』であることを混同しない。

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

Ownership / Control / Data plane boundary

Governance scope

Management group / subscriptionを境界に、AVNMが参照・構成できるVNetの範囲を定義する。

Intent plane

Network Group membershipとconnectivity / security / routing configurationが『望ましい状態』を表す。

Deployment plane

configurationをtarget regionへdeployしてactive stateへ反映する。deploy前のdraftはdata planeを変えない。

Workload plane

subnet、NIC、NSG、Private Endpoint、application dependencyなどはworkload固有の設計として残し、central configurationとの合成結果を確認する。

Architecture model

読み方設計レビューでは左から右へ『scopeに入っているか → groupに所属するか → どのconfigurationが参照するか → どのregionへdeploy済みか → VNetで何がeffectiveか』を追う。障害調査でいきなりVNetだけを見ない。

設計判断

判断軸推奨する問い設計時に固定するもの
Manager scopeどのmanagement group / subscriptionを一つの変更blast radiusとして扱うか。scope owner、excluded subscription、cross-tenant要件、RBAC assignment。
Network Group modelregion / environment / trust zone / connectivity roleのどの軸でgroup化すれば、membershipが安定して説明できるか。group taxonomy、static/dynamic条件、exception process、owner。
Configuration ownershipconnectivity・security・routingを同一teamが所有するか、責務別に分離するか。configuration owner、reviewer、deployment approver、emergency path。
Deployment unit一度にどのregion / groupへ反映するか。canary、wave、maintenance window、success signal、stop condition。
Workload autonomycentral teamが固定するguardrailとworkload teamに残す自由度は何か。NSG/UDR ownership、local exception、shared-service consumption contract。
State evidencedesired stateとeffective stateの差を何で検知するか。IaC/Policy source、deploy status、effective config、route/security runtime evidence。

実装・展開の順序

  1. Scopeを最小から作る。 対象management group / subscriptionとRBACを確認し、既存VNetを誤って大規模変更しないread-only inventoryを先に取得する。
  2. Network Groupを定義する。 まずstatic membershipで意図を確認し、dynamic Azure Policyへ移行する場合はpreview membershipと既存tag/name metadataの品質を確認する。
  3. configurationをdraftする。 connectivity / security / routingを同時に変えず、変更理由と期待されるeffective stateをconfigurationごとに分離する。
  4. canaryへdeployする。 影響の限定されたnetwork group / regionから反映し、deploy statusだけでなく実際のreachability、effective route、security evaluationを検証する。
  5. waveを拡大する。 既知のpositive / negative flow、hybrid path、shared DNS、egress、Private Endpoint等を各waveで再確認する。
  6. drift監視へ移行する。 source-controlled definition、Azure Policy membership、AVNM active configurationとruntime stateの差を継続監視する。

Platform team / Workload team の責任分界

領域Platform / central teamWorkload / application team
Scope / RBACmanagement group / subscriptionのscope、AVNM role、central approverを定義。自分のsubscriptionがどのcentral scopeに属するかを把握し、必要なdelegated roleだけを保持。
Network Groupsgroup taxonomy、dynamic membership policy、exceptionを管理。VNet metadataを規約に合わせ、意図しないgroup join/leaveをchangeとして扱う。
Connectivityhub/mesh topology、direct connectivity、regional deploymentを管理。application dependencyと必要なeast-west flowを申告し、実flowを検証。
Security adminorganization-wide guardrailとexception collectionを管理。NSGでapplication固有のleast privilegeを実装し、central ruleとの合成結果を確認。
Routingcentral next-hop / UDR orchestrationの意図を管理。workload subnetのroute dependency、NVA symmetry、service-specific route requirementを提示。
IPAMaddress pool hierarchy、delegation、allocation policyを管理。delegated poolから必要prefixを取得し、勝手な直接CIDR割当を避ける。

Verification / review evidence

設計レビューで残す証拠

  • manager scope一覧と対象subscription / management groupの承認済みinventory
  • Network Groupごとのmembership根拠(static listまたはdynamic Azure Policy condition)
  • configuration version / source commit / reviewer / target region / deploy wave
  • change前後のdeploy statusとeffective connectivity / security evidence
  • IPAM pool hierarchyとallocation owner、重複チェック結果
  • rollback対象configurationと停止条件を含むchange record

runtimeで確認すること

  • 対象VNetが想定Network Groupへ所属し、不要なgroupへ入っていないこと
  • 対象regionで期待configurationがactiveになっていること
  • hub/spokeやmeshの到達性がtraffic matrix通りで、禁止flowは失敗すること
  • security admin ruleとNSGの合成結果が期待通りであること
  • effective routes / next hopが想定され、NVA経由flowのsymmetryが崩れていないこと
  • rollback後にroute convergenceと既存sessionを含むdata-plane状態が安定すること
Azure CLI — manager inventory (read-only)
az network manager list -o table
az network manager show --name <manager> --resource-group <rg> -o jsonc
PowerShell — manager inventory (read-only)
Get-AzNetworkManager | Select-Object Name, ResourceGroupName, Location

Common failure modes

症状 / anti-pattern原因になりやすい設計確認・是正
VNetはmanagerに見えるのに設定が効かないconfigurationを作成したがtarget regionへdeployしていない。deploy statusとactive/effective configurationを確認し、draft存在だけで完了判定しない。
想定外VNetが突然policy対象になるdynamic membership条件がtag/name等の可変metadataへ過度に依存。membership条件、Azure Policy assignment scope、VNet metadata変更履歴を確認。
中央変更で多数workloadが同時断blast radiusをscope=変更単位と誤認し、全regionへ一括deploy。canary group / region、wave、negative test、stop conditionを導入。
NSGを直しても通信が戻らないsecurity admin ruleが先にDenyしている、またはrouting configurationがpathを変更。security→route→NSGのeffective stateを層ごとに確認。
IaCと実環境の説明が一致しないsource definition、AVNM draft、active deployment、workload local configのversionが混在。4層のversion/evidenceをchange recordへ紐付ける。

Change safety / rollback

一括変更を避ける: configurationのdeleteを最初のrollback手段にしない。直前のknown-good configurationを保持し、同じtarget regionへ再deployできる形にする。membership変更とconfiguration変更を同一waveに混ぜず、rollback時も『group所属 → active configuration → effective data plane』を再検証する。

Current notes — 2026-09-11

Current service model

2026-09-11時点のMicrosoft Learnでは、AVNM configurationは対象network resourceのregionへdeployするまで効力を持たないと明記されている。RoutingやIPAMを含む機能・CLIのsupport levelは個別に変化し得るため、導入時は各featureとtoolingのcurrent documentationを再確認する。

Official sources