Azure のネットワーク セキュリティ グループ (NSG) の基本

Azure

Azure ではネットワークセキュリティグループ (以降 NSG とします。) と呼ばれるリソースがあります。

この記事では NSG の概要と動作、既定のルールについて説明します。

NSG の概要

NSG とは

NSG は一言でいうと Azure 上の仮想ファイアウォールです。

送受信されるトラフィックを規則に従い評価し、送受信トラフィックを許可もしくは拒否することが出来ます。

クラウド上の仮想マシンは、全世界どこからでもアクセス出来てしまうため、Azure IaaS では NSG の構成が必要不可欠となります。

NSG と関連するリソース

NSG は以下の 2 つのリソースに関連付けることが可能です。

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

それぞれに関連付けした際の動作について説明します。

NSGの動作

サブネット間の通信

仮想ネットワーク内に 2 つのサブネットを構成し、それぞれに仮想マシンがある例です。

ネットワークインターフェイスに NSG を関連付け

  • VM1 のネットワークインターフェイス:NSG-VM1
  • VM2 のネットワークインターフェイス:NSG-VM2

① VM1 から VM2 への通信
NSG-VM1 の送信セキュリティ規則⇒NSG-VM2 の受信セキュリティ規則の順にトラフィックが評価されます。

② VM2 から VM1 への通信
NSG-VM2 の送信セキュリティ規則⇒NSG-VM1 の受信セキュリティ規則の順にトラフィックが評価されます。

許可したい通信は、それぞれの [送信セキュリティ規則]・[受信セキュリティ規則] にルールを構成する必要があります。

サブネットに NSG を関連付け

  • サブネット 1 :NSG-SN1
  • サブネット 2 :NSG-SN2

VM1 から VM2 の通信
NSG-SN1 の送信セキュリティ規則⇒ NSG-SN2 の受信セキュリティ規則の順にトラフィックが評価されます。

ネットワークインターフェイスとサブネットに NSG を関連付け

  • VM1 のネットワークインターフェイス:NSG-VM1
  • VM2 のネットワークインターフェイス:NSG-VM2
  • サブネット 1:NSG-SN1
  • サブネット 2:NSG-SN2

VM1 から VM2 の通信
NSG-VM1 の送信セキュリティ規則 ⇒ NSG-SN1 の送信セキュリティ規則 ⇒ NSG-SN2 の受信セキュリティ規則 ⇒ NSG-VM2 の受信セキュリティ規則の順にトラフィックが評価されます。

同一サブネット内の通信

サブネットに NSG を関連付け

  • サブネット 1 :NSG-SN1

VM1 から VM2 の通信
NSG-SN1 の送信セキュリティ規則⇒NSG-SN1 の受信セキュリティ規則の順にトラフィックが評価されます。
サブネットに NSG が関連付けられている場合、同一サブネット内でも NSG によるトラフィック評価が行われます。

ネットワークインターフェイスとサブネットに NSG を関連付け

  • VM1 のネットワークインターフェイス:NSG-VM1
  • VM2 のネットワークインターフェイス:NSG-VM2
  • サブネット 1:NSG-SN1

VM1 から VM2 の通信
NSG-VM1 の送信セキュリティ規則 ⇒ NSG-SN1 の送信セキュリティ規則 ⇒ NSG-SN1 の受信セキュリティ規則 ⇒ NSG-VM2 の受信セキュリティ規則の順にトラフィックが評価されます。

既定の規則

NSG は既定で以下の規則が設定されています。

【受信セキュリティ規則】

優先度 名前 ポート プロトコル ソース 宛先 アクション
65000 AllowVnet
InBound
任意 任意 Virtual
Network
Virtual
Network
許可
65001 AllowAzure
LoadBalancer
InBound
任意 任意 Azure
LoadBalancer
任意 許可
65500 DenyAll
InBound
任意 任意 任意 任意 拒否

【送信セキュリティ規則】

優先度 名前 ポート プロトコル ソース 宛先 アクション
65000 AllowVnet
OutBound
任意 任意 Virtual
Network
Virtual
Network
許可
65001 AllowInternet
OutBound
任意 任意 任意 Internet 許可
65500 DenyAll
OutBound
任意 任意 任意 任意 拒否

規則の設定値

それぞれの説明をします。

<優先度>
名前の通り、トラフィックが評価されるルールの優先度です。数字が小さい方から順に評価されます。

既定のルールでは 65000 ~ 65500 という数字になっていますが、ユーザーが設定できる優先度の範囲は 100 ~ 4096 となっています。

<名前>
ルールの名前を定義できます。基本的には自由に付けられますが、管理上、名前を見ただけでどのようなルールなのか分かるような名前が好ましいです。以下は一例です。

例)Allow-TCP80.443-InBound-INTERNETtoVM1
1ブロック目:Allow (許可) or Deny (拒否)
2ブロック目:通信プロトコル・ポート番号
3ブロック目:InBound (受信) or OutBound (送信)
4ブロック目:FROM to TO

文字 (半角英数のみ)・数字・アンダースコア・ピリオド・ハイフンのみ利用可能です。日本語は設定できません。

<ポート>
通信を許可するポート番号を指定します。Any (任意のポート) は*で指定します。その他単一のポート(80など) やカンマ区切りでの複数指定 (80,443など)、範囲指定 (1024 - 65535 など) も可能です。

<プロトコル>
Any、TCP、UDPの 3 種類から選択できます。ICMP が無いので ICMP のみ許可するには少しコツがいります。

<ソース・宛先>
任意、IP Address、Virtual Network、Service Tagのいずれかで設定します。From To の指定となります。ここの詳細は少し癖があるので、別の記事で紹介したいと思います。

<アクション>
規則に一致するトラフィックを許可するか、拒否するかを指定できます。

既定の規則概要

既定の規則は比較的緩く設定してあります。

  • Virtual Network 間の通信は送信・受信ともすべて許可
    ⇒Virtual Network とは Azure 仮想ネットワークに限らず、Azure に接続したオンプレのネットワーク環境なども含みます。一言でいうとインターネット以外のすべてのトラフィックを許可する構成です。
  • インターネット向けの送信トラフィックはすべて許可
    ⇒すべての仮想マシンが既定の状態ではインターネット参照が可能になっています。

クラウド上のサーバーをここまで緩くしておくわけにはいかないので、NSG を正しく設計し、構成することが非常に重要になります。

まとめ

NSG は Azure IaaS 上でネットワークレベルのセキュリティ対策に必須なリソースとなります。本番運用する際には意図せぬ通信を確実に遮断できるよう、慎重に設計する必要があります。

以下のページにより詳細な内容が記載されているので、参考にして下さい。

Azure ネットワーク セキュリティ グループの概要 | Microsoft Learn

コメント

タイトルとURLをコピーしました