Azure Managed Service Column <Azure運用コラム>

Azureネットワークセキュリティグループ(NSG)とは

Category: 入門編

2021.04.28

Azure の仮想ネットワークを利用する際、セキュリティの保護に使われるのがネットワークセキュリティグループ( NSG )です。
本記事では、ネットワークセキュリティグループの仕組みや働き、そして利用上の注意点などについて解説していきます。

1. ネットワークセキュリティグループ( NSG )とは

ネットワークセキュリティグループ( NSG )とは、簡単にいうと Azure の仮想ネットワーク上のファイアウォールのようなサービスで、仮想マシンの NIC(ネットワークインターフェース)や、VNet のサブネットに適用することができます。

仮想ネットワークを利用しながらより高いセキュリティを保つためには、NSG の活用が非常に重要といえるでしょう。

NSG の具体的な働きは、送受信するトラフィックをセキュリティ規則に従い評価し、その送信/受信を許可、あるいは拒否するというものです。送信元、送信元ポート、宛先、宛先ポート、プロトコルの5つの情報をもとに許可/拒否の判断を行い、優先順位に従ってセキュリティ規則が評価されます。

送信元や宛先の設定として利用できる項目は次の通りです。

  • IPアドレス (ネットワークアドレスを含む)
  • Service Tag( Azure で提供される PaaS を指定する際に IP アドレスに代わり指定するもの)
  • アプリケーションセキュリティグループ(フィルタリングルールをテンプレート化したもの)

通常クラウド上に仮想マシンを構築する場合、外部からもアクセスが可能となるため、セキュリティ面での脆弱性が生まれます。そのため、NSG の構成によるセキュリティ強化が必須とされるのです。

2. Azure Firewall と NSG の違い

NSG と同じように、Azure のセキュリティを強化するサービスの一つが Azure Firewall です。Azure Firewallと NSG は、以下のように機能する場所において違いがあります。

  • Azure Firewall:インターネットと仮想ネットワークの境界で機能する
  • NSG:サブネットや仮想マシンのネットワークインターフェイス上で機能する

Azure Firewall では外部からの通信をまとめて管理でき、NSG ではセキュリティグループごとにアクセスできる範囲を管理できます。このような違いがあるため、両者を組み合わせて活用することで、より強固なセキュリティ対策が可能です。

3. NSG のフィルター処理方法

NSG を適用できるリソースは、以下の 2 つです。

  • サブネット
  • ネットワークインターフェイス( NIC )

NSG は、1 つにつきこのどちらかにのみ適用できるというわけではなく、サブネットとネットワークインターフェイスの両方に割り当てることもできます。さらに、1 つの NSG を複数のサブネット、あるいは複数のネットワークインターフェイスに割り当てることも可能です。

ネットワークセキュリティグループの割り当て
ネットワークセキュリティグループの割り当て

上図は、Subnet1 内に VM1、VM2、Subnet2 内に VM3 がある仮想ネットワークを示したものです。この仮想ネットワークでは、Subnet1 に NSG1、Subnet2 に NSG2 が適用されています。さらに、NSG1 が適用されている Subnet1 内にある VM1 の NIC に対して、NSG2 を適用することも可能です。

サブネット間で通信する場合

ここからは、通信時の NSG の処理順について解説します。

まず、異なるサブネット間で通信を行う場合には、VM ごとに設定されたNSGを、送信側から順に処理していきます。

例えば、再び上欄の図を例にとって説明すると、異なるサブネット間にある VM1 から VM3 に通信を行う場合、VM1 → NSG2 の送信規則 → NSG1 の送信規則 → NSG2 の受信規則 → VM3 といった順番で処理が行われます。

同一サブネット内で通信する場合

次に、同じサブネット内にある VM 同士で通信する場合です。基本的には、異なるサブネット間での通信の際と同じ処理手順になります。

先ほどの図でいうと、VM1 から VM2 に通信を行う場合には、VM1 → NSG2 の送信規則 → NSG1 の送信規則 → NSG1 の受信規則 → VM2 といった順番で処理されます。

同じサブネット内の VM 同士であっても、他の VM に接続する際には、ネットワークインターフェイスやサブネットに設定された NSG の規則でフィルタリングが行われると考えてください。

受信規則、送信規則と既定のセキュリティ規則

作成される NSGには、Azure によって以下の規定の規則が作成されます。

受信

  • AllowVNetInBound
Priority Source ソース ポート 到着地 宛先ポート Protocol アクセス
65000 Virtual
Network
0-65535 Virtual
Network
0-65535 Any Allow
  • AllowAzureLoadBalancerInBound
Priority Source ソース ポート 到着地 宛先ポート Protocol アクセス
65001 Azure
LoadBalancer
0-65535 0.0.0.0/0 0-65535 Any Allow
  • DenyAllInbound
Priority Source ソース ポート 到着地 宛先ポート Protocol アクセス
65500 0.0.0.0/0 0-65535 0.0.0.0/0 0-65535 Any 拒否

送信

  • AllowVnetOutBound
