0Pricing
Cloud & IT Cert Prep · レッスン

ネットワーク セキュリティ グループとアプリケーション セキュリティ グループ

NSG ルールで受信および送信トラフィックをフィルター処理し、Application Security Groups で VM を論理的にグループ化して、ルール管理を簡素化します。

「ネットワーク セキュリティ グループとアプリケーション セキュリティ グループ」はCoddyKit上の無料Cloud & IT Cert Prepレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCloud & IT Cert Prep学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Cloud & IT Cert Prepコースには全4レッスンが含まれています。

Network Security Group とは

Network Security Group(NSG)は、Azure リソース用の仮想ファイアウォールとして機能します。NSG にはセキュリティ規則の一覧が含まれており、送信元 IP、宛先 IP、ポート番号、プロトコルに基づいて、受信および送信ネットワーク トラフィックを許可または拒否します。NSG はサブネット(そのサブネット内のすべてのリソースに影響)または個々のネットワーク インターフェイス(1 台の VM に影響)に関連付けることができます。サブネット NSG と NIC NSG の両方が存在する場合、Azure は両方を評価します。受信トラフィックではサブネット NSG が先に適用され、送信トラフィックでは NIC NSG が先に適用されます。

# Create an NSG
az network nsg create \
  --resource-group myRG \
  --name myNSG

NSG ルールの構造

各 NSG ルールには、次のプロパティがあります。優先度 — 100~4096 の数値で、数値が小さいものから評価されます。送信元/宛先 — IP アドレス、CIDR 範囲、サービス タグ、またはアプリケーション セキュリティ グループです。送信元/宛先ポート — 特定のポート番号または範囲です(例:80、443、3389、1024-65535)。プロトコル — TCP、UDP、ICMP、または Any です。アクション — Allow または Deny です。ルールは優先度の順に評価され、最初に一致したルールが適用されます。一致するルールがない場合は、既定のルールが適用され、すべての受信トラフィックが拒否され、すべての送信トラフィックが許可されます。

# Allow HTTPS inbound from the internet
az network nsg rule create \
  --resource-group myRG \
  --nsg-name myNSG \
  --name AllowHTTPS \
  --priority 110 \
  --direction Inbound \
  --source-address-prefixes Internet \
  --destination-port-ranges 443 \
  --protocol Tcp \
  --access Allow

NSG の既定のルール

すべての NSG には、削除できない優先度 65000~65500 の既定の受信ルール 3 つと既定の送信ルール 3 つが含まれています。既定の受信ルールは、AllowVnetInBound(VNet からのトラフィックを許可)、AllowAzureLoadBalancerInBound(Azure の正常性プローブを許可)、DenyAllInBound(その他すべてを拒否)です。既定の送信ルールは、AllowVnetOutBound、AllowInternetOutBound、DenyAllOutBound です。優先度の数値が小さいルール(100~64999)を追加すると、既定のルールより先に適用されるため、既定の動作を上書きできます。

NSG ルールのサービス タグ

サービス タグは、Azure サービスの IP アドレス範囲をあらかじめ定義したグループです。時間の経過とともに変化する IP アドレスを長い一覧で指定せずに、簡潔な NSG ルールを記述できます。一般的なサービス タグには次のものがあります。Internet — VNet 外部のすべての IP アドレス。VirtualNetwork — VNet 内のすべての IP。AzureLoadBalancer — Azure のインフラストラクチャ ロード バランサーの IP。Storage — 選択したリージョンの Azure Storage サービスの IP。AzureActiveDirectory — Entra ID エンドポイント。Microsoft はこれらのタグを自動的に管理するため、サービスの IP が変わっても NSG ルールは正確な状態に保たれます。

# Allow outbound to Azure Storage using a service tag
az network nsg rule create \
  --resource-group myRG \
  --nsg-name myNSG \
  --name AllowStorageOutbound \
  --priority 120 \
  --direction Outbound \
  --destination-address-prefixes Storage \
  --destination-port-ranges 443 \
  --protocol Tcp \
  --access Allow

