Azure ネットワーク セキュリティ グループ (NSG) とは?設定方法や注意点、Firewall との違いを解説!
Azure NSGは、ネットワークへのアクセスを制御するためのルールリストです。
IPアドレス、ポート番号、プロトコルなど、詳細なレベルでアクセスルールを設定できるため、「特定のリソースへのアクセスを制限する」「特定のアプリケーショントラフィックのみを許可する」といった、きめ細やかなアクセス制御を実現します。
Azure NSG(ネットワークセキュリティグループ)は柔軟なアクセス制御を実現する仕組み
AzureのNSG(ネットワークセキュリティグループ)とは、仮想ネットワーク中のリソースに対する通信規則を定義したリストです。 NSGはAzureにおける 「仮想的なファイアウォール」として機能し、セキュリティ保護のためのアクセス制御を効率化します。例えば、仮想マシン(VM)やサブネットなどのリソースに対して、外部からの不正アクセスを遮断したり、特定のポートやプロトコルのみを許可したりするといった、柔軟なネットワーク保護が可能となります。
AzureでNSG(ネットワークセキュリティグループ)はなぜ必要なのか?
オンプレミス環境では、物理的なファイアウォールを設置することで外部からの不正アクセスを防御するのが一般的でした。しかし、Azureのようなクラウド環境では、仮想ネットワーク上に複数のVMやサービスが稼働しており、従来型のファイアウォールでは対応しきれないケースも少なくありません。
例えば、開発中のWebサーバに対して、特定のIPアドレスからのみアクセスを許可したい場合や、データベースサーバへのアクセスを特定のアプリケーションサーバのみに制限したい場合などです。NSGを活用すれば、きめ細かいケースに対応したアクセス制御を実現し、よりセキュアなシステムを構築できます。
AzureNSG(ネットワークセキュリティグループ)の仕組み
NSGは、受信セキュリティ規則と送信セキュリティ規則という2種類のルールで構成されています。
受信セキュリティ規則は、外部からVMやサブネットへの通信を制御します。例えば、「Webサーバ(ポート80)へのアクセスを許可する」といったルールを設定することで、WebサーバへのHTTPアクセスのみを許可します。
送信セキュリティ規則は、VMやサブネットから外部への通信を制御します。例えば、「外部のDNSサーバ(ポート53)へのアクセスのみを許可する」といったルールを設定することで、DNSクエリ以外の通信をブロックできます。
これらのルールは、優先順位に従って評価されます。優先順位の高いルールから順に評価され、最初に一致したルールが適用されるのです。そのため、独自にルールを作成する際には優先順位を入念に考慮する必要があります。
AzureNSG(ネットワークセキュリティグループ)の特徴
Azureには、NSG以外にも様々なセキュリティ対策のサービスが存在します。Webアプリケーションファイアウォール(WAF)やAzure Firewallなどがその一例です。これらのサービスと比較したNSGの特徴としては、以下の点が挙げられます。
①シンプルでわかりやすい
NSGは、比較的シンプルなルールで構成されており、導入や運用が容易です。そのため、セキュリティ対策の初心者でも比較的扱いやすいというメリットがあります。
②費用対効果が高い
NSGは、Azureの他のセキュリティサービスと比較して、安価に利用することができます。そのためコストを抑えながらセキュリティ対策を実施したい場合に適しています。
③ネットワーク層のセキュリティ対策に特化
NSGは、ネットワーク層のセキュリティ対策に特化しており、アプリケーション層のセキュリティ対策はできません。アプリケーション層のセキュリティ対策には、WAFなどの他のサービスを利用する必要があります。
このように、NSGは、シンプルながらも強力なセキュリティ対策の仕組みであり、Azureでシステムを構築する上で欠かせない要素の一つと言えるでしょう。
Azure NSG(ネットワークセキュリティグループ)の設定方法
NSGは、Azureポータル、Azure CLI、Azure PowerShellなどを使って設定できます。ここでは、Azureポータルを使った設定方法をステップバイステップで解説します。
Azure NSG(ネットワークセキュリティグループ)の基本構成
NSGは、受信と送信の2種類のトラフィックを制御できます。それぞれのトラフィックに対して許可または拒否のルールを設定することで、ネットワークアクセスを細かく管理します。
NSGを設定する際に考慮すべき要素は以下の通りです。
- 優先度: 複数のルールが設定されている場合、優先度の高いルールから適用されます。
- 方向: 受信または送信のどちらのトラフィックを制御するかを指定します。
- プロトコル: TCP、UDP、ICMPなど、通信プロトコルを指定します。
- ソース/宛先: トラフィックの送信元/宛先のIPアドレスや範囲を指定します。
- ポート: 通信に使用するポート番号を指定します。
- アクション: トラフィックを許可するか拒否するかを指定します。
これらの要素を理解した上で、適切なルールを設定することが重要です。
Azure ポータルからの設定手順
それでは、実際にNSGを作成し、仮想マシンに適用する手順を解説していきましょう。
ステップ1:NSGの作成
Azureポータルの検索ボックスから[ネットワークセキュリティグループ] を検索して選択し、[+ 作成] をクリックします。[基本]タブが開きますので、サブスクリプション、NSGの名前、リソースグループ、リージョンを指定し、[作成] をクリックします。
ステップ2:受信/送信規則の設定
作成したNSGを選択し、[設定]タブを開いて[受信セキュリティ規則] または [送信セキュリティ規則] をクリックします。続いて[+追加]を入力してルールを作成します。
- ソース: 許可するトラフィックの送信元 (例: 特定のIPアドレス、IPアドレス範囲、Any)
- ソースポート範囲: 許可するトラフィックの送信元ポート (例: 80、443、*)
- 送信先: 許可するトラフィックの送信先
- プロトコル: 許可するトラフィックのプロトコル (例: TCP、UDP、ICMP)
- アクション: 許可または拒否
- 優先度: ルールの適用順序 (数値が小さいほど優先度が高い)
- 名前: ルールを識別するための名前
例えば、WebサーバーへのHTTPアクセスを許可するルールを作成する場合、以下のように設定します。
- ソース: Any
- ソースポート範囲: *
- 宛先: Any
- 宛先ポート範囲: 80
- プロトコル: TCP
- アクション: 許可
- 優先度: 100
- 名前: HTTPallow
ステップ3:NSGの適用
NSGは、仮想マシンのネットワークインターフェースまたはサブネットに適用できます。
- ネットワークインターフェースに適用する場合: 仮想マシンを選択し、[ネットワーク] > [ネットワークインターフェース] をクリックします。ネットワークインターフェースを選択し、[ネットワークセキュリティグループ] で作成したNSGを選択します。
- サブネットに適用する場合: 仮想ネットワークを選択し、[サブネット] をクリックします。サブネットを選択し、[ネットワークセキュリティグループ] で作成したNSGを選択します。
NSGを適用することで、設定したルールが有効になり、ネットワークトラフィックが制御されます。
Azure NSG(ネットワークセキュリティ グループ)運用時の注意点
Azure NSGは、シンプルな設定で強力なネットワークセキュリティを実現する便利なサービスですが、運用にあたってはいくつかの注意点があります。これらの注意点を理解し適切に対処することで、より安全で安定したシステム運用が可能となります。
デフォルトルールと優先順位を理解する
NSGには、作成時に自動的に適用されるデフォルトルールが存在します。デフォルトルールは、仮想ネットワーク内の通信を許可するルールや、仮想ネットワーク外部からのRDPやSSH接続を許可するルールなど、基本的なセキュリティ設定を提供します。
しかし、これらのデフォルトルールは必ずしも全ての環境に最適化されているわけではありません。そのため、独自にルールを追加する際には、デフォルトルールとの兼ね合いをよく考慮する必要があります。特に、意図せず通信がブロックされることを防ぐため、ルールの優先順位には十分注意しましょう。
例えば、Webサーバーを外部に公開する場合、デフォルトルールではHTTP (80番ポート) や HTTPS (443番ポート) へのアクセスが許可されていません。Webサーバーへのアクセスを許可するためには、デフォルトルールよりも優先度の高いルールを作成し、HTTP/HTTPS通信を許可する必要があります。
ルールの定期的な見直しと整理
システムの運用が進むにつれて、サーバーの役割やネットワーク構成が変更されることは少なくありません。このような変更に伴い、NSGのルールも定期的に見直し、必要に応じて更新する必要があります。
ルールが増えすぎると、管理が煩雑になり、予期せぬセキュリティホールが生じる可能性も高まります。そのため、不要になったルールは削除したり、似たようなルールを統合したりするなど、定期的にルールの整理を行うことが重要です。
ルールの見直しや整理を行う際には、システム全体の構成図やネットワークフロー図などを参照しながら、既存のルールが本当に必要なものなのか、設定内容に誤りがないかなどを慎重に確認しましょう。
ログ監視と分析によるセキュリティ強化
NSGで設定したルールは、実際にどのように適用され、どのようなトラフィックが許可/拒否されているのかを把握することが重要です。Azureでは、NSGのログをAzure MonitorやStorage Accountに出力し、分析することが可能です。
ログを分析することで、不正なアクセス試行の検知や、ルールの設定ミスによる通信障害の早期発見などが可能となります。また、アクセス状況を分析することで、セキュリティ対策の改善点を見つけることもできます。
例えば、特定のIPアドレスからのアクセスが異常に多い場合、不正アクセスが行われている可能性があります。このような場合は、該当IPアドレスからのアクセスを遮断するルールを追加するなどの措置が必要になるでしょう。
NSGだけでは実現できないセキュリティ脅威も存在する
NSGは強力なセキュリティ対策ツールですが、あくまでもネットワーク層のアクセス制御に特化した機能です。アプリケーション層の脆弱性対策や、マルウェア対策など、NSGだけではカバーできないセキュリティ脅威も多数存在します。
より強固なセキュリティ対策を実現するためには、NSGと他のセキュリティサービスを組み合わせることが重要です。例えば、Webアプリケーションファイアウォール (WAF) を利用することで、SQLインジェクションやクロススクリプティングなどの攻撃からWebアプリ
ケーションを保護できます。
また、Azure Security Centerなどのセキュリティ対策サービスを活用することで、セキュリティの脅威を総合的に監視し、迅速に対応することも可能となります。
Azure NSG(ネットワークセキュリティ グループ)とAzure Firewall は何が違う?
Azureには、NSG以外にもAzure Firewallというセキュリティサービスが存在します。どちらもネットワークのセキュリティ対策に用いられるサービスですが、それぞれ役割や機能が異なります。
NSGは、仮想ネットワークやサブネット、ネットワークインターフェースに適用する「仮想ファイアウォール」として機能し、IPアドレス、ポート番号、プロトコルに基づいたシンプルなルールでトラフィックを制御します。
一方、Azure Firewallは、より高度なセキュリティ機能を提供する、ステートフルなマネージドファイアウォールサービスです。FQDN (Fully Qualified Domain Name) を利用した通信制御や、アプリケーションレベルでの通信制御、侵入検知・防御システム (IDS/IPS) など、NSGよりも多機能で高度なセキュリティ対策を実現できます。
ユースケースによる使い分け
NSGは、特定のVMやサブネットへのアクセスを制限するなど、比較的シンプルなルールでセキュリティ対策を実施したい場合に適しています。開発環境へのアクセスを特定のIPアドレスからのみに制限したり、データベースサーバーへのアクセスを特定のアプリケーションサーバーのみに制限したりするといったケースが考えられるでしょう。
一方、Azure Firewallは、より高度なセキュリティ対策が必要な場合に適しています。インターネットに公開するWebアプリケーションへのアクセスを制御する場合や、支社や拠点からAzure環境へのVPN接続をセキュアに管理する場合などです。
コストと運用負荷のバランス
NSGはAzure Firewallと比較して安価に利用でき、運用負荷も比較的低いため、コストを抑えながらセキュリティ対策を実施したい場合に適しています。
一方、Azure Firewallは、NSGよりも高機能である分、コストも高くなります。また、Firewallポリシーの設計や運用には、専門的な知識や経験が必要となるケースも少なくありません。
セキュリティ対策を検討する際には、必要な機能、コスト、運用負荷などを総合的に判断し、最適なサービスを選択することが重要です。
まとめ
Azure NSGは、Azure環境におけるネットワークセキュリティ対策の基礎となる重要なサービスです。シンプルな設定で強力なアクセス制御を実現できる一方で、運用時の注意点や、NSGだけではカバーできないセキュリティ対策が存在することも事実です。
本記事で挙げたようなNSGの特徴や注意点、Azure Firewallとの違いなどを理解した上で、適切に運用していきましょう。