Azure ネットワーク セキュリティ グループについて説明する

完了

ネットワーク セキュリティ グループ (NSG) を使用すると、たとえば仮想マシンなど、Azure 仮想ネットワーク内に存在する Azure リソースとの間のネットワーク トラフィックをフィルタ処理できます。 NSG は、トラフィックのフィルター処理方法を定義する規則から構成されています。 仮想マシンの各仮想ネットワーク サブネットおよびネットワーク インターフェイスには、ネットワーク セキュリティ グループを 1 個だけ関連付けることができます。 ただし、同じネットワーク セキュリティ グループを、任意の異なるサブネットとネットワーク インターフェイスに関連付けることができます。

次の非常に簡素化された図には、インターネットに接続された 2 つのサブネットを持つ Azure 仮想ネットワークが表示され、各サブネットに仮想マシンがあります。 サブネット 1 には、VM1 への受信および送信アクセスをフィルター処理する NSG が割り当てられており、これによってより高いレベルのアクセスが必要になります。 これに対して、VM2 は、NSG を必要としない公開されるコンピューターを表すことができます。

Diagram showing a simplified virtual network with two subnets each with a dedicated virtual machine resource, the first subnet has a network security group and the second subnet doesn't.

受信および送信のセキュリティ規則

NSG は、受信および送信のセキュリティ規則から構成されています。 NSG セキュリティ規則は、送信元、送信元ポート、送信先、送信先ポート、プロトコルの 5 つの情報ポイントを使用して、が優先度で評価されて、トラフィックが許可または拒否されます。 Azure では既定で、一連の規則 (3 つの受信規則、3 つの送信規則) を作成し、ベースライン レベルのセキュリティを提供します。 既定の規則を削除することはできませんが、優先度の高い新しい規則を作成することでそれらをオーバーライドできます。

各規則は、次のプロパティが 1 つ以上指定されています。

  • 名前: すべての NSG ルールには、その目的を説明する一意の名前を付ける必要があります。 たとえば、AdminAccessOnlyFilter です。
  • 優先度: 規則は優先度順に処理され、小さい数値を持つものが大きな数値のものよりも前に処理されます。 トラフィックが規則に一致すると、処理が停止します。 つまり、優先度が低い (数値が大きい) 他の規則は処理されません。
  • 送信元または送信先: 個々の IP アドレスまたは IP アドレス範囲、サービス タグ (特定の Azure サービスの IP アドレス プレフィックスのグループ)、あるいはアプリケーション セキュリティ グループを指定します。 範囲、サービス タグ、またはアプリケーション セキュリティ グループを指定すると、作成するセキュリティ規則の数を減らせます。
  • プロトコル: 規則ではどのネットワーク プロトコルがチェックされますか? プロトコルには、TCP、UDP、ICMP、Any のいずれかを指定できます。
  • 方向: 受信または発信トラフィックに規則を適用するかどうかです。
  • ポート範囲: 個別のポートまたはポートの範囲を指定できます。 範囲を指定すると、セキュリティ規則を作成するときに効率を向上できます。
  • アクション: この規則がトリガーされたときに行われる動作を決定する必要があります。

次のスクリーンショットは、すべての NSG に含まれる既定のインバウンド規則とアウトバウンド規則を示しています。

Screenshot showing the default inbound and outbound rules for an Azure network security group.

既定のインバウンド規則を次に説明します。

  • AllowVNetInBound - AllowVNetInBound 規則は優先順位の値が最も小さいため、最初に処理されます。 前述のように、優先順位の値が最も小さい規則が最初に処理されます。 この規則は、任意のプロトコルを使用して、VirtualNetwork サービス タグを持つソースから 任意のポートの VirtualNetwork サービス タグを持つ宛先へのトラフィックを許可します。 この規則への一致が見つかった場合、他の規則は処理されません。 一致するものが見つからない場合は、次のルールが処理されます。

  • AllowAzureLoadBalancerInBound - AllowAzureLoadBalancerInBound 規則は、優先度の値が AllowVNetInBound 規則よりも大きいため、2 番目に処理されます。 この規則は、任意のプロトコルを使用して、AzureLoadBalancer サービス タグを持つ送信元から、(任意のポート上の任意の IP アドレスへの) 任意のポート上の AzureLoadBalancer サービス タグを持つ宛先へのトラフィックを許可します。 この規則への一致が見つかった場合、他の規則は処理されません。 一致するものが見つからない場合は、次のルールが処理されます。

  • DenyAllInBound - この NSG の最後の規則は DenyAllInBound 規則です。 この規則では、任意のプロトコルを使用して、任意のポートの任意の送信元 IP アドレスから任意のポートの他の任意の IP アドレスへのすべてのトラフィックが拒否されます。

要約すると、この NSG が割り当てられている仮想ネットワーク サブネットまたはネットワーク インターフェイス カードでは、(それぞれのサービスタグで定義されている) Azure Virtual Network または Azure ロード バランサーからの受信トラフィックのみが許可されます。 他のネットワーク トラフィックはすべて拒否されます。 既定の規則を削除することはできませんが、優先度の高い (優先度の値が小さい) 新しい規則を作成することで、それらをオーバーライドできます。

ネットワーク セキュリティ グループ (NSG) と Azure Firewall の違いは何ですか?

以上で Network Security Grpup と Azure Firewall の両方について学習しましたが、これらはともに Virtual Network のリソースを保護するためのもので、両者がどのように異なるのか疑問に思うかもしれません。 Azure Firewall サービスは、ネットワーク セキュリティ グループの機能を補完します。 全体で、優れた "多層防御" ネットワーク セキュリティを実現します。 ネットワーク セキュリティ グループは、分散ネットワーク層トラフィック フィルターを提供して、各サブスクリプションの仮想ネットワーク内にあるリソースへのトラフィックを制限します。 Azure Firewall は、完全にステートフルな一元管理のサービスとしてのネットワーク ファイアウォールであり、異なるサブスクリプションと仮想ネットワークに対してネットワーク レベルとアプリケーション レベルの保護を提供します。