Azure リソースでファイアウォール設定を構成する

完了

このユニットでは、ネットワーク セキュリティを強化するための Azure のベスト プラクティスのコレクションについて説明します。 これらのベスト プラクティスは、Azure ネットワークに関する Microsoft の経験と、お客様の経験に基づいています。

それぞれのベスト プラクティスについて、この記事では以下のことを説明します。

  • ベスト プラクティスとは
  • そのベスト プラクティスを実践する理由
  • そのベスト プラクティスを実践しなかった場合に発生する可能性がある事態
  • そのベスト プラクティスに代わる対処法
  • そのベスト プラクティスを実践する方法

これらのベスト プラクティスは、この記事の執筆時点における共通認識と、Azure プラットフォームの能力と機能に基づいています。 共通認識とテクノロジは時間が経つにつれて変化するため、そのような変化に対応するために、この記事は定期的に更新されます。

強力なネットワーク制御を使用する

Azure Virtual Machines (VM) およびアプライアンスを Azure Virtual Networks に配置することで、他のネットワーク デバイスに接続することができます。 つまり、仮想ネットワーク インターフェイス カードを仮想ネットワークに接続することで、ネットワーク対応デバイス間で TCP/IP ベースの通信を実行できるようになります。 Azure Virtual Network に接続された仮想マシンは、同じ仮想ネットワーク上、異なる仮想ネットワーク上、インターネット上、または独自のオンプレミス ネットワーク上のデバイスに接続できます。

ネットワークとネットワークのセキュリティを計画するときは、以下を一元管理することをお勧めします。

  • ExpressRoute、仮想ネットワークとサブネットのプロビジョニング、IP アドレス指定などのコア ネットワーク機能の管理。
  • ネットワーク仮想アプライアンスの機能などのネットワーク セキュリティ要素の管理 (ExpressRoute、仮想ネットワークとサブネットのプロビジョニング、IP アドレス指定など)。

一般的な管理ツール セットを使用してネットワークとネットワークのセキュリティを監視すると、両方の可視性が明確になります。 つまり、統合されたセキュリティ戦略では、人間の理解度と自動化の信頼性が高まるために、エラーが減少します。

サブネットを論理的にセグメント化する

Azure 仮想ネットワークは、オンプレミス ネットワーク上の LAN に似ています。 Azure 仮想ネットワークの背景にある考え方は、使用するすべての Azure 仮想マシンを配置できる単一のプライベート IP アドレス空間に基づいて、自分のネットワークを作成するということです。 使用可能なプライベート IP アドレス空間は、クラス A (10.0.0.0/8)、クラス B (172.16.0.0/12)、およびクラス C (192.168.0.0/16) の範囲です。

サブネットの論理的なセグメント化に関するベスト プラクティスは次のとおりです。

ベスト プラクティス: 広い範囲の許可ルールを割り当てないでください (たとえば、0.0.0.0 から 255.255.255.255 を許可します)。
詳細: トラブルシューティング手順では、これらの種類のルールの設定を推奨または禁止してください。 このような許可ルールは、誤ったセキュリティに至り、多くの場合、レッド チームによって検出され、利用されます。

ベスト プラクティス: より大きなアドレス空間をサブネットに分割します。
詳細: CIDR ベースのサブネットの原則を使用して、サブネットを作成します。

ベスト プラクティス: サブネット間でネットワーク アクセス制御を作成する。 サブネット間のルーティングは自動的に行われるため、ルーティング テーブルを手動で構成する必要はありません。 既定では、Azure 仮想ネットワーク上に作成したサブネット間ではネットワーク アクセス制御は行われません。
詳細: ネットワーク セキュリティ グループ を使用して、Azure サブネットへの未承諾のトラフィックから保護します。 ネットワーク セキュリティ グループ (NSG) は、シンプルでステートフルなパケット検査デバイスです。 NSG では、5 タプル アプローチ (発信元 IP、発信元ポート、接続先 IP、接続先ポートとプロトコル) を使用して、ネットワーク トラフィックに対する許可ルールや拒否ルールを作成します。 許可または拒否の対象は、単一の IP アドレス、複数の IP アドレス、またはサブネット全体との間のトラフィックとなります。

