Cloud Service
Azure Virtual Network Manager
多数の VNet をグループ単位で一括管理し、接続トポロジとセキュリティ規則を中央から宣言的に適用。手作業のピアリング配線とルール散在をなくす Azure Virtual Network Manager。
- 1.複数 VNet をネットワークグループにまとめ、接続とルールを一括適用する司令塔。
- 2.メッシュ/ハブアンドスポーク構成とセキュリティ管理規則をスコープ単位で配布。
- 3.VNet が増えるほど効果的。素のピアリングと NSG の手運用を肩代わりする。
解決する課題
VNet の数が増えると、ピアリングを総当たりで張り、NSG 規則を VNet ごとに重複定義する運用が破綻します。Virtual Network Manager(AVNM)は対象 VNet をグループにまとめ、接続トポロジとセキュリティ規則を中央から宣言的に適用することで、配線とルール散在の問題を一掃します。
- 多数の VNet を総当たりでピアリングする組み合わせ爆発を避けたい
- メッシュやハブアンドスポークのトポロジを一括で構成し、新しい VNet を自動で取り込みたい
- NSG とは別レイヤで強制力のあるセキュリティ規則を中央から配布したい
- サブスクリプションをまたいで散らばる VNet をスコープ単位で横断管理したい
- 構成変更を段階的にリージョン単位でデプロイし、影響範囲を制御したい
主要概念と用語
- ネットワークマネージャー(Network Manager): AVNM の最上位リソース。管理対象の範囲(スコープ)と有効化する機能を定義する
- スコープ(Scope): このマネージャーが管理できる範囲。管理グループまたはサブスクリプション単位で指定し、その配下の VNet を扱える
- ネットワークグループ(Network Group): 管理対象 VNet をまとめる論理グループ。構成や規則の適用単位になる
- メンバーシップ: ネットワークグループへの VNet 所属の決め方。明示的に列挙する静的メンバーと、条件式で自動的に取り込む**動的メンバー(Azure Policy 連携)**の2方式がある
- 接続構成(Connectivity Configuration): グループ内の VNet をどうつなぐかの定義。メッシュとハブアンドスポークのトポロジを宣言する
- セキュリティ管理構成(Security Admin Configuration): NSG より上位で評価される強制的なセキュリティ規則。ルール集(Rule Collection)として配布する
- デプロイ(Deployment): 作成した構成を選んだリージョンへ適用する操作。構成は定義しただけでは効かず、デプロイして初めて反映される
- 接続グループ(Connected Group): 接続構成で結ばれた VNet 群。グループ内では推移的に到達でき、ピアリングを個別に張らずに通信が成立する
仕様・制限・クォータ
- スコープが管理の前提: マネージャーは管理グループまたはサブスクリプションをスコープに持ち、その範囲内の VNet だけを扱える。スコープ外は管理できない
- 構成は定義とデプロイが別: 接続構成やセキュリティ管理構成は作っただけでは効かず、対象リージョンへ明示的にデプロイして初めて適用される
- トポロジは2種類: 接続構成はメッシュとハブアンドスポークを選べる。ハブアンドスポークではスポーク間のダイレクト接続を有効化するかも選択する
- 動的メンバーは Azure Policy 連動: 条件で自動所属させる動的メンバーシップは内部で Azure Policy を用い、タグや命名などの条件で新規 VNet を取り込める
- セキュリティ管理規則は NSG より優先: AVNM が配布する管理規則は NSG の評価より前に効き、許可・拒否を上位から強制できる
- マネージャー数、ネットワークグループ数、グループあたりの VNet 数などにサブスクリプション単位の上限がある。数値は変動するため、最新の公式ドキュメントで確認する
内部の仕組み
AVNM の中核は、宣言した構成をスコープ内の VNet へ配布・適用するコントロールプレーンです。利用者はトポロジと規則を宣言し、対象リージョンへデプロイするだけで、ピアリングの実体やルールの配置は AVNM が肩代わりします。
- 接続構成の適用: メッシュやハブアンドスポークを宣言すると、AVNM がグループ内 VNet 間の到達性を成立させる。多数の VNet を総当たりで配線する手間が不要になる
- 接続グループによる推移到達: 接続構成で結ばれた VNet は接続グループを形成し、グループ内で推移的に通信できる。素の VNet ピアリングが既定で非推移なのと対照的
- セキュリティ管理規則の二層評価: AVNM の管理規則がまず評価され、その後に従来の NSG が評価される。組織全体の最低ラインを上位で強制し、細部はチームが NSG で調整する分業ができる
- 動的メンバーシップ: タグや命名規則などの条件に合致した VNet を自動でグループへ取り込み、新規 VNet も構成の対象に組み込まれる
AVNM はピアリングや NSG を消す道具ではなく、それらを多数の VNet に対して中央から一括適用・強制する管理レイヤです。個別 VNet 内の細かな調整は引き続き NSG で行い、組織横断の方針を AVNM で配布する、という役割分担で捉えると理解しやすくなります。
設計パターン / ベストプラクティス
- VNet が多いほど採用価値が高い: 数十以上の VNet を総当たりピアリングしている、あるいはこれから増える見込みがあるなら、AVNM の一括管理が効く
- 動的メンバーシップで自動取り込み: タグや命名規則で動的メンバーを構成し、新規 VNet が自動でトポロジと規則の対象になるようにする。手動の取りこぼしを防げる
- セキュリティ管理規則で最低ラインを強制: 組織全体で禁止したい通信(特定ポートのインターネット公開など)は AVNM の管理規則で上位から拒否し、各チームの NSG では覆せないようにする
- 段階的デプロイで影響を制御: 構成は一度に全リージョンへ広げず、リージョン単位で順に適用して影響範囲を確認する
- 小規模なら過剰: VNet が数個なら、素の VNet ピアリングと NSG の手運用で十分なことが多く、AVNM の管理レイヤは過剰になりやすい
運用・監視
- 構成のデプロイ状態を確認: 接続構成・セキュリティ管理構成が、どのリージョンにどの版で適用済みかをポータルや CLI で追跡する。定義済みとデプロイ済みのずれが障害の温床になる
- 有効なセキュリティ規則を検証: AVNM の管理規則と NSG の合成結果を確認し、意図した許可・拒否になっているかを点検する。到達不能時はまずこの二層を見る
- ネットワークグループのメンバーを点検: 動的メンバーシップの条件が想定どおりの VNet を取り込んでいるかを定期的に確認する
- 構成変更を監査ログで追跡: マネージャーや構成への変更を Azure Monitor / アクティビティログで記録し、誰がいつ何を配布したかを残す
- IaC で宣言的に管理: マネージャー・ネットワークグループ・構成を Bicep / Terraform で管理し、トポロジと規則の差分をレビュー可能にする
コスト
AVNM のコストは、管理する機能と対象規模に応じて積み上がります。具体的な単価はリージョンや時期で変わるため、ここでは課金の考え方を定性的に整理します。
| コスト要素 | 課金の考え方 | メモ |
|---|---|---|
| 管理対象サブスクリプション | 管理下の規模に応じた費用 | スコープに含める範囲が増えると増加 |
| 接続構成 | 適用するトポロジ管理の費用 | メッシュやハブアンドスポークの管理対象 |
| セキュリティ管理規則 | 管理規則の適用に伴う費用 | 中央集約する規則の規模に依存 |
| データ転送 | VNet 間通信のデータ量 | 接続構成で結んだ通信量に応じる |
AVNM は多数の VNet を束ねて初めて管理コストの削減効果が出ます。VNet が数個なら、素のピアリングと NSG を手で運用する方が安く済むことが多く、管理レイヤの費用が割に合わないことがあります。
セキュリティ
- セキュリティ管理規則で最低ラインを強制: 組織全体で許さない通信を AVNM の管理規則として上位から拒否し、各 VNet の NSG では上書きできないようにする
- 二層防御の整理: AVNM の管理規則で組織方針を、NSG でチーム個別の細部を担う。どちらが何を担保するかを明確にし、規則の重複や矛盾を避ける
- 最小到達の徹底: 接続構成でグループ内を無条件にフルメッシュ通信させず、業務要件に応じてグループ分割やハブアンドスポークで到達範囲を絞る
- 最小権限の管理: マネージャーや構成の変更権限を RBAC で絞り、誰が組織横断の規則を配布できるかを限定する
- 変更の監査: 構成の作成・デプロイ・削除を監査ログで追跡し、意図しない方針変更を検知できるようにする
構成を定義しただけでデプロイせず、適用されたつもりになるのは典型的な落とし穴です。接続構成もセキュリティ管理構成も、対象リージョンへデプロイして初めて効きます。定義済みとデプロイ済みのずれを必ず確認してください。
関連サービス・比較
AVNM は組織横断で多数の VNet を中央管理する司令塔で、個々の通信制御を担う NSG とは層が異なります。両者は対立せず、上位方針(AVNM)と個別調整(NSG)として組み合わせて使います。下表で役割の違いを整理します。
| 観点 | Azure Virtual Network Manager | ネットワークセキュリティグループ |
|---|---|---|
| 主目的 | 多数 VNet の接続とルールを中央管理 | サブネット/NIC 単位の通信フィルタ |
| 管理範囲 | 管理グループ/サブスクリプション横断 | 個々の VNet 内に閉じる |
| 接続トポロジ | メッシュ/ハブアンドスポークを宣言 | 接続そのものは管理しない |
| 評価順序 | 管理規則は NSG より先に評価 | 管理規則の後に評価される |
| メンバー選定 | 静的/動的(Policy 連動) | サブネットや NIC へ個別に関連付け |
| 強制力 | 上位から組織方針を強制 | チーム単位で柔軟に調整 |
組織全体の方針を多数の VNet へ一括強制したいなら AVNM、個々のサブネットやリソースの細かな許可・拒否なら NSG、というように「どの層で誰が決めるか」で選ぶと役割が混ざりません。
ハンズオン / CLI例
# リソースグループを作成
az group create --name avnm-rg --location japaneast
# ネットワークマネージャーを作成(接続とセキュリティ管理を有効化、スコープにサブスクリプションを指定)
az network manager create \
--resource-group avnm-rg \
--name demo-avnm \
--location japaneast \
--scope-accesses "Connectivity" "SecurityAdmin" \
--network-manager-scopes subscriptions="/subscriptions/<subscription-id>"
# ネットワークグループを作成
az network manager group create \
--resource-group avnm-rg \
--network-manager-name demo-avnm \
--name prod-vnets
# 静的メンバーとして既存 VNet をグループへ追加
az network manager group static-member create \
--resource-group avnm-rg \
--network-manager-name demo-avnm \
--network-group-name prod-vnets \
--name member1 \
--resource-id "/subscriptions/<subscription-id>/resourceGroups/app-rg/providers/Microsoft.Network/virtualNetworks/spoke1-vnet"
Azure Service
Azure Virtual Network Managerを実務で読む
TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。
解決すること
ネットワーキング
比較で見る軸
クラウド: Azure / カテゴリ: ネットワーキング / 難易度: intermediate
導入後に効く点
メッシュ/ハブアンドスポーク構成とセキュリティ管理規則をスコープ単位で配布。
先に潰すリスク
サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。
- クラウド
- Azure
- カテゴリ
- ネットワーキング
- 難易度
- intermediate
- 関連資格
- —
- 設計柱
- operational / security
判断チェックリスト
- 自社の用途が「ネットワーキング / operational」に近いか確認する。
- 強みである「複数 VNet をネットワークグループにまとめ、接続とルールを一括適用する司令塔。」が本当に評価軸になるか確認する。
- 注意点の「サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。」を運用で吸収できるか確認する。
- 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
- 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
- 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。