Azure IaaS利用時のネットワークセキュリティグループ(NSG)設定注意点について
はじめまして、SHIFTにてインフラコンサルタントをしているUENOです。
今回は、ネットワークセキュリティグループ(NSG)について、記載していきたいと思います。Azure上で仮想マシンなどを作成する際に合わせて作成することが多いかと思います。仮想マシン間、インターネットへのアクセスなどを制限する機能になるため、しっかり抑えていただきたいサービスとなります。
ネットワークセキュリティグループ(NSG)とは
Azure仮想マシン、仮想ネットワークサブネット間の通信制御を行うサービスとなります。 (Azure仮想ネットワーク上のファイアウォールみたいなものです。) Azure上に作成した仮想マシン等は、インターネットからのアクセスができる状態でデプロイされてしまうため ネットワークセキュリティグループ(NSG)を使用し通信制御を行います。
Microsoft参考ページ: https://docs.microsoft.com/ja-jp/azure/virtual-network/network-security-groups-overview
ネットワークセキュリティグループでは、下記のフィルタリングが可能です。
IP Address
Port
Application security group
Service Tag
※PaaS系のサービスなどIP Addressで固定できないものがあるためその際に、Service Tagを用いてアクセス制限を行います。
●ポイント
ネットワークインターフェース(NIC)、サブネットに適用できる
1つのNSGを複数のNICあるいはサブネットに割り当てることができる
NSGを設置できるのは1箇所につき1つ
NSGはサブネットに適用できるため、仮想マシン以外のサービスにも適用可能(サブネットと紐づくサービス)
ネットワークセキュリティグループ通信ルール適用について
ネットワークセキュリティグループ(NSG)を設定した際のルール適用される状態を確認しましょう。今回は、仮想マシンを例として確認していきます。
上記の構成図を元に各パターンの通信ルール適用について確認していきます。
パターン①: 仮想マシン1⇒仮想マシン2へリクエストする場合、
NSG-1:送信規則
NSG-1:受信規則
の順で評価され通信許可・拒否されます。 同じサブネット内の仮想マシンであっても送信受信規則が適用されてしまうため注意して設定しましょう。
パターン②: 仮想マシン1⇒仮想マシン3へリクエストする場合、
NSG-1:送信規則
NSG-2:受信規則
NSG-3:受信規則
の順で評価され通信許可・拒否されます。 サブネットおよび仮想マシンに接続されているネットワークインターフェースにNSGを設定することにより、仮想マシン1より受信する通信を2か所設定する必要が出てきます。
ネットワークセキュリティグループ作成方法について
Azure Potalより作成します。リソース作成-検索窓より「ネットワークセキュリティグループ」を検索し作成します。
Microsoft参考ページ: https://docs.microsoft.com/ja-jp/azure/virtual-network/manage-network-security-group#create-a-network-security-group
ネットワークセキュリティグループ作成時に作成される既定ルールについて
ネットワークセキュリティグループ作成時に既定でルールが作成されます。 ネットワークセキュリティグループのデフォルト値として抑えておきましょう。
【受信規則】
※仮想ネットワーク間の通信、ロードバランサーからの通信は受信許可(Allow)され、それ以外の受信通信はブロック(Deny)される
【送信規則】
※仮想ネットワーク間の通信、インターネットへ通信は送信許可(Allow)され、それ以外の送信通信はブロック(Deny)される
●ポイント
既定ルールは削除不可
優先度が低いルールが優先で適用される
既定ルールより優先させる場合は、65000より前の数値で設定する必要がある
追加ルールについて
上記に記載した通り、ネットワークセキュリティグループを作成した際に、既定ルールが作成されます。 もちろんそのままで利用いただくことは可能ですが、規則を追加することにより、よりセキュアな環境にすることが可能です。
例①) 受信規則:既定ルールでは、仮想ネットワーク間であれば受信通信が許可されております。
仮想マシン(Windows)にて特定のIPアドレスからのみリモートデスクトップ(3389)許可したい場合は、下記の通り規則を追加します。 既定ルールにて仮想ネットワーク間の許可がされているため、「4096:DenyAllInBound」を入れて優先度1000以外の通信を拒否する。
例②) 送信規則:既定ルールでは、「Internet」への送信通信が許可されております。
HTTPS:443のみの通信を許可する場合は、下記の通り規則を追加します。 既定ルールにて仮想ネットワーク間の許可がされているため、「4096:DenyAllOutBound 」を入れて優先度1000以外の通信を拒否する。
※宛先を絞る場合は、「宛先」のところにIPアドレス、サブネット、Service Tagなどを入れてください。
最後に
今回、ネットワークセキュリティグループ(NSG)についてお話しました。NSGは便利なセキュリティ対策となります。仕組や設定内容を把握していないと脆弱なまま利用してしまっているなどになりかねないため、利用する際は仕組みをしっかり抑えるようにしましょう。
お問合せはお気軽に
https://service.shiftinc.jp/contact/
SHIFTについて(コーポレートサイト)
https://www.shiftinc.jp/
SHIFTのサービスについて(サービスサイト)
https://service.shiftinc.jp/
SHIFTの導入事例
https://service.shiftinc.jp/case/
お役立ち資料はこちら
https://service.shiftinc.jp/resources/
SHIFTの採用情報はこちら
https://recruit.shiftinc.jp/career/