この記事のポイント
- Azure NSGは、仮想ネットワーク内のリソースへのトラフィックを制御するセキュリティ機能
- インバウンドとアウトバウンドのトラフィックを、柔軟なルール設定で管理可能
- サブネットやネットワークインターフェースレベルでの適用が可能で、詳細な制御が可能
- 優先順位付きのルールで、複雑なネットワークポリシーの実装をサポート
- Azure Security CenterやAzure Monitorとの連携で、高度なセキュリティ管理を実現
監修者プロフィール
坂本 将磨
Microsoft AIパートナー、LinkX Japan代表。東京工業大学大学院で技術経営修士取得、研究領域:自然言語処理、金融工学。NHK放送技術研究所でAI、ブロックチェーン研究に従事。学会発表、国際ジャーナル投稿、経営情報学会全国研究発表大会にて優秀賞受賞。シンガポールでのIT、Web3事業の創業と経営を経て、LinkX Japan株式会社を創業。
クラウド環境でのネットワークセキュリティは、ビジネスの安全性と継続性を確保する上で不可欠です。
Azure Network Security Group (NSG)は、このニーズに応えるMicrosoftの強力なツールです。
本記事では、NSGの基本概念から高度な設定方法まで、包括的に解説します。仮想ネットワーク内のリソースへのアクセス制御、インバウンドおよびアウトバウンドトラフィックの管理、セキュリティルールの効果的な設定方法など、NSGの全容を明らかにします。
また、実際のユースケースや、他のAzureセキュリティサービスとの連携についても触れ、より強固なクラウドセキュリティ戦略の構築方法を提案します。
クラウドインフラのセキュリティ強化を目指すIT管理者やセキュリティ専門家必見の内容です。
Azure NSG(Network Security Group)とは
Azure Network Security Group(NSG) は、Azureのネットワークセキュリティを管理するための重要なツールです。どのリソースがどのようにインターネットや他のネットワークと通信するかを管理するために使われます。
主な特徴は次のとおりです。
- トラフィックの制御
NSGは、仮想ネットワーク内のリソースに入ってきたり出ていくデータの流れ(トラフィック)を制御します。
- きめ細かなセキュリティポリシー
管理者は、特定のIPアドレスやポート番号に対してアクセス許可や拒否を設定するなど、詳細なセキュリティルールを設定できます。
- 適用レベル NSGは、2つのレベルで適用できます。
- サブネットレベル: 仮想ネットワーク内の「一部のエリア」(サブネット)にまとめて適用されます。
- ネットワークインターフェース(NIC)レベル: 「特定の仮想マシン一台」(ネットワークインターフェース(NIC))にルールを適用し、その仮想マシンだけを守ります。
NSG Serviceのアイコン
クラウド環境でのセキュリティ強化において、NSGは不可欠な要素となっています。
Azure NSGの仕組み
NSGがデータの流れ(トラフィック)を制御する仕組みについては、以下の3つがポイントとなります。
セキュリティ規則の評価方法
NSGの基本的な役割は、ネットワークを通るトラフィックを監視し、トラフィックが通るのを許可するか拒否するかを判断することです。
この判断は、設定されたセキュリティ規則に基づいて行われます。
受信規則と送信規則
セキュリティ規則には、主に2つの種類の規則があります。
-
受信規則(インバウンドトラフィック用)
- ネットワークの外から中へ入ってくるデータを制御します。
- デフォルトでは、すべての受信トラフィックは拒否されます。つまり、外部からのデータは基本的に入ってこないようになっています。
-
送信規則(アウトバウンドトラフィック用)
- ネットワークの中から外へ出ていくデータを制御します。
- デフォルトでは、すべての送信トラフィックは許可されます。つまり、内部から外部へのデータは基本的に自由に出ていけるようになっています。
なお、カスタム規則を作成することで、このデフォルトの設定を変更できます。
規則の優先順位
NSGの規則には優先順位があり、この優先順位によってどの規則が最初に評価されるかが決まります。
優先順位と評価の仕組み
-
優先順位の数字
- 各規則には優先順位の数字が設定されています。数字が小さいほど優先度が高いです。
-
規則の評価
- トラフィックがNSGを通過するとき、NSGは優先順位の数字が最も低い規則から順に評価します。
- トラフィックが規則にマッチすると、その規則が適用され、以降の規則は無視されます。
例えば、
- 規則1: 優先順位100
「特定のIPアドレスから来るトラフィックは拒否する」
- 規則2: 優先順位200
「すべてのインターネットトラフィックを許可する」
という規則があった場合、
もし、あるトラフィックが特定のIPアドレスから来たら、NSGは優先順位100の規則1を適用するので、トラフィックは拒否されます。
規則2はチェックされません。
NSGの設定と管理
では、NSGはどのように設定したらよいのでしょうか。以下、具体的な作成方法と設定項目についてご説明します。
ステップ1 NSGの作成と設定
- Azure ポータルにサインイン
まず、Azure ポータルにサインインします。
Azureポータル画面
- 「ネットワーク セキュリティ グループ」を検索
①ポータル上部の検索バーに「ネットワーク セキュリティ グループ」と入力し、②検索結果から「ネットワーク セキュリティ グループ」を選択します。
検索画面
3.「+ 作成」ボタンをクリック
ネットワークセキュリティグループのページが表示されたら、「+ 作成」ボタンをクリックします。
+作成ボタン
- 基本設定の入力
このような入力画面が出てくるので、ご自身の環境に合わせて項目を入力します。
入力画面
- サブスクリプション: 使用するAzureサブスクリプションを選択します。
- リソースグループ: 新規作成するか、既存のリソースグループを選択します。
- 名前: NSGの名前を入力します(例: MyNSG)。
- 地域: NSGを配置するAzure地域を選択します。
-
入力内容を確認し、下の「確認および作成」ボタンをクリックします。
-
その後、「作成」ボタンをクリックしてNSGを作成します。
作成ボタン
ステップ2,セキュリティ規則の追加
NSGが作成されたら、セキュリティ規則を追加してトラフィックを制御します。
作成したNSGを選択して、NSGの概要ページを開きます。
NSG概要ページ
この画面は、AzureポータルでNSGを管理する際に基本情報や設定内容を確認するための中心的なページです。
① NSGの名前
画面の左上には、NSGの名前「MyNSG」が表示されています。
② 基本情報
NSGに関連する基本的な情報が表示されています。
③ サイドメニュー
左側には、NSGに関連するさまざまな操作メニューがあります。
④ セキュリティ規則
画面の下部には、NSGに設定されている「セキュリティ規則」のリストが表示されています。
a.受信規則の追加
- サイドメニューから「設定」→「受信セキュリティ規則」をクリックします。
設定画面
-
「+ 追加」ボタンをクリックします。
追加ボタン
-
ご自身の環境に合わせて、以下の入力項目を記載します。
入力画面
- ソース(Source): トラフィックの送信元を指定します。
- ソースポート範囲(Source Port Range): トラフィックの送信元ポート範囲を指定し、どのポートからの通信を許可または拒否するかを決めます。
- 宛先(Destination): トラフィックの送信先を指定します。
- サービス(Service): HTTP、HTTPS、RDPなどの特定のサービスに対するトラフィックを許可または拒否します。
- 宛先ポート範囲(Destination Port Range): どのポートに対する通信を許可または拒否するかを決めます。
- プロトコル(Protocol): トラフィックが使用するプロトコルを指定します。
- アクション(Action): この規則がマッチしたときに実行されるアクションを指定します。
- 優先度(Priority): 規則の優先度を設定します。
- 名前(Name): 規則の名前を設定します。
- 説明(Description): 任意項目で、後で規則の内容を理解しやすくするための補助情報を記載します。
- 設定内容を確認して下の「追加」ボタンをクリックします。
a.送信規則の追加
- ①サイドメニューから「送信セキュリティ規則」をクリックし、②「+ 追加」ボタンをクリックします。
送信セキュリティ規則画面
受信規則と同様に、必要な設定を入力し、③「追加」ボタンをクリックして規則を作成します。
サブネットやNICへの関連付け
NSGを作成した後、そのNSGを特定のサブネットやネットワークインターフェースカード(NIC)に関連付けることで、ネットワークトラフィックを制御できます。
a.サブネットへの関連付け
サブネットにNSGを関連付けると、そのサブネット内のすべてのリソースに対してNSGのセキュリティ規則が適用されます。
実際の手順
-
「サブネット」メニューを選択
Azureポータルで、作成したNSGを開き、 ① サイドメニューから「サブネット」をクリックし、②「+関連付け」ボタンをクリックします。
サブネットの関連付け画面
-
サブネットの関連付け
サブネットの関連付け画面が開くので、以下の項目を記載します。
入力画面- 仮想ネットワーク: NSGを関連付けたい仮想ネットワークを選択します。
- サブネット: その仮想ネットワーク内のサブネットを選択します。
-
関連付けの完了
選択が完了したら、下の「OK」ボタンをクリックして関連付けを完了します。
b.NIC(ネットワークインターフェースカード)への関連付け
NICにNSGを関連付けると、そのNICが接続された特定の仮想マシンに対してNSGのセキュリティ規則が適用されます。
実際の手順
-
「ネットワークインターフェース」メニューを選択
Azureポータルで作成したNSGを開き、サイドメニューから①「ネットワークインターフェース」をクリックし、②「+関連付け」ボタンをクリックします。
ネットワークインターフェース関連付け画面
-
ネットワークインターフェイスの関連付け
「ネットワークインターフェイスの関連付け」入力画面から、NSGを関連付けたいネットワークインターフェース(NIC)を選択します。
入力画面
-
関連付けの完了
- 選択が完了したら、下の「OK」ボタンをクリックして関連付けを完了します。
既定のセキュリティ規則
NSGには、最初からいくつかの既定のセキュリティ規則が設定されています。
こうした規則は、ネットワークの基本的な保護を提供するために存在し、削除することはできませんが、カスタム規則で上書きすることが可能です。
1.既定の受信規則(インバウンドトラフィック)
-
DenyAllInbound
- すべての受信トラフィックを拒否します。
-
AllowVNetInBound
- 同じ仮想ネットワーク内からの受信トラフィックを許可します。
-
AllowAzureLoadBalancerInBound:
- Azureのロードバランサーからのトラフィックを許可します。
2.既定の送信規則(アウトバウンドトラフィック)
-
AllowVNetOutBound
- 同じ仮想ネットワーク内への送信トラフィックを許可します。
-
AllowInternetOutBound
- インターネットへの送信トラフィックを許可します。
-
DenyAllOutBound
- すべての送信トラフィックを拒否します。この規則は最後に評価され、他の規則にマッチしなかったトラフィックをブロックします。
参考: マイクロソフト
Azure NSGの活用シナリオ
ここからは、NSGを使った具体的なセキュリティ対策の例を紹介しましょう。
仮想マシンのアクセス制御
仮想マシンに誰がどのようにアクセスできるかを決めるためのルール設定の例として、
・管理者がリモートで仮想マシンに接続するために使うRDP(Windows用)を、特定のIPアドレスやポートからだけ許可。
・Webサーバーとして仮想マシンを使う場合、NSGを使って、Webサイト用の通信(HTTP/HTTPS)だけを許可し、それ以外の通信はすべてブロック。
というように設定することが考えられます。
サブネット間通信の制御
Azure内の異なるサブネット(ネットワークの一部)間の通信を管理する例として、
例えば、
3層アーキテクチャ(Web層、アプリケーション層、データベース層)を実装する場合、
それぞれの層を別々のサブネットに配置し、「この層からこの層へは通信を許可するが、他の通信は許可しない」といったルールを設定。
アプリケーション層はWeb層からのみアクセス可能にし、データベース層はアプリケーション層からのみアクセスできるようにする
などの設定が可能です。
インターネットからのアクセス制限
インターネットから仮想マシンへのアクセスを制限する例として、
Webアプリケーションを運用している場合、次のように設定できます。
ポート80(HTTP)と443(HTTPS):
これらのポートだけを開放するように設定。
その他のポート:
メールやリモートアクセスに使われるポートなど、必要ないものはすべてブロック。
Azure NSG利用時の注意点とベストプラクティス
このように便利なNSGですが、使用する際にいくつか注意すべき点があります。
意図しない通信の遮断リスク
NSGを設定するときは、慎重に行う必要があります。間違った設定をすると、必要な通信までブロックしてしまい、システムやアプリがうまく動かなくなる可能性があるからです。
こうした問題を避けるためには、NSGを変更する前にしっかりテストし、変更がシステムにどんな影響を与えるかを確認することが大切です。
また、一度にすべてを変えるのではなく、少しずつ変更を加えて、その都度確認するのが安全です。
ルールの設定ミスによる脆弱性
ルール設定でミスをすると、システムのセキュリティが弱くなってしまうことがあります。特に注意が必要なのは、ルールを「ゆるく」しすぎることです。
例えば、「Any」や「*」といったルールを使うと、誰でもどこからでもアクセスできる状態になり、悪意のある攻撃者にシステムを狙われるリスクが高まります。
このような事態を避けるために、定期的にセキュリティ監査を行って、設定したルールが適切かどうかを確認することが重要です。
定期的な見直しと監視の必要性
NSGの効果を最大限に引き出すためには、定期的な見直しと監視がとても重要です。
-
定期的な見直し:
- ネットワーク環境やビジネス要件の変化に対応して、NSGのルールを定期的に見直し、最新の状況に合った設定に更新することが必要です。
- ネットワーク環境やビジネス要件の変化に対応して、NSGのルールを定期的に見直し、最新の状況に合った設定に更新することが必要です。
-
ログの有効化と分析
- NSGのログを有効にして、トラフィックの動きを記録することで、異常な動作や潜在的な脅威を早期に発見できます。
こうすることで、セキュリティポスチャ(全体的なセキュリティ状況)を常に最適な状態に保つことができます。
まとめ
Azure Network Security Group (NSG) の仕組み・設定方法・活用場面などについて、ご紹介しました。
NSGは、Azureのネットワークセキュリティを管理するための強力なツールです。NSGを適切に設定・管理することで、仮想ネットワーク内のリソースを効果的に保護し、安全なクラウド環境を構築することができますが、その使用には注意点もあり、定期的な見直しと監視が不可欠です。
NSGの機能を十分に理解し、組織のセキュリティ要件に合わせて適切に活用することで、Azureリソースの安全性を大幅に向上させることができます。
クラウドセキュリティの重要性が増す中、NSGは今後もAzure環境のセキュリティ強化において中心的な役割を果たし続けるでしょう。