Priority Source ソース ポート 到着地 宛先ポート Protocol アクセス
65000 Virtual
Network
0-65535 Virtual
Network
0-65535 Any Allow
  • AllowInternetOutBound
Priority Source ソース ポート 到着地 宛先ポート Protocol アクセス
65001 0.0.0.0/0 0-65535 インターネット 0-65535 Any Allow
  • DenyAllOutBound
Priority Source ソース ポート 到着地 宛先ポート Protocol アクセス
65500 0.0.0.0/0 0-65535 0.0.0.0/0 0-65535 Any 拒否

詳しくは公式サイトに記載がありますので、ご参照ください。

簡単に解説すると、まず優先度( Priority )はトラフィックが評価される際の優先順位を示すもので、数字が小さいもののほうがより先に評価されます。

既定のルールでは、VNet 間の通信は、送信/受信ともすべて許可されるよう設定されており、Azure に接続したオンプレネットワークとの送受信もすべて許可されています。また、インターネットとの通信に関しては、インターネットからの受信は不許可、送信は許可というのが既定の規則です。

4. アプリケーションセキュリティグループについて

NSG と関連したサービスに、アプリケーションセキュリティグループがあります。

アプリケーションセキュリティグループとは、仮想マシンのネットワークインターフェイスをグループ化し、そのグループに適用されたNSGを定義する機能です。適用ルールをテンプレート化することで、個々の VM に対して IP アドレスの指定などをする必要がなく、VM 個々への手動設定が不要となります。

5. NSG 利用上の注意点

NSG は便利なセキュリティ対策ですが、利用の際には以下の点に注意しましょう。

適切な設定を行う

NSG を適用せずとも、VMやサブネットの作成は可能です。そのため、NSG の適用を忘れてしまうと、セキュリティ的に保護されていない VM が放置されてしまうこともあります。

また、NSG を適用する際には、既定のセキュリティ規則をそのまま適用しても大丈夫か確認しましょう。

既存のセキュリティ規則では、VM への外部からのリモートデスクトップ接続(プロトコル: RDP、ポート番号:3389 )や SSH 接続(プロトコル: SSH 、ポート番号: 22 )が許可されています。既定の規則をそのまま適用した場合、DMZ セグメントの公開サーバーを経由してトラストセグメントへの不正アクセスなどが発生する危険性もあるため、十分注意してください。

適切な設計を意識する

NSG の適用時には、競合が起きないような設計を意識する必要があります。

ちなみに、Microsoft からは、

特別な理由がない限り、NSG をサブネットまたはネットワークインターフェイスに関連付けることをお勧めします。両方に関連付けることは、お勧めしません。 サブネットに関連付けられたNSGの規則が、ネットワークインターフェイスに関連付けられた NSG の規則と競合する可能性があるため、予期しない通信の問題が発生し、トラブルシューティングが必要になることがあります。

との声明が出ています。

こちら、以下のリンク内に記載されているため、興味のある方は目を通してみてください。
https://docs.microsoft.com/ja-jp/azure/virtual-network/network-security-group-how-it-works

また、NSGの設計としては、サブネットで共通の制御をかけたあと、さらに VM ごとに制御をかけることも可能です。

このような設計の場合、VM が通信を受信するとき、トラフィックはサブネットの NSG で評価されたあと、NIC の NSG で再度評価されることになります。もしサブネット・ NIC のそれぞれに NSG を適用する場合、許可したい通信に関しては両方の NSG で設定する必要があります。

例えば、同一サブネット内の複数 VM が抱えている通信要件を、サブネットに適用する 1 つの NSG にまとめるなどサブネット単位で通信要件を管理する、などの設計が考えられます。

6. おわりに

Azure ネットワークセキュリティグループ( NSG )は、サブネットやネットワークインターフェイスに適用するファイアウォールのようなサービスで、セキュリティの維持のためには非常に重要なものです。

仕組みとしては、送受信されるトラフィックを規則にしたがい評価し、許可/拒否を判断します。

NSG を適用せずに VM やサブネットを作ることも可能なため、適用を忘れてセキュリティが脆弱なままにならないように注意しましょう。また、セキュリティ規則については自分で設定することもできるため、既定の規則から調節して、個々の環境にあった設計をすることをおすすめします。

Azureセキュリティに不安がある

Azureセキュリティアセスメントサービス

Azureセキュリティアセスメントサービス

お客様がすでにお持ちの Azure 環境に対して、Azure Security Center を利用したセキュリティ対策の評価と対策案をご提示します。

Free

資料ダウンロード

課題解決に役立つ詳しいサービス資料はこちら

資料ダウンロード
  • Azure導入支援・構築・運用サービス総合カタログ

    Microsoft Azure サービスの導入検討・PoC、設計、構築、運用までを一貫してご支援いたします。
    Azure導入・運用時のよくあるお悩み、お悩みを解決するためのアールワークスのご支援内容・方法、ご支援例などをご確認いただけます。

Azure導入個別相談会(無料)

Tag: Azureセキュリティ Azureネットワーク NSG ネットワークセキュリティグループ

Contactお問い合わせ

お見積もり・ご相談など、お気軽にお問い合わせください。

single.php