本記事は Microsoft Learn の「ネットワークセキュリティグループを構成する」というモジュールをまとめたものである。
ネットワーク セキュリティ グループを実装する
ネットワークセキュリティグループを使うと、仮想ネットワーク内のトラフィックを制限できる。サブネットやネットワークインターフェイスに割り当て、規則を定義して通信を制御する。
ネットワーク セキュリティ グループについて知っておくべき事項
- ネットワーク セキュリティ グループ (NSG) は、受信・送信トラフィックを許可または拒否する規則のリストを持つ
- NSG はサブネットやネットワーク インターフェイスに関連付け可能
- NSG は複数回関連付け可能
- Azure ポータルで NSG を作成し、セキュリティ規則を定義できる
- 仮想マシンの概要ページで、関連付けられた NSG の情報(割り当て先サブネットやネットワーク インターフェイス、規則の詳細)を確認可能
ネットワークセキュリティグループとネットワークインターフェイス
- ネットワークインターフェイスを通るすべてのトラフィックを制御する NSG ルールを定義可能
- サブネット内の各ネットワークインターフェイスには、NSG を1つ関連付けるか、関連付けないかを選択できる
ネットワークセキュリティグループ規則を決定する
ネットワークセキュリティ グループの規則でトラフィックをフィルターし、サブネットとネットワークインターフェイス間の通信を制御できる
セキュリティ規則について知っておくべきこと
- Azure の NSG には、受信・送信トラフィック用の既定のセキュリティ規則がある(例: DenyAllInbound、AllowInternetOutbound)
- 作成する各 NSG に既定の規則が自動で追加される
- 条件を指定して追加のセキュリティ規則を作成可能。もっとも一般的な条件は以下
設定 | 値 |
---|---|
情報源 | Any、IP アドレス、マイ IP アドレス、サービス タグ、アプリケーション セキュリティ グループ |
送信ポート範囲 | 許可または拒否するポート番号または範囲 |
行き先 | Any、IP アドレス、サービス タグ、アプリケーション セキュリティ グループ |
プロトコル | TCP、UDP、ICMP、Any(既定値) |
アクション | Allow(許可)、Deny(拒否) |
優先順位 | 100~4096、一意の値(小さいほど優先度高) |
- 各規則には優先度が割り当てられ、値が小さいほど優先度が高い
- NSG の規則は優先度に従って順次処理される
- 既定の規則は削除できない
- 既定規則を上書きするには、より高い優先度の規則を作成する
受信トラフィック規則
Azure の NSG には既定の受信規則が 3 つあり、仮想ネットワークと Azure ロードバランサー以外のすべての受信トラフィックを拒否する
送信トラフィック規則
Azure の NSG には既定の送信規則が 3 つあり、送信トラフィックはインターネットと仮想ネットワークへのみ許可される
ネットワークセキュリティグループの有効な規則を決定する
Azure では、各 NSG とその規則は個別に評価され、仮想マシンへの適用はインバウンドとアウトバウンドで順序が異なる。サブネット内トラフィックも考慮され、最終的な適用によって規則の有効性が決まる。
-
各 NSG と規則は個別に評価される
-
インバウンド トラフィック:
- まずサブネットに関連付けられた NSG の規則を評価
- 次にネットワーク インターフェイスに関連付けられた NSG の規則を評価
-
アウトバウンド トラフィック:
- まずネットワーク インターフェイスの NSG 規則を評価
- 次にサブネットの NSG 規則を評価
-
サブネット内トラフィックも評価対象(同じサブネット内の仮想マシン間通信)
-
最終的な適用結果により規則の全体的な有効性が決まる
ネットワークセキュリティグループの評価
サブネットとネットワークインターフェイスの両方に NSG を適用した場合、各 NSG は個別に評価され、受信・送信規則は優先順位と処理順序に従って適用される。
有効な規則を作成するときに考慮すべきこと
- サブネットや NIC を NSG に関連付けない場合、既定の Azure 規則に従って全トラフィックが許可される
- 特定レベルでトラフィックを制御しない場合、そのリソースを NSG に関連付ける必要なし
- トラフィックを通すには、サブネットと NIC の両方に許可規則を定義する必要がある
- 許可規則が定義されていないレベルではトラフィックが拒否される
- サブネット内の NSG 規則は、サブネット内の全仮想マシン間トラフィックに影響する
- サブネット内通信を禁止するには、インバウンド・アウトバウンド両方のトラフィックを拒否する規則を定義
- NSG の規則は優先順位に従って処理される
- 常に処理される規則には低い優先度値を割り当てる
- 優先度番号に余裕を残すと、新しい規則を既存規則を編集せずに追加可能
有効なセキュリティ規則を表示する
複数の NSG があり適用規則が不明な場合、Azure portal の「有効なセキュリティ規則」リンクで、仮想マシン・サブネット・NIC に適用されている規則を確認できる
ネットワークセキュリティグループ規則を作成する
Azure portal では、受信・送信トラフィックを制御する NSG 規則を簡単に追加でき、HTTPS、RDP、FTP、DNS などの通信サービスを選択可能
セキュリティ規則の構成について知っておくべき事項
NSG 規則を作成するには、トラフィックルールやネットワーク要件に応じたプロパティを指定する必要がある
-
ソース: 受信トラフィックを制御する元を指定。IP アドレス範囲、リソース、アプリケーション セキュリティ グループ、既定タグを使用可能
-
宛先: 送信トラフィックの行き先を指定。ソースと同様に IP アドレス範囲、リソース、アプリケーション セキュリティ グループ、既定タグを使用可能
アプリケーション セキュリティ グループを実装する
Azure 仮想ネットワークでアプリケーションセキュリティグループ (ASG) を使うと、仮想マシンをワークロードごとに論理的にグループ化でき、ASG に基づいてネットワーク セキュリティ グループの規則を設定できる
アプリケーションセキュリティグループの使用について知っておくべきこと
アプリケーションセキュリティグループはネットワークセキュリティグループと同様に機能するが、アプリケーション単位で管理できる。仮想マシンを ASG に追加し、ASG を NSG 規則の送信元や宛先として利用できる。
アプリケーションセキュリティグループを使用する際に考慮すべきこと
- IP アドレスを個別に管理する必要がない。ASG を使うと多数の VM があっても規則の管理が簡単
- サブネットに依存せず、VM をアプリケーションや目的別に論理的にグループ化可能
- 複数の規則セットが不要。ASG 内のすべての VM に新しい規則を自動適用
- ワークロードの論理的配置をサポートし、管理と理解が容易
- サービス タグを使うと Azure サービスの IP プレフィックス管理が簡略化される。ASG は VM グループ化と規則管理に使用
演習 - 仮想ネットワークを実装する
省略