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

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の構成を説明したいと思います。

スポンサーリンク

シェアする

フォローする