NSG と ASG で多層ネットワーク制御を構成する

VNet 内に web/db の 2 層構成を作り、ASG を送信元・宛先に指定した NSG ルールで層間通信を制御します。Run Command での疎通テストにより、許可と拒否の両方の動作を確認します。

中級55Azure 実環境

ラボ概要

ネットワーク セキュリティ グループ(NSG)は、Azure 仮想ネットワーク内のトラフィックを 5 タプル(送信元/宛先の IP・ポート・プロトコル)でフィルターする基本的なセキュリティ機能です。しかし、ルールの送信元や宛先を IP アドレスで直接指定すると、VM の追加や IP 変更のたびにルールの書き換えが必要になり、規模が大きくなるほど運用が破綻しやすくなります。

そこで役立つのがアプリケーション セキュリティ グループ(ASG)です。ASG は「web 層」「db 層」といった役割ごとに VM の NIC をグループ化し、NSG ルールの送信元・宛先として IP アドレスの代わりに指定できます。VM を ASG に所属させるだけでルールが自動的に適用されるため、IP 設計とセキュリティ ポリシーを分離できます。これは AZ-500 と AZ-700 の両方で問われる重要な設計パターンです。

このラボでは、2 つのサブネットを持つ仮想ネットワーク上に web 層と db 層の VM を 1 台ずつ配置し、「web 層から db 層へは TCP 80 のみ許可し、それ以外の VNet 内通信はすべて拒否する」という多層ネットワーク制御を ASG ベースの NSG ルールで構成します。最後に Run Command を使った疎通テストで、許可された通信が通り、それ以外が遮断されることを実際に確認します。

学習目標

  • VNet を複数サブネットに分割し、層ごとにワークロードを分離する構成を作れるようになる
  • ASG を作成し、VM の NIC を役割ベースのグループに所属させられるようになる
  • NSG ルールの送信元・宛先に ASG を指定し、IP に依存しないルールを記述できるようになる
  • NSG の既定ルール(AllowVnetInBound)と優先度の評価順序を理解し、明示的な拒否ルールで上書きできるようになる
  • パブリック IP を持たない VM に対して Run Command で疎通テストを実行できるようになる

前提

  • Azure ポータルにサンドボックス アカウントでサインイン済みであること
  • すべてのリソースは japaneast(東日本)リージョンに作成すること
  • 作業は割り当て済みのサンドボックス リソースグループ 1 つの中だけで行うこと(新規リソースグループの作成やサブスクリプション設定の変更は不要かつ不可)
  • 操作は主に Azure Cloud Shell(Bash)の az CLI で行います。特別なローカル環境の準備は不要です

ラボの構成

  1. 1Cloud Shell を起動して変数を設定する
  2. 2VNet と 2 つのサブネットを作成する
  3. 3ASG を 2 つ作成する
  4. 4NSG を作成して ASG ベースのルールを追加する
  5. 5NSG を subnet-db に関連付ける
  6. 6VM を 2 台作成して ASG に所属させる
  7. 7vm-db で HTTP サーバーを起動する
  8. 8vm-web から疎通テストを実行する
  9. 9動作確認
  10. 10完了チェックリスト
  11. 11後片付け

詳細な手順は、ラボ開始後に画面内のガイドとして表示されます。

構成図

参考リソース