チュートリアル: ネットワーク セキュリティ グループを使用してネットワーク トラフィックをフィルター処理する

Azure 仮想ネットワーク内の Azure リソースが送受信するネットワーク トラフィックは、ネットワーク セキュリティ グループを使ってフィルター処理できます。

ネットワーク セキュリティ グループには、IP アドレス、ポート、およびプロトコルでネットワーク トラフィックをフィルター処理するセキュリティ規則が含まれています。 ネットワーク セキュリティ グループがサブネットに関連付けられている場合、そのサブネットにデプロイされたリソースにセキュリティ規則が適用されます。

チュートリアル中に作成されるリソースの図。

このチュートリアルでは、次の作業を行う方法について説明します。

  • ネットワーク セキュリティ グループと規則を作成する
  • アプリケーション セキュリティ グループを作成する
  • 仮想ネットワークを作成し、ネットワーク セキュリティ グループをサブネットに関連付ける
  • 仮想マシンをデプロイし、そのネットワーク インターフェイスをアプリケーション セキュリティ グループに関連付ける

前提条件

以下の手順ではリソース サブネットを持つ仮想ネットワークが作成されます。

  1. ポータルで、[仮想ネットワーク] を検索して選択します。

  2. [仮想ネットワーク] ページで、[+ 作成] を選択します。

  3. [仮想ネットワークの作成][基本] タブで、次の情報を入力するか選択します。

    設定
    プロジェクトの詳細
    サブスクリプション サブスクリプションを選択します。
    Resource group [新規作成] を選択します。
    [名前] に「test-rg」と入力します。
    [OK] を選択します。
    インスタンスの詳細
    Name vnet-1」と入力します。
    リージョン [米国東部 2] を選択します。

    Azure portal の [仮想ネットワークの作成] の [基本] タブを示すスクリーンショット。

  4. [次へ] を選択して、[セキュリティ] タブに進みます。

  5. [次へ] を選択して、[IP アドレス] タブに進みます。

  6. [サブネット] のアドレス空間ボックスで、既定のサブネットを選択します。

  7. [サブネットの編集] ペインで、次の情報を入力または選択します。

    設定
    サブネットの詳細
    サブネット テンプレート 既定値は [既定値] のままにします。
    Name subnet-1」と入力します。
    開始アドレス 既定値の 10.0.0.0 のままにします。
    サブネットのサイズ 既定値の /24(256 アドレス) のままにします。

    既定のサブネットの名前変更と構成を示すスクリーンショット。

  8. [保存] を選択します。

  9. 画面の下部にある [確認および作成] を選択します。 検証に合格した後、 [作成] を選択します。

アプリケーション セキュリティ グループを作成する

アプリケーション セキュリティ グループ (ASG) を使用すると、Web サーバーなど、同様の機能を持つサーバーをグループ化できます。

  1. ポータルの上部にある検索ボックスに、「アプリケーションのセキュリティ グループ」と入力します。 検索結果から [アプリケーションのセキュリティ グループ] を選びます。

  2. [+ 作成] を選択します。

  3. [アプリケーションのセキュリティ グループの作成][基本] タブで、この情報を入力または選択します。

    設定
    プロジェクトの詳細
    サブスクリプション サブスクリプションを選択します。
    Resource group test-rg を選択します。
    インスタンスの詳細
    名前 asg-web」と入力します。
    リージョン [米国東部 2] を選択します。
  4. [Review + create](レビュー + 作成) を選択します。

  5. [+ 作成] を選択します。

  6. 上記の手順を繰り返し、次の値を指定します。

    設定
    プロジェクトの詳細
    サブスクリプション サブスクリプションを選択します。
    Resource group test-rg を選択します。
    インスタンスの詳細
    名前 asg-mgmt」と入力します。
    リージョン [米国東部 2] を選択します。
  7. [Review + create](レビュー + 作成) を選択します。

  8. [作成] を選択します

ネットワーク セキュリティ グループの作成

ネットワーク セキュリティ グループ (NSG) は、仮想ネットワーク内のネットワーク トラフィックをセキュリティで保護するものです。

  1. ポータルの上部にある検索ボックスに、「ネットワーク セキュリティ グループ」と入力します。 検索結果から [ネットワーク セキュリティ グループ] を選択します。

    注意

    [ネットワーク セキュリティ グループ] の検索結果に、[ネットワーク セキュリティ グループ (クラシック)] が表示される場合があります。 ネットワーク セキュリティ グループを選択します。

  2. [+ 作成] を選択します。

  3. [ネットワーク セキュリティ グループの作成][基本] タブで、この情報を入力または選択します。

    設定
    プロジェクトの詳細
    サブスクリプション サブスクリプションを選択します。
    Resource group test-rg を選択します。
    インスタンスの詳細
    名前 nsg-1」と入力します。
    場所 [米国東部 2] を選択します。
  4. [Review + create](レビュー + 作成) を選択します。

  5. [作成] を選択します

ネットワーク セキュリティ グループをサブネットに関連付ける

このセクションでは、先ほど作成した仮想ネットワークのサブネットにネットワーク セキュリティ グループを関連付けます。

  1. ポータルの上部にある検索ボックスに、「ネットワーク セキュリティ グループ」と入力します。 検索結果から [ネットワーク セキュリティ グループ] を選択します。

  2. [nsg-1] を選択します。

  3. [nsg-1][設定] セクションから [サブネット] を選択します。

  4. [サブネット] ページで [+ 関連付け] を選択します。

    サブネットへのネットワーク セキュリティ グループの関連付けのスクリーンショット。

  5. [サブネットの関連付け][仮想ネットワーク] として [vnet-1 (test-rg)] を選択します。

  6. [サブネット] として [subnet-1] を選択した後に、[OK] を選択します。

セキュリティ規則を作成する

  1. [nsg-1][設定] セクションから [受信セキュリティ規則] を選択します。

  2. [受信セキュリティ規則] ページで [+ 追加] を選択します。

  3. asg-web アプリケーション セキュリティ グループに、ポート 80 と 443 を許可するセキュリティ規則を作成します。 [受信セキュリティ規則の追加] ページで、次の情報を入力するか選択します。

    設定
    source 既定値の [Any](すべて) のままにします。
    Source port ranges 既定値の (*) のままにします。
    到着地 [アプリケーションのセキュリティ グループ] を選択します。
    宛先アプリケーションのセキュリティ グループ [asg-web] を選択します。
    サービス 既定値の [Custom](カスタム) のままにします。
    宛先ポート範囲 80,443」と入力します。
    Protocol [TCP] を選択します。
    アクション 既定値の [Allow](許可) のままにします。
    Priority 既定値の [100] のままにします。
    名前 allow-web-all」と入力します。
  4. [追加] を選択します。

  5. 次の情報を使用して、前の手順を完了します。

    設定
    source 既定値の [Any](すべて) のままにします。
    Source port ranges 既定値の (*) のままにします。
    到着地 [アプリケーションのセキュリティ グループ] を選択します。
    宛先アプリケーションのセキュリティ グループ [asg-mgmt] を選択します。
    サービス [RDP] を選択します。
    アクション 既定値の [Allow](許可) のままにします。
    Priority 既定値の [110] のままにします。
    名前 allow-rdp-all」と入力します。
  6. [追加] を選択します。

注意

この記事では、asg-mgmt アプリケーション セキュリティ グループに割り当てられている VM では、RDP (ポート 3389) がインターネットに公開されています。

運用環境では、ポート 3389 をインターネットに公開せずに、VPN、プライベート ネットワーク接続、または Azure Bastion を使用して、管理する Azure リソースに接続することをお勧めします。

Azure Bastion の詳細については、「Azure Bastion とは」を参照してください。

仮想マシンを作成する

仮想ネットワーク内に 2 つの仮想マシン (VM) を作成します。

  1. ポータルで、[仮想マシン] を検索して選択します。

  2. [仮想マシン][+ 作成][Azure 仮想マシン] の順に選択します。

  3. [仮想マシンの作成][基本] タブで、この情報を入力または選択します。

    設定
    プロジェクトの詳細
    サブスクリプション サブスクリプションを選択します。
    Resource group test-rg を選択します。
    インスタンスの詳細
    仮想マシン名 vm-web」と入力します。
    リージョン [(米国) 米国東部 2] を選択します。
    可用性のオプション 既定値の [インフラストラクチャ冗長は必要ありません] のままにします。
    セキュリティの種類 [Standard] を選択します。
    Image [Windows Server 2022 Datacenter - x64 Gen2] を選択します。
    Azure Spot インスタンス 既定値のオフのままにします。
    サイズ サイズを選択します。
    管理者アカウント
    ユーザー名 ユーザー名を入力します。
    Password パスワードを入力します。
    パスワードの確認 パスワードを再入力します。
    受信ポートの規則
    受信ポートの選択 [なし] を選択します。
  4. [次へ: ディスク][次へ: ネットワーク] の順に選択します。

  5. [ネットワーク] タブで、次の情報を入力または選択します。

    設定
    ネットワーク インターフェイス
    仮想ネットワーク [vnet-1] を選択します。
    Subnet subnet-1 (10.0.0.0/24) を選択します。
    パブリック IP 新しいパブリック IP の既定値をそのまま使用します。
    NIC ネットワーク セキュリティ グループ [なし] を選択します。
  6. [Review + create](確認と作成) タブを選択するか、ページの下部にある青色の [Review + create](確認と作成) ボタンを選択します。

  7. [作成] を選択します VM のデプロイには数分かかることがあります。

  8. 前の手順を繰り返して、vm-mgmt という名前の 2 つ目の仮想マシンを作成します。

ネットワーク インターフェイスを ASG に関連付ける

VM を作成したとき、Azure では各 VM 用のネットワーク インターフェイスが作成され、それが VM に接続されました。

各 VM 用のネットワーク インターフェイスを、前に作成したアプリケーション セキュリティ グループの 1 つに追加します。

  1. ポータルの上部にある検索ボックスに、「仮想マシン」と入力します。 検索結果から [仮想マシン] を選択してから、[vm-web] を選択します。

  2. [vm-web][ネットワーク] セクションから [アプリケーション セキュリティ グループ] を選択します。

  3. [アプリケーション セキュリティのグループの追加] を選択し、[アプリケーション セキュリティのグループの追加] タブで [asg-web] を選択します。 最後に、[追加] を選択します。

    [アプリケーションのセキュリティ グループを構成] のスクリーンショット。

  4. vm-mgmt に対して前の手順を繰り返し、[アプリケーション セキュリティのグループの追加] タブで [asg-mgmt] を選択します。

トラフィック フィルターをテストする

  1. ポータルの上部にある検索ボックスに、「仮想マシン」と入力します。 検索結果から [仮想マシン] を選択します。

  2. vm-mgmt を選択します。

  3. [概要] ページで [接続] ボタンを選択してから [ネイティブ RDP] を選択します。

  4. [RDP ファイルのダウンロード] を選択します。

  5. ダウンロードした RDP ファイルを開き、 [接続] を選択します。 VM の作成時に指定したユーザー名とパスワードを入力します。

  6. [OK] を選択します。

  7. 接続処理中に証明書の警告が表示される場合があります。 警告が表示されたら、 [はい] または [続行] を選択して接続処理を続行します。

    この接続は成功します。インターネットからの asg-mgmt アプリケーション セキュリティ グループへの受信トラフィックが、ポート 3389 経由で許可されているためです。

    vm-mgmt のネットワーク インターフェイスは asg-mgmt アプリケーション セキュリティ グループに関連付けられ、接続を許可します。

  8. vm-mgmt 上の PowerShell セッションを開きます。次を使用して vm-web に接続します。

    mstsc /v:vm-web
    

    vm-mgmt から vm-web への RDP 接続は成功します。既定では、同じネットワーク内の仮想マシンが任意のポートで相互に通信できるためです。

    インターネットから vm-web 仮想マシンへの RDP 接続を作成することはできません。 asg-web のセキュリティ規則により、インターネットからポート 3389 への受信接続は拒否されます。 既定では、インターネットからのインバウンド トラフィックはすべてのリソースに対して拒否されます。

  9. vm-web 仮想マシンに Microsoft IIS をインストールするには、vm-web 仮想マシンの PowerShell セッションから次のコマンドを入力します。

    Install-WindowsFeature -name Web-Server -IncludeManagementTools
    
  10. IIS のインストールが完了したら、vm-web 仮想マシンから切断します。vm-mgmt 仮想マシンのリモート デスクトップ接続は保持されます。

  11. vm-mgmt VM から切断します。

  12. ポータルの検索ボックスで vm-web を検索します。

  13. vm-web[概要] ページで、VM の [パブリック IP アドレス] をメモします。 次の例に示されているアドレスは 203.0.113.103 です。 実際のアドレスは異なります。

    [概要] ページの仮想マシンの [パブリック IP アドレス] のスクリーンショット。

  14. インターネットから vm-web Web サーバーにアクセスできることを確認するには、コンピューターでインターネット ブラウザーを開き、http://<public-ip-address-from-previous-step> にアクセスします。

IIS の既定のページが表示されます。インターネットからの asg-web アプリケーション セキュリティ グループへの受信トラフィックがポート 80 経由で許可されているためです。

vm-web に対してアタッチされたネットワーク インターフェイスは asg-web アプリケーション セキュリティ グループに関連付けられ、接続を許可します。

作成したリソースの使用が終了したら、リソース グループとそのすべてのリソースを削除して構いません。

  1. Azure portal で、「リソース グループ」を検索して選択します。

  2. [リソース グループ] ページで、test-rg リソース グループを選択します。

  3. [test-rg] ページで、[リソース グループの削除] を選択します。

  4. [削除を確認するために、リソース グループの名前を入力してください] に「test-rg」と入力して、[削除] を選びます。

次のステップ

このチュートリアルでは、次の作業を行いました。

  • ネットワーク セキュリティ グループを作成し、それを仮想ネットワーク サブネットに関連付けました。
  • Web および管理用のアプリケーション セキュリティ グループを作成しました。
  • 2 つの仮想マシンを作成し、そのネットワーク インターフェイスをアプリケーション セキュリティ グループに関連付けます。
  • アプリケーション セキュリティ グループのネットワーク フィルターをテストしました。

ネットワーク セキュリティ グループについて詳しくは、ネットワーク セキュリティ グループの概要ネットワーク セキュリティ グループの管理に関する記事を参照してください。

Azure の既定では、サブネット間でトラフィックがルーティングされます。 代わりに、たとえばファイアウォールとして機能する VM を介してサブネット間でトラフィックをルーティングすることもできます。

ルート テーブルを作成する方法を学習するには、次のチュートリアルに進んでください。