NSG とサブネットの関連付け

NSG をサブネットに関連付けると、そのルールがサブネット内のすべてのリソースに適用されるため、大規模にネットワーク ポリシーを適用する最も効率的な方法になります。たとえば、データ層サブネットに「DenyRDP」NSG を関連付けると、NIC レベルの NSG が何を許可しているかに関係なく、そのサブネット内の VM は外部から RDP(ポート 3389)でアクセスされなくなります。このサブネット レベルの NSG は、トラフィックが個々の VM に到達する前に機能する防御の第一線となり、ネットワーク境界で攻撃対象領域を縮小します。

# Associate NSG with a subnet
az network vnet subnet update \
  --resource-group myRG \
  --vnet-name myVNet \
  --name web-tier \
  --network-security-group myNSG

Application Security Group とは

Application Security Group(ASG)を使用すると、IP アドレスではなくアプリケーションの役割に基づいて Azure VM のネットワーク インターフェイスをグループ化できます。たとえば、webServers、appServers、dbServers という名前の ASG を作成し、各 VM の NIC を適切な ASG に割り当てます。その後、NSG ルールに「webServers から appServers へのポート 8080 のトラフィックを許可する」と記述でき、IP アドレスを指定する必要はありません。VM を追加または削除するときは、ASG のメンバーシップを更新するだけで、ルールを変更しなくてもすべての NSG ルールが自動的に正しく適用されます。

# Create an Application Security Group
az network asg create \
  --resource-group myRG \
  --name webServers

# Associate a VM's NIC with the ASG
az network nic ip-config update \
  --resource-group myRG \
  --nic-name myWebVMNic \
  --name ipconfig1 \
  --application-security-groups webServers

ASG を使用した NSG ルール

ASG を定義して VM を割り当てたら、送信元または宛先として ASG を参照する NSG ルールを記述します。この方法は、次の理由から IP ベースのルールよりもはるかに保守しやすくなります。IP 管理が不要 — VM の IP を把握する必要はなく、ASG のメンバーシップが対応付けを処理します。動的なスケーリング — 新しい VM を適切な ASG に追加すると、正しいルールが自動的に継承されます。意味が明確 — ルールを不透明な IP 範囲ではなく、「webServers → appServers の 8080」のように自然に読めます。ASG は、VM が頻繁に追加または置き換えられる動的な環境で特に役立ちます。

# NSG rule using ASG as source and destination
az network nsg rule create \
  --resource-group myRG \
  --nsg-name myNSG \
  --name WebToApp \
  --priority 200 \
  --direction Inbound \
  --source-asgs webServers \
  --destination-asgs appServers \
  --destination-port-ranges 8080 \
  --protocol Tcp \
  --access Allow

トラブルシューティングのための NSG フロー ログ

NSG フロー ログには、NSG を通過するすべての IP トラフィックに関する情報が記録されます。これには送信元と宛先の IP、ポート、プロトコル、トラフィックが許可されたか拒否されたか、転送されたバイト数が含まれます。フロー ログは JSON 形式で Azure Storage アカウントに書き込まれ、Azure Network Watcher の Traffic Analytics ツールで可視化できます。フロー ログは、接続の問題(「このトラフィックがブロックされている理由は何か」)のトラブルシューティング、セキュリティ調査、トラフィック パターンの証拠が必要なコンプライアンス レポートに非常に役立ちます。

避けるべき一般的な NSG の誤り

接続の問題を引き起こす一般的な NSG の誤りは 3 つあります。評価順序を忘れる — 優先度 100 の Deny ルールが存在し、Allow ルールの優先度が 200 の場合、優先度の数値が小さいルールが優先されるため、トラフィックは拒否されます。Azure の正常性プローブをブロックする — Load Balancer の正常性プローブは IP 168.63.129.16 から送信されます。この送信元をブロックすると、ロード バランサーのバックエンドが正常でないと判断され、トラフィックを受信できなくなります。サブネット NSG と NIC NSG が重複する — トラフィックは両方の NSG 評価を通過する必要があります。サブネット NSG でトラフィックを許可していても、NIC NSG が拒否すればブロックされます。

NSG と Azure Firewall の比較

NSG と Azure Firewall は相互に補完するものですが、異なる役割を持ちます。NSG — 分散型で、サブネットと NIC に関連付けます。レイヤー 3/4(IP とポート)のフィルタリングを行い、既定ではトラフィックをログに記録せず、すべての VNet に無料で付属します。Azure Firewall — ハブ VNet 内で稼働する集中型のマネージド サービスです。レイヤー 3/4 に加えてレイヤー 7(FQDN、URL、IDPS)の処理を行い、Azure Monitor による完全なログ記録が可能で、コストは月額約 1,000 ドル以上です。基本的な境界保護と層の分離には NSG を使用してください。FQDN フィルタリング、脅威インテリジェンス、TLS 検査などを使用して、送信インターネット アクセスを一元的かつ監査可能な形で適用する必要がある場合は、Azure Firewall を使用してください。

有効なセキュリティ規則

NSG がサブネットと NIC の両方に関連付けられていると、実際にどのルールが適用されているのか分かりにくくなることがあります。Azure では、ポータルの任意の VM の NIC に対して有効なセキュリティ規則ビューを提供しており、サブネット レベルと NIC レベルのすべての NSG ルールを組み合わせた結果を表示します。これは、その VM に対して実際に許可または拒否される内容を示す決定的な一覧です。Azure Network Watcher のIP フロー検証ツールを使うと、さらに詳しく確認できます。送信元と宛先の IP/ポートを指定すると、トラフィックが許可されるか拒否されるか、またその原因となる具体的なルールを即座に確認できます。

クイック チェック

このレッスンで扱った Microsoft Azure Fundamentals(AZ-900)の概念について、理解度を確認してください。

レッスンのまとめ

このレッスンでは、NSG には許可または拒否のルールが含まれ、優先度の順に評価されてサブネットまたは個々のネットワーク インターフェイスのトラフィックをフィルタリングすること、サービス タグは Azure サービスの IP 範囲を動的なグループとして表すことでルールを簡潔にすること、そしてApplication Security Group を使用すると VM を役割に基づいてグループ化でき、環境の拡張に合わせて保守不要の NSG ルールを適用できることを学びました。次は、VNet 間および Azure サービスへのリソース接続に使用する VNet Peering と Service Endpoints について学びます。

よくある質問

「ネットワーク セキュリティ グループとアプリケーション セキュリティ グループ」レッスンは無料ですか?

はい。「ネットワーク セキュリティ グループとアプリケーション セキュリティ グループ」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Cloud & IT Cert Prepコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Cloud & IT Cert Prepコースには全4レッスンが含まれています。

「ネットワーク セキュリティ グループとアプリケーション セキュリティ グループ」で何を学びますか?

NSG ルールで受信および送信トラフィックをフィルター処理し、Application Security Groups で VM を論理的にグループ化して、ルール管理を簡素化します。 ブラウザで直接実行するハンズオンコードでCloud & IT Cert Prepを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Cloud & IT Cert Prepを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのCloud & IT Cert Prepは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。

「ネットワーク セキュリティ グループとアプリケーション セキュリティ グループ」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このCloud & IT Cert Prepレッスンでコードを書いて実行できますか?

はい。すべてのCloud & IT Cert Prepレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. 仮想ネットワークとサブネット
  2. ネットワーク セキュリティ グループとアプリケーション セキュリティ グループ
  3. VNet ピアリングとサービス エンドポイント
  4. Azure DNS と Load Balancer の基本
← Cloud & IT Cert Prepに戻る