ネットワーク セキュリティ グループによってネットワーク トラフィックをフィルター処理する方法
Azure 仮想ネットワーク内の Azure リソースが送受信するネットワーク トラフィックは、Azure ネットワーク セキュリティ グループを使ってフィルター処理できます。 ネットワーク セキュリティ グループには、何種類かの Azure リソースとの送受信ネットワーク トラフィックを許可または拒否するセキュリティ規則が含まれています。 各規則で、送信元と送信先、ポート、およびプロトコルを指定することができます。
1 つの Azure 仮想ネットワークに、いくつかの Azure サービスのリソースをデプロイすることができます。 完全な一覧については、「仮想ネットワークにデプロイできるサービス」を参照してください。 仮想マシンの各仮想ネットワーク サブネットおよびネットワーク インターフェイスに、ゼロ個または 1 個のネットワーク セキュリティ グループを関連付けることができます。 同じネットワーク セキュリティ グループを、任意の数のサブネットとネットワーク インターフェイスに関連付けることができます。
次の図は、インターネットとの間で TCP ポート 80 を経由してネットワーク トラフィックを送受信できるようにネットワーク セキュリティ グループをデプロイするさまざまなシナリオを示しています。
Azure がネットワーク セキュリティ グループの受信規則と送信規則をどのように処理するかを理解するために、以下のテキストを読みながら、前の図を参照してください。
受信トラフィック
受信トラフィックの場合、Azure は、サブネットに関連付けられているネットワーク セキュリティ グループがあれば、まずその規則を処理し、次にネットワーク インターフェイスに関連付けられているネットワーク セキュリティ グループがあれば、その規則を処理します。 このプロセスにはサブネット内トラフィックも含まれます。
VM1: NSG1 のセキュリティ規則が処理されます。ネットワーク セキュリティ グループが Subnet1 に関連付けられており、VM1 が Subnet1 内にあるためです。 ポート 80 受信を許可する規則を作成していない限り、DenyAllInbound 既定セキュリティ規則によってトラフィックが拒否されます。 このブロックされたトラフィックが NSG2 によって評価されることはありません。これは、NSG2 がネットワーク インターフェイスに関連付けられているためです。 ただし、NSG1 のセキュリティ規則でポート 80 が許可されている場合は、NSG2 によってトラフィックが処理されます。 仮想マシンにポート 80 を許可するには、NSG1 と NSG2 の両方に、インターネットからのポート 80 を許可する規則が必要です。
VM2:NSG1 の規則が処理されます。VM2 も Subnet1 内にあるためです。 VM2 はネットワーク インターフェイスに関連付けられたネットワーク セキュリティ グループを持たないため、NSG1 で許可されたすべてのトラフィックを受信するか、NSG1 によって拒否されたすべてのトラフィックが拒否されます。 トラフィックは、ネットワーク セキュリティ グループがサブネットに関連付けられている場合、同じサブネット内のすべてのリソースに対して許可または拒否されます。
VM3: Subnet2 にはネットワーク セキュリティ グループが関連付けられていないため、トラフィックはサブネットに対して許可され、NSG2 によって処理されます。NSG2 が、VM3 に接続されているネットワーク インターフェイスに関連付けられているためです。
VM4: ネットワーク セキュリティ グループが Subnet3 にも仮想マシンのネットワーク インターフェイスにも関連付けられていないため、VM4 へのトラフィックがブロックされます。 サブネットおよびネットワーク インターフェイスにネットワーク セキュリティ グループが関連付けられていない場合、すべてのネットワーク トラフィックがサブネットおよびネットワーク インターフェイスを介してブロックされます。
送信トラフィック
送信トラフィックの場合、Azure はネットワーク インターフェイスに関連付けられているネットワーク セキュリティ グループがあれば、まずその規則を処理し、次にサブネットに関連付けられているネットワーク セキュリティ グループがあれば、その規則を処理します。 このプロセスにはサブネット内トラフィックも含まれます。
VM1:NSG2 のセキュリティ規則が処理されます。 インターネットへのポート 80 送信を拒否するセキュリティ規則を作成しない限り、NSG1 と NSG2 の両方のAllowInternetOutbound 既定セキュリティ規則によってトラフィックが許可されます。 NSG2 にあるセキュリティ規則でポート 80 が拒否される場合、トラフィックは拒否され、NSG1 によって評価されることはありません。 仮想マシンのポート 80 を拒否するには、ネットワーク セキュリティ グループのいずれかまたは両方に、インターネットへのポート 80 を拒否する規則が必要です。
VM2: すべてのトラフィックがネットワーク インターフェイスを介してサブネットに送信されます。VM2 に接続されているネットワーク インターフェイスに、ネットワーク セキュリティ グループが関連付けられていないためです。 NSG1 の規則が処理されます。
VM3: NSG2 にあるセキュリティ規則でポート 80 が拒否される場合、トラフィックが拒否されます。 NSG2 でポート 80 が拒否されない場合、ネットワーク セキュリティ グループが Subnet2 に関連付けられていないため、NSG2 の AllowInternetOutbound 既定セキュリティ規則によってトラフィックが許可されます。
VM4:ネットワーク セキュリティ グループが、仮想マシンに接続されているネットワーク インターフェイスにも Subnet3 にも関連付けられていないため、VM4 からのすべてのネットワーク トラフィックが許可されます。
サブネット内トラフィック
サブネットに関連付けられている NSG のセキュリティ規則は、その内部にある VM 間の接続に影響を与える可能性があることに注意することが重要です。 既定では、同じサブネット内の仮想マシンは、サブネット内トラフィックを許可する既定の NSG 規則に基づいて通信できます。 受信トラフィックと送信トラフィックをすべて拒否する規則を NSG1 に追加する場合、VM1 と VM2 は相互に通信できなくなります。
ネットワーク インターフェイスの有効なセキュリティ規則を表示すると、ネットワーク インターフェイスに適用されている規則の集計を簡単に確認できます。 Azure Network Watcher の [IP フローの確認] 機能を使って、ネットワーク インターフェイスの受信/送信が許可されているかどうかを確認することもできます。 IP フロー検証を使用して、通信が許可されているか拒否されているかを判断できます。 さらに IP フロー検証を使用して、トラフィックの許可または拒否を担当するネットワークのセキュリティ規則の ID を確認できます。
注意
ネットワーク セキュリティ グループは、サブネット、クラシック デプロイ モデルにデプロイされた仮想マシンやクラウド サービス、および Resource Manager デプロイ モデルのサブネットまたはネットワーク インターフェイスに、関連付けられています。 Azure のデプロイメント モデルについて詳しくは、Azure のデプロイメント モデルの概要に関する記事をご覧ください。
ヒント
特別な理由がない限り、ネットワーク セキュリティ グループをサブネットまたはネットワーク インターフェイスに関連付けることをお勧めします。両方に関連付けることは、お勧めしません。 サブネットに関連付けられたネットワーク セキュリティ グループの規則が、ネットワーク インターフェイスに関連付けられたネットワーク セキュリティ グループの規則と競合する可能性があるため、予期しない通信の問題が発生し、トラブルシューティングが必要になることがあります。
次のステップ
どの種類の Azure リソースを仮想ネットワークへのデプロイ後にネットワーク セキュリティ グループに関連付けできるのかについては、「Azure サービスの仮想ネットワーク統合」を参照してください。
ネットワーク セキュリティ グループを作成したことがない場合は、簡単なチュートリアルで作成作業を体験することができます。
ネットワーク セキュリティ グループに精通していて、それらを管理する必要がある場合は、ネットワーク セキュリティ グループの管理に関するページを参照してください。
通信に問題があり、ネットワーク セキュリティ グループのトラブルシューティングが必要な場合は、「仮想マシン ネットワーク トラフィック フィルターの問題を診断する」を参照してください。
ネットワーク セキュリティ グループのフロー ログを有効にして、ネットワーク セキュリティ グループが関連付けられているリソース間のネットワーク トラフィックを分析する方法を参照してください。