サブネット間のネットワーク アクセス制御にネットワーク セキュリティ グループを使用すると、同じセキュリティ ゾーンまたはロールに属するリソースを専用のサブネットに配置できます。

ベスト プラクティス: シンプルさと柔軟性を確保するために、小規模な仮想ネットワークとサブネットを避けてください。 詳細: ほとんどの組織では、最初に計画されたよりも多くのリソースが追加され、アドレスの再割り当ては労力がかかります。 小さなサブネットを使用すると、セキュリティティの価値が制限され、各ネットワークにネットワーク セキュリティ グループをマッピングするとオーバーヘッドが追加されます。 幅広いサブネットを定義して、成長するための柔軟性が確保されるようにします。

ベスト プラクティス: アプリケーション セキュリティ グループを定義することで、ネットワーク セキュリティ グループのルール管理を簡略化します。
詳細: 将来変更される可能性がある、または多くのネットワーク セキュリティ グループで使用される可能性があると思われる IP アドレスの一覧に対して、アプリケーション セキュリティ グループを定義します。 アプリケーション セキュリティ グループの名前が、他の人間がその内容と目的を明確に理解できるようになっていることを確認します。

ゼロ トラスト アプローチを採用する

境界ベースのネットワークは、ネットワーク内のすべてのシステムが信頼できることを前提として動作しています。 しかし、今日の従業員は、さまざまなデバイスやアプリ上のどこからでも組織のリソースにアクセスし、境界セキュリティ制御を無関係にします。 リソースにアクセスできる人物のみに注目しているアクセス制御ポリシーでは不十分です。 セキュリティと生産性のバランスをうまく取るために、セキュリティ管理者は、リソースが "どのように" アクセスされるかも考慮する必要があります。

攻撃者が信頼できる境界内の単一のエンドポイントを侵害した後、短時間でネットワーク全体に攻撃を展開する可能性があるという、侵害に対する脆弱性が存在するため、ネットワークを従来の防御から進化させる必要があります。 ゼロ トラスト ネットワークでは、境界内のネットワークの場所に基づく信頼という概念が排除されています。 代わりに、ゼロ トラスト アーキテクチャでは、デバイスとユーザーの信頼の要求を使用して、組織のデータとリソースへのアクセスを制御します。 新しい構想では、アクセス時に信頼を検証するゼロ トラスト アプローチが採用されています。

ベスト プラクティスは次のとおりです。

ベスト プラクティス: デバイス、ID、保証、ネットワークの場所などを基に、リソースへの条件付きアクセスを付与します。
詳細: Microsoft Entra 条件付きアクセス を使用すると、必要な条件に基づいて自動アクセス制御の決定を実装することで、適切なアクセス制御を適用できます。 詳細については、「条件付きアクセスを使用して Azure 管理へのアクセスを管理する」を参照してください。

ベスト プラクティス: ワークフローの承認後にのみポート アクセスを有効にします。
詳細: Microsoft Defender for Cloud の Just-In-Time VM アクセス を使用して、Azure VM への受信トラフィックをロックダウンし、攻撃にさらされるリスクを軽減しながら、必要に応じて VM に簡単に接続できます。

ベスト プラクティス: 特権タスクを実行するための一時的なアクセス許可を付与します。これにより、アクセス許可の有効期限が切れた後に、悪意のあるユーザーや未承認のユーザーがアクセスできなくなります。 ユーザーが必要な場合にのみ、アクセスが許可されます。
詳細: Microsoft Entra Privileged Identity Management またはサードパーティ ソリューションで Just-In-Time アクセスを使用して、特権タスクを実行するアクセス許可を付与します。

ゼロ トラストとは、ネットワーク セキュリティにおける次の発展段階です。 サイバー攻撃の状態によって、組織は、"侵害を前提とする" ように考え方を変化させていますが、このアプローチを制限すべきではありません。 ゼロ トラスト ネットワークは、組織のデータとリソースを保護するのと同時に、従業員の生産性を時間も場所も方法も問わずに向上させることができるテクノロジを使用することで、組織が最新のワークプレースを構築できるようにします。

ルーティングの動作を制御する

Azure Virtual Network 上に仮想マシンを配置した場合、その VM を同じ仮想ネットワーク上にある他の VM に接続することができます。他の VM が異なるサブネット上にある場合でも同様です。 これが可能なのは、この種の通信が許可される一連のシステム ルートが既定で有効になるためです。 これらの既定のルートでは、同じ仮想ネットワーク上にある VM に対して、相互接続およびインターネットとの接続の開始が許可されています (インターネットの場合はインターネットへの送信のみ)。

既定のシステム ルートは多くのデプロイ シナリオで有用ですが、自社のデプロイ状況に合わせてルーティング構成をカスタマイズする必要がある場合もあります。 特定の接続先に到達するように次ホップ アドレスを構成できます。

仮想ネットワーク用のセキュリティ アプライアンスをデプロイする場合は、ユーザー定義のルートを構成することをお勧めします。 この推奨事項については、後述の「重要な Azure サービス リソースへのアクセスを仮想ネットワークのみに限定する」というタイトルのセクションで説明します。

ユーザー定義のルートは必須ではありません。通常は既定のシステム ルートで動作します。

仮想ネットワーク アプライアンスを使用する

ネットワーク セキュリティ グループとユーザー定義のルーティングでは、OSI モデルのネットワーク層とトランスポート層で一定のネットワーク セキュリティ対策を提供できます。 しかし、場合によっては、より上位のスタックでセキュリティを有効にする必要があります。 このような状況では、Azure のパートナーによって提供されている仮想ネットワーク セキュリティ アプライアンスのデプロイをお勧めします。

Azure ネットワーク セキュリティ アプライアンスを使用すると、ネットワーク レベルの制御で提供されるよりも強力なセキュリティを実現できます。 仮想ネットワーク セキュリティ アプライアンスのネットワーク セキュリティ機能には、次のようなものがあります。

  • ファイアウォール
  • 侵入検出/侵入防止
  • 脆弱性の管理
  • アプリケーションの制御
  • ネットワーク ベースの異常検出
  • Web フィルタリング
  • ウイルス対策
  • ボットネットからの保護

利用可能な Azure Virtual Network セキュリティ アプライアンスを見つける場合は、Azure Marketplace に移動し、"security" や "network security" で検索してください。

セキュリティ ゾーン用の境界ネットワークをデプロイする

境界ネットワーク (別名 DMZ) は、資産とインターネットの間に追加のセキュリティ層を提供する物理的または論理的なネットワーク セグメントです。 境界ネットワークの端にある特殊なネットワーク アクセス制御デバイスでは、ご利用の仮想ネットワークへの必要なトラフィックのみが許可されます。

境界ネットワークは、Azure Virtual Network の端にあるデバイスでのネットワーク アクセス制御の管理、監視、ログ記録、レポート作成に集中できるため便利です。 境界ネットワークでは、通常、 分散型サービス拒否 (DDoS) 保護、侵入検出/侵入防止システム (IDS/IPS)、ファイアウォール規則とポリシー、Web フィルタリング、ネットワークマルウェア対策などを有効にします。 ネットワーク セキュリティ デバイスは、インターネットと Azure Virtual Network の間に配置され、両方のネットワークに対するインターフェイスが備わっています。

これは境界ネットワークの基本的な設計ですが、バックツーバック、3 分岐、マルチホームなど、多様な設計があります。

前述のゼロ トラスト概念に基づいて、高いセキュリティが求められるすべてのデプロイでは、境界ネットワークを使用して、Azure リソースに対するネットワーク セキュリティとアクセス制御のレベル強化を検討することをお勧めします。 Azure またはサードパーティのソリューションを使用して、自分の資産とインターネットの間に追加のセキュリティ層を用意できます。

  • Azure のネイティブ コントロール。 Azure FirewallAzure Web Application Firewall は、基本的なセキュリティ上の利点を提供します。 利点としては、サービスとしての完全にステートフルなファイアウォール、組み込みの高可用性、無制限のクラウド スケーラビリティ、FQDN フィルタリング、OWASP コア ルール セットのサポート、簡単なセットアップと構成が挙げられます。
  • サード パーティ製品。 Azure Marketplace で、次世代ファイアウォール (NGFW) や、使い慣れたセキュリティ ツールや強化されたレベルのネットワーク セキュリティを提供する他のサード パーティ製品を検索してください。 構成が複雑になる可能性がありますが、サードパーティ製品で、既存の機能とスキルセットを使用できる可能性があります。

多くの組織で、ハイブリッド IT ルートが選ばれています。 ハイブリッド IT では、企業の情報資産の一部が Azure 上に存在し、それ以外がオンプレミスに残されています。 多くの場合、サービスのコンポーネントの一部が Azure で実行され、他のコンポーネントはオンプレミスに残されます。

ハイブリッド IT シナリオでは、通常、なんらかの種類のクロスプレミス接続が使用されます。 クロスプレミス接続を使用することで、企業ではそのオンプレミス ネットワークを Azure Virtual Network に接続できます。 以下の 2 つのクロスプレミス接続ソリューションを利用できます。

  • サイト対サイト VPN。 信頼性の高い確立されたテクノロジですが、接続はインターネット経由で行われます。 帯域幅は、最大約 1.25 Gbps に制限されています。 サイト対サイト VPN は、一部のシナリオで推奨される選択肢です。
  • Azure ExpressRoute。 クロスプレミス接続では ExpressRoute を使用することをお勧めします。 ExpressRoute を利用すると、接続プロバイダーが提供するプライベート接続を介して、オンプレミスのネットワークを Microsoft クラウドに拡張できます。 ExpressRoute では、Azure、Microsoft 365、Dynamics 365 などの Microsoft クラウド サービスへの接続を確立できます。 ExpressRoute は、オンプレミスの場所または Microsoft Exchange ホスティング プロバイダーとの間の専用 WAN リンクです。 これは電気通信事業者が提供する接続であるため、データはインターネットを経由せずに送信されます。したがって、インターネット通信の潜在的なリスクにさらされることはありません。

ExpressRoute 接続の場所は、ファイアウォールの容量、スケーラビリティ、信頼性、およびネットワーク トラフィックの可視性に影響する可能性があります。 既存の (オンプレミス) ネットワークのどこで ExpressRoute を終了するかを識別する必要があります。 次のようにすることができます。

  • ファイアウォールの外側で終了します (境界ネットワーク パラダイム)。 この推奨事項は、トラフィックの可視化が必要な場合、データセンターの隔離という既存のプラクティスを続行する必要がある場合、または単に Azure 上にエクストラネット リソースを配置する場合に使用してください。
  • ファイアウォールの内側で終了します (ネットワーク拡張パラダイム)。 これは、既定の推奨事項です。 その他のすべてのケースでは、Azure を別のデータセンターとして扱うことをお勧めします。

アップタイムとパフォーマンスを最適化する

サービスがダウンしていると、情報にアクセスすることはできません。 データを使用できないほどパフォーマンスが低下している場合、データをアクセス不能と見なすことができます。 セキュリティの観点から、サービスで最適なアップタイムとパフォーマンスを提供できるように、あらゆる手段を講じる必要があります。

可用性とパフォーマンスを向上させるために広く使用され、効果的な手法として、負荷分散があります。 負荷分散とは、サービスを構成する複数のサーバー間でネットワーク トラフィックを分散する手法です。 たとえば、サービスにフロント エンド Web サーバーが含まれている場合は、負荷分散を使用して、トラフィックを複数のフロント エンド Web サーバーに分散させることができます。

このトラフィック分散によって可用性が向上します。いずれかの Web サーバーが使用不能になると、ロード バランサーは、そのサーバーへのトラフィック送信を停止し、オンラインがまだ維持されているサーバーにリダイレクトするためです。 負荷分散はパフォーマンスの向上にも役立ちます。要求を処理するときのプロセッサ、ネットワーク、メモリのオーバーヘッドが負荷分散サーバー全体に分散されるためです。

可能な限り、提供するサービスに合わせて、負荷分散を使用することをお勧めします。 Azure Virtual Network レベルとグローバル レベルの両方でのシナリオを以下に示します。また、各レベルの負荷分散オプションについても説明します。

シナリオ: 次のようなアプリケーションがあります。

  • 同じユーザー/クライアントのセッションからの要求が同じバックエンド仮想マシンに到達する必要がある。 この例として、ショッピング カート アプリや Web メール サーバーなどがあります。
  • セキュリティで保護された接続のみが受け入れられるため、サーバーへの暗号化されていない通信は受け入れられない。
  • 実行時間の長い同じ TCP 接続で複数の HTTP 要求を、異なるバックエンド サーバーにルーティングまたは負荷分散する必要がある。

負荷分散オプション: HTTP Web トラフィック ロード バランサーである Azure Application Gateway を使用します。 Application Gateway では、ゲートウェイでのエンド ツー エンド TLS 暗号化と TLS 終了がサポートされています。 そのため、Web サーバーを、暗号化と暗号化解除のオーバーヘッドと、バックエンド サーバーへの暗号化されていないトラフィック フローから解放することができます。

シナリオ: Azure 仮想ネットワーク内にあるサーバー間で、インターネットからの受信接続を負荷分散する必要があります。 これは次のような場合のシナリオです。

  • インターネットからの着信要求を受け入れるステートレス アプリケーションがある。
  • スティッキー セッションや TLS オフロードを必要としない。 スティッキー セッションは、サーバーアフィニティを実現するために、アプリケーション負荷分散で使用される方法です。

負荷分散オプション: Azure portal を使用して、受信要求を複数の VM に分散させる 外部ロード バランサーを作成 し、より高いレベルの可用性を提供します。

シナリオ: インターネット上にない VM からの接続を負荷分散する必要があります。 負荷分散で受け入れられるのは、ほとんどの場合、SQL Server インスタンスや内部 Web サーバーなど、Azure Virtual Network 上のデバイスで開始された接続です。
負荷分散オプション: Azure portal を使用して、受信要求を複数の VM に分散する 内部ロード バランサーを作成 し、より高いレベルの可用性を提供します。

シナリオ: 次の理由から、グローバル負荷分散が必要です。

  • 複数のリージョン全体に広く分散され、可能な限り高いレベルのアップタイム (可用性) を必要とするクラウド ソリューションがある。
  • データセンター全体が利用不可となった場合でも、サービスを利用できるようにするために、可能な限り高いレベルのアップタイムが必要である。

負荷分散オプション: Azure Traffic Manager を使用します。 Traffic Manager を使用すると、ユーザーの場所に基づいてサービスへの接続を負荷分散できます。

たとえば、ユーザーが EU からサービスに要求を行った場合、その接続が EU のデータセンター内にあるサービスに転送されます。 Traffic Manager グローバル負荷分散のこの処理によって、パフォーマンスも向上します。遠く離れたデータセンターに接続するよりも、最寄りのデータセンターに接続する方が、高速になるためです。

仮想マシンへの RDP/SSH アクセスを無効にする

Azure Virtual Machines へのアクセスには、リモート デスクトップ プロトコル (RDP) と Secure Shell (SSH) プロトコルを使用できます。 これらのプロトコルにより、遠隔地からの管理 VM が有効になります。これらは、データセンター コンピューティングにおける標準プロトコルです。

これらのプロトコルをインターネット経由で使用すると、攻撃者がブルート フォース手法を使って Azure Virtual Machines へのアクセス権を取得できるという潜在的なセキュリティの問題が生じます。 攻撃者がアクセス権を取得すると、VM を起点として仮想ネットワーク上の他のマシンを侵害したり、Azure の外部にあるネットワーク接続されたデバイスを攻撃したりすることができます。

インターネットから Azure Virtual Machines への RDP および SSH による直接アクセスは無効にすることをお勧めします。 インターネットからの RDP および SSH の直接アクセスを無効にした場合、リモート管理のためのこれらの VM へのアクセスに他のオプションを使用できます。

シナリオ: 1 人のユーザーがインターネット経由で Azure 仮想ネットワークに接続できるようにします。
オプション: ポイント対サイト VPN は、リモート アクセス VPN クライアント/サーバー接続のもう 1 つの用語です。 ポイント対サイト接続が確立されると、ユーザーは、ポイント対サイト VPN を介して接続した Azure Virtual Network 上にあるすべての VM に RDP または SSH を使用して接続できます。 この場合、そのユーザーがそれらの VM にアクセスすることを承認されていることが前提となります。

ユーザーは VM に接続する前に 2 回認証を受ける必要があるため、ポイント対サイト VPN は RDP や SSH による直接接続よりも安全です。 最初に、ユーザーは、ポイント対サイト VPN 接続を確立するために認証を受ける (および承認される) 必要があります。 次に、ユーザーは、RDP または SSH セッションを確立するために認証を受ける (および承認される) 必要があります。

シナリオ: オンプレミス ネットワーク上のユーザーが Azure 仮想ネットワーク上の VM に接続できるようにします。
オプション: サイト間 VPN は、インターネット経由でネットワーク全体を別のネットワークに接続します。 サイト間 VPN を使用すると、オンプレミス ネットワークを Azure Virtual Network に接続できます。 オンプレミス ネットワーク上のユーザーは、サイト間 VPN 接続を介して RDP または SSH プロトコルを使用して接続します。 インターネット経由での RDP または SSH による直接アクセスを許可する必要はありません。

シナリオ: 専用 WAN リンクを使用して、サイト間 VPN と同様の機能を提供します。
オプション: ExpressRoute を使用します。 サイト間 VPN に似た機能が提供されます。 主な違いは次のとおりです。

  • 専用 WAN リンクではインターネットを経由しません。
  • 一般的には専用 WAN リンクの方が安定性とパフォーマンスに優れています。

重要な Azure サービス リソースへのアクセスを仮想ネットワークのみに限定する

Azure Private Link を使用して、仮想ネットワーク内のプライベート エンドポイント経由で Azure PaaS サービス (Azure Storage、SQL Database など) にアクセスします。 プライベート エンドポイントを使用することで、重要な Azure サービス リソースへのアクセスを仮想ネットワークのみに限定することができます。 仮想ネットワークから Azure サービスへのトラフィックは常に、Microsoft Azure のバックボーン ネットワーク上に残ります。 Azure PaaS サービスを使用するために、パブリック インターネットへの仮想ネットワークの公開は不要になりました。

Azure Private Link には次のような利点があります。

  • Azure サービス リソースのセキュリティの強化: Azure Private Link を使用すると、プライベート エンドポイントを使用して Azure サービス リソースを仮想ネットワークに対してセキュリティで保護できます。 サービス リソースを仮想ネットワーク内のプライベート エンドポイントに限定することで、リソースへのパブリック インターネット アクセスを完全に排除し、ご利用の仮想ネットワーク内の仮想ネットワークからのトラフィックのみを許可することにより、セキュリティが向上します。
  • Azure プラットフォーム上の Azure サービス リソースにプライベートにアクセスする: プライベート エンドポイントを使用して、仮想ネットワークを Azure 内のサービスに接続します。 パブリック IP アドレスは必要ありません。 Private Link プラットフォームでは、Azure のバックボーン ネットワークを介してコンシューマーとサービスの間の接続が処理されます。
  • オンプレミスおよびピアリングされたネットワークからのアクセス: ExpressRoute プライベート ピアリング、VPN トンネル、およびプライベート エンドポイントを使用してピアリングされた仮想ネットワーク経由で、オンプレミスから Azure で実行されているサービスにアクセスします。 ExpressRoute Microsoft ピアリングを構成したり、インターネットを走査してサービスに接続したりする必要はありません。 Private Link を使用すれば、Azure にワークロードを安全に移行することができます。
  • データ漏洩に対する保護: プライベート エンドポイントは、サービス全体ではなく PaaS リソースのインスタンスにマップされます。 コンシューマーが接続できるのは、その特定のリソースだけです。 サービス内の他のリソースへのアクセスはブロックされます。 このメカニズムにより、データの漏えいリスクを防ぐことができます。
  • グローバルな展開: 他のリージョンで実行中のサービスにプライベートに接続します。 リージョン A にあるコンシューマーの仮想ネットワークから、リージョン B のサービスに接続することができます。
  • セットアップと管理が簡単: IP ファイアウォールを介して Azure リソースをセキュリティで保護するために、仮想ネットワークに予約済みのパブリック IP アドレスが不要になります。 プライベート エンドポイントの設定に NAT やゲートウェイ用のデバイスは必要ありません。 プライベート エンドポイントは、単純なワークフローで構成されます。 サービス側では、Azure サービス リソースでの接続要求を簡単に管理することもできます。 Azure Private Link は、異なる Microsoft Entra テナントに属するコンシューマーとサービスに対しても機能します。

プライベート エンドポイントと、それらのプライベート エンドポイントを利用できる Azure サービスとリージョンの詳細については、Azure Private Link に関するページを参照してください。