NSG (Network Security Group) と ASG (Application Security Group) は Azure VNet のセキュリティ基盤です。 無料で利用できる基本ファイアウォール機能ながら、設計を間違えると保守不能になったり、適切に活用すれば数百 VM の組織内通信を簡潔にコントロールできます。 本記事では、NSG / ASG の設計原則・標準パターン・運用ベストプラクティスを実装テンプレート付きで整理します。
| 項目 | NSG | ASG |
|---|---|---|
| 分類 | ステートフルファイアウォール | 論理グループ化 |
| 適用レベル | Subnet または NIC | VM NIC |
| ルール定義 | Inbound/Outbound、IP/Port/Protocol | NSG ルール内で参照 |
| 料金 | 無料 | 無料 |
| 役割 | 制御エンジン | 論理グルーピング |
両者は併用が標準で、ASG を NSG ルールで参照することでロールベースのセキュリティ管理を実現します。
NSG ルールは優先度 (Priority、100-4096) の昇順で評価され、最初にマッチしたルールで判定終了します。
| 優先度範囲 | 用途 |
|---|---|
| 100-200 | 超高優先・緊急ブロック |
| 1000-3000 | 通常 Allow ルール (1000 ずつ間隔) |
| 4000 | カスタムデフォルト Deny |
| 65000+ | Default Rules (そのまま) |
優先度の隙間を空けて配置することで、後から優先度変更不要でルール追加可能です。
Service Tags は Microsoft が提供する Azure サービスの IP アドレス範囲の事前定義グループ。NSG ルールで IP アドレスの代わりに使用、Microsoft が IP 範囲を自動更新するため運用負荷ゼロ。
標準的なエンタープライズ Web アプリケーションの ASG 設計:
| 優先度 | 名前 | Source | Destination | Port | Action |
|---|---|---|---|---|---|
| 100 | AllowWebInbound | Internet | WebTier-ASG | TCP 80,443 | Allow |
| 200 | AllowWebToApp | WebTier-ASG | AppTier-ASG | TCP 8080 | Allow |
| 300 | AllowAppToDB | AppTier-ASG | DBTier-ASG | TCP 1433 | Allow |
| 400 | AllowMgmtInbound | VirtualNetwork | MgmtTier-ASG | TCP 22,3389 | Allow |
| 4000 | DenyAllInbound | Any | Any | Any | Deny |
これにより VM の IP アドレスを意識せず、ロール単位でセキュリティ制御可能。Auto Scale で VM が動的に増減してもルール変更不要というメリットを得られます。
| 項目 | Subnet レベル NSG | NIC レベル NSG |
|---|---|---|
| 適用範囲 | Subnet 内のすべてのリソース | 個別 VM の NIC のみ |
| 管理 | 容易・スケーラブル | VM 個別管理 |
| 用途 | 基本セキュリティ | 特定 VM のみの例外 |
| 推奨度 | 主 | 例外時のみ |
Subnet と NIC の両方適用時は AND 評価、両方で許可されたトラフィックのみ通過。新規 VNet では Subnet レベル NSG を必ず構成、NIC レベルは例外時のみ使用が推奨です。
NSG Flow Logs は、NSG を通過するすべてのトラフィックを JSON 形式で Storage Account にログ記録する機能です。
本番運用ではコンプライアンス要件 (PCI DSS・HIPAA) や Forensic 調査のため Flow Logs 必須で、最低 90 日の Retention 設定が標準です。
NSG と ASG の違いは?
NSG (Network Security Group) は VNet 内のトラフィックを制御するステートフルファイアウォール、Subnet または NIC レベルで適用、IP/Port/Protocol ベースの Inbound/Outbound ルールを定義。ASG (Application Security Group) は NSG ルールを論理グループ化する補助機能、Web Tier・App Tier・DB Tier などのロール別グループを作って NSG ルールで IP アドレスの代わりに参照、ルール管理を大幅に簡素化。両者は併用が標準で、NSG が制御エンジン・ASG が論理グルーピングという関係性。エンタープライズ VNet では必ず ASG を活用して NSG ルールを保守可能にすべきです。
NSG のルール優先度とは?
NSG ルールは優先度 (Priority、100-4096) の昇順で評価され、最初にマッチしたルールで判定終了。100 が最優先、4096 が最低。標準で 3 つの Default Rules (65000-65500) が存在: AllowVnetInBound・AllowAzureLoadBalancerInBound・DenyAllInBound (Inbound)、AllowVnetOutBound・AllowInternetOutBound・DenyAllOutBound (Outbound)。これらは Override 可能でカスタムルールで上書き。設計原則: 100-200 を超高優先 (緊急ブロック)、1000-3000 を通常 Allow ルール、4000 をデフォルト Deny、Default Rules はそのまま、という階層化が定石。優先度の隙間を空けて配置することで、後から優先度変更不要でルール追加可能です。
Service Tags と FQDN Tags の違いは?
Service Tags: Microsoft が提供する Azure サービスの IP アドレス範囲の事前定義グループ (例: AzureCloud・Internet・VirtualNetwork・AzureKeyVault・AzureMonitor・Storage 等 60+ タグ)。NSG / Azure Firewall Network Rule で IP アドレスの代わりに使用、Microsoft が IP 範囲を自動更新するため運用負荷ゼロ。FQDN Tags: Azure Firewall Application Rule で使用する FQDN グループ (例: Microsoft365・WindowsUpdate・AzureBackup)、HTTP/HTTPS のみ対応、Service Tags より少ない数だが頻用シナリオをカバー。NSG では Service Tags のみ使用可能、FQDN Tags は Azure Firewall 限定。例: NSG で『この Subnet から Storage Service への Outbound のみ許可』を Service Tag = Storage で実装するパターンが頻出です。
Subnet レベルと NIC レベルの NSG はどちらが推奨?
Subnet レベルが推奨。Subnet レベル NSG は、Subnet 内のすべてのリソースに一律適用、管理が容易・スケーラブル。NIC レベル NSG は、個別 VM の NIC に直接適用、特定 VM のみの例外ルール用。実装パターン: 基本セキュリティを Subnet レベル NSG で構成、特定 VM のみの追加制御を NIC レベル NSG で追加 (Subnet と NIC の両方適用時は AND 評価、両方で許可されたトラフィックのみ通過)。新規 VNet では Subnet レベル NSG を必ず構成、NIC レベルは例外時のみ使用するのがベストプラクティスです。
ASG はどう設計しますか?
ASG (Application Security Group) はロール別の論理グループを作成、VM の NIC に ASG を関連付け、NSG ルールで Source/Destination に ASG を指定。標準設計: WebTier-ASG (Web サーバー VM 群)・AppTier-ASG (アプリ VM 群)・DBTier-ASG (DB サーバー VM 群)・MgmtTier-ASG (Jumpbox・管理 VM 群) の 4-5 ASG。NSG ルール例: 『Internet → WebTier-ASG TCP 80/443 Allow』『WebTier-ASG → AppTier-ASG TCP 8080 Allow』『AppTier-ASG → DBTier-ASG TCP 1433 Allow』。これにより VM の IP アドレスを意識せず、ロール単位でセキュリティ制御可能、Auto Scale で VM が動的に増減してもルール変更不要というメリットを得られます。
NSG Flow Logs とは?
NSG Flow Logs は、NSG を通過するすべてのトラフィックを JSON 形式で Storage Account にログ記録する機能。Allowed / Denied・送信元/宛先 IP・Port・Protocol・タイムスタンプ・バイト数を記録。Traffic Analytics (Network Watcher の有償機能) で集計・可視化、Top Talker・異常通信・脅威検知のレポート提供。Microsoft Sentinel への送信で SOC アナリティクスに統合、KQL クエリで異常通信検知 (例: 想定外の Outbound 通信・大量の Denied 通信)。Flow Logs v2 (現行) は集計レポート提供、v1 はレガシー。本番運用ではコンプライアンス要件 (PCI DSS・HIPAA) や Forensic 調査のため Flow Logs 必須で、最低 90 日の Retention 設定が標準です。
NSG 設計の落とし穴は?
代表的な落とし穴: 1) Default Outbound Allow Internet を放置 (全 VM がインターネット出力可能、データ漏洩リスク)、適切な Deny ルールを追加。2) Subnet 名を AzureBastionSubnet / GatewaySubnet にすると NSG 適用に制約あり (Bastion Subnet では一部ルール必須・Gateway Subnet は NSG 非推奨)。3) Service Tag の更新タイミングを考慮しない (Microsoft が IP 範囲を月次更新、新規 IP が一時的に Block される可能性)。4) NSG ルール優先度を密にしすぎる (後から追加困難)、1000 ずつ間隔を空ける。5) ASG を使わず IP アドレス直接指定 (Auto Scale 時にルール破綻)。6) Flow Logs 未設定 (障害時に原因特定不可)。これらを設計初期段階で意識することが、運用コストの大幅削減につながります。
関連認定試験は?
AZ-700 (Network Engineer Associate) で NSG / ASG が深く問われ、Rule 設計・Service Tags・Flow Logs・Traffic Analytics・ASG 活用パターンが頻出。AZ-104 (Administrator) のドメイン 4 で基礎、AZ-305 (Solutions Architect Expert) でアーキテクト視点でのセキュリティ設計、SC-100 (Cybersecurity Architect Expert) でゼロトラストネットワーク・マイクロセグメンテーション、SC-500 (旧 AZ-500、2026-09 GA) で Azure セキュリティ実装。Azure を扱うすべてのエンジニアにとって NSG / ASG の理解は必須スキルです。
関連記事・技術深掘り
Azure Network Watcher トラブルシューティング完全ガイド|Connection Troubleshoot・IP Flow Verify・Packet Capture【2026 年版】
Azure Network Watcher の完全ガイド。Connection Troubleshoot・IP Flow Verify・Next Hop・Packet Capture・NSG Flow Logs・Connection Monitor・Traffic Analytics・Effective Routes など全機能解説。標準トラブルシューティングフロー、関連認定試験 (AZ-700 / AZ-305 / SC-200) を日本語で網羅。
Azure Architect キャリアロードマップ|AZ-900 → AZ-305 → SC-100 シニアアーキテクトへの道【2026 年版】
Azure Solutions Architect になるための認定取得ロードマップ完全版。AZ-900 → AZ-104 → AZ-305 の王道ルート、AZ-400 / SC-100 / AZ-700 との二刀流 / 三刀流戦略、マルチクラウド対応 (AWS / GCP)、未経験から 7-12 ヶ月の学習プラン、年収レンジまで日本語で網羅。
Azure セキュリティエンジニア キャリアロードマップ|SC-900 → SC-200/300/400 → SC-100 シニアへの道【2026 年版】
Azure セキュリティエンジニアになるための認定取得ロードマップ完全版。SC-900 → SC-200/300/400 のいずれか → SC-100 / SC-500 の王道ルート、ロール別の優先順序、CISSP との二刀流戦略、SC-500 (旧 AZ-500 後継、2026-09 GA 予定) の動向、10-15 ヶ月の学習プラン、年収レンジまで日本語で網羅。
Azure Kubernetes Service (AKS) 入門ガイド|アーキテクチャ・Networking・Ingress・セキュリティ完全解説【2026 年版】
Azure Kubernetes Service (AKS) の入門ガイド。Control Plane と Node Pool の構造、Azure CNI Overlay vs Kubenet の選定、Application Gateway / NGINX Ingress 選定、Workload Identity (新方式)、Private Cluster・Microsoft Defender for Containers・Azure Policy のセキュリティ、関連認定試験 (AZ-104 / AZ-204 / AZ-400 / CKA) を日本語で網羅。
本記事の技術情報は Azure NSG Documentation に基づいています。 本記事は Microsoft Corporation の公式商品ではなく、いかなる提携・後援関係もありません。 Microsoft、Azure は Microsoft group of companies の商標です。 情報は 2026 年 5 月 24 日時点の公式公開資料に基づきます。最新情報は必ず公式ページをご確認ください。
NicheeLab編集部
データエンジニアリング・クラウド資格の専門家。Databricks・Snowflake等の認定資格を保有し、実務経験に基づいた問題作成・解説を行っています。NicheeLab運営。
AZ-900 完全ガイド|Microsoft Azure Fundamentals 出題範囲・学習リソース・合格戦略
Microsoft Azure Fundamentals (AZ-900) の 2026 年 1 月 14 日改訂版に対...
Azure 認定資格ロードマップ 2026 完全版|全 26 試験の体系と大型再編 (AI-901/AI-103/SC-500)
Microsoft Azure 認定資格 全 26 試験 (現行 23 + 退役 3) の 2026 年版ロードマップ。...
AI-901 完全ガイド|Azure AI Fundamentals 新試験
Microsoft Certified: Azure AI Fundamentals (AI-901) の出題範囲・Mi...
Microsoft Entra ID 入門|旧 Azure AD から学ぶ ID 管理 (AZ-900/SC-900/AZ-104 必須知識)
Microsoft Entra ID (旧 Azure Active Directory) の入門解説。2023 年 7...
DP-900 完全ガイド|Azure Data Fundamentals 出題範囲・学習リソース・合格戦略
Microsoft Azure Data Fundamentals (DP-900) の完全ガイド。4 ドメインの出題範...