ネットワーク セキュリティで保護されたイングレスには、グローバル ルーティング、グローバル オフロード、正常性エンドポイント監視のパターンなど、いくつかの設計パターンがカプセル化されています。 この記事のパターン実装は、待機時間の短いフェールオーバーで異なるリージョンのワークロードにセキュリティで保護されたグローバル ルーティングを提供することで、高可用性または信頼性を必要とする HTTP または HTTPS ワークロードのゲートウェイとして使用できます。
ビデオ: ネットワーク セキュリティで保護されたイングレスの実装
パターンの要件
この記事では、ネットワーク セキュリティで保護されたイングレスのパターン実装で重点を置く 3 つの要件について説明します。グローバル ルーティング、低待機時間フェールオーバー、エッジでの攻撃の軽減です。
グローバル ルーティング
ネットワーク セキュリティで保護されたイングレス パターンは、グローバル ルーティング パターンをカプセル化します。 そのため、実装では、異なるリージョンのワークロードに要求をルーティングできます。
待ち時間の短いフェールオーバー
実装では、正常で異常なワークロードを識別し、時間に依存する方法でそれに応じてルーティングを調整できる必要があります。 待機時間は、数分でルーティングの調整をサポートできる必要があります。
エッジでの攻撃の軽減
エッジでの攻撃を軽減するために、実装の "ネットワークでセキュリティで保護された" 部分が必要になります。 ワークロードまたはサービスとしてのプラットフォーム (PaaS) サービスにインターネット経由でアクセスすることはできません。 インターネット トラフィックは、ゲートウェイ経由でのみルーティングできる必要があります。 ゲートウェイには、悪用を軽減する機能が必要です。
パターン
このソリューションは、次の設計パターンを実装します。
- ゲートウェイ ルーティング パターン: 異なるリージョンに存在できる複数のサービスまたはサービス インスタンスに要求をルーティングします。
- ゲートウェイ オフロード パターン: 攻撃の軽減などの機能をゲートウェイ プロキシにオフロードします。
- 正常性エンドポイント監視パターン: ワークロードの正常性を検証するエンドポイントを公開します。
設計
この図は、Web アプリケーション ファイアウォールが含まれる Azure Front Door Premium ボックスに流れる HTTPS 要求を示しています。 これは、Azure Front Door Premium と Azure Web アプリケーション ファイアウォールの統合を示しています。 次に、異なるリージョンの 2 つのスタンプに Private Link 経由で送信される要求を図に示します。 各スタンプには、静的な Web サイトと内部ロード バランサーがあります。 要求は Private Link を介して、静的 Web サイトと両方のスタンプ内のロード バランサーに送信されます。
この実装には、次の詳細が含まれます。
- Azure Blob Storage アカウントを使用して、2 つのリージョンで実行されている静的 Web ワークロードをシミュレートします。 この実装には、内部ロード バランサー (ILB) の背後で実行されているワークロードは含まれません。 この図は、ILB の背後で実行されているプライベート ワークロードでこの実装が機能することを示す ILB を示しています。
- グローバル ゲートウェイとして Azure Front Door Premium レベルを使用します。
- Azure Front Door インスタンスには、一般的な悪用から保護するのに役立つマネージド ルールで構成されたグローバル Web アプリケーション ファイアウォール (WAF) ポリシーがあります。
- ストレージ アカウントはインターネット経由で公開されません。
- Azure Front Door Premium レベルでは、Azure Private Link 経由でストレージ アカウントにアクセスします。
- Azure Front Door インスタンスには、次の大まかな構成があります。
- 1 つの配信元グループを指す単一のルートを持つエンドポイント。 配信元グループは、配信元 (またはバックエンド) のコレクションです。
- オリジングループには、各ストレージアカウントを指すように構成されたオリジンがあります。
- 各配信元は、ストレージ アカウントへの Private Link アクセスを要求します。
- オリジングループには、ストレージアカウント内の HTML ページにアクセスするように設定されたヘルスプローブがあります。 HTML ページは、静的ワークロードの正常性エンドポイントとして機能します。 プローブが過去 4 回の試行のうち 3 回で配信元に正常にアクセスできる場合、配信元は正常と見なされます。
コンポーネント
ウェブリクエスト
- Azure Web Application Firewall は、Microsoft が管理するルール セットを使用して、Web アプリケーションを一般的な脅威や脆弱性から保護するセキュリティ サービスです。 このアーキテクチャでは、Premium レベルは Azure Front Door Premium と統合され、バックエンド サービスに到達する前に悪意のある HTTP および HTTPS トラフィックを検査してブロックします。
- Azure Private Link は、Microsoft バックボーン ネットワーク経由で Azure PaaS サービスへのプライベート接続を可能にするサービスです。 このアーキテクチャでは、Azure Front Door がパブリック インターネットに公開することなく、ストレージ アカウントに安全にアクセスできます。
-
Azure Front Door Premium は、レイヤー 7 の負荷分散、ルーティング、セキュリティ機能を提供するグローバル アプリケーション配信ネットワークです。 このアーキテクチャでは、セキュリティで保護されたグローバル ゲートウェイとして機能します。 トラフィックをリージョンのワークロードにルーティングし、Private Link 経由でプライベートに通信しながら Web アプリケーション ファイアウォール ポリシーを適用します。 Premium レベルでは、次のコンポーネントがサポートされています。
- Private Link を使用すると、Azure Front Door は、Microsoft バックボーン ネットワーク経由でプライベート仮想ネットワーク内の PaaS サービスまたはワークロードに接続できます。
- Microsoft が管理するルール セット は、一般的な悪用から保護するために Web アプリケーション ファイアウォールの Premium レベルと統合される Azure Front Door の Premium レベルでのみ使用できます。
- Azure Storage は、構造化データと非構造化データ用のスケーラブルなクラウド ストレージ サービスです。 このアーキテクチャでは、Blob Storage は静的 Web 資産を考慮し、Azure Front Door ルーティングの配信元ターゲットとして機能します。
- ILB は、仮想ネットワーク内または接続されたネットワーク間でプライベート IP トラフィックを分散します。 この実装では ILB は直接使用されませんが、ILB の背後にあるプライベート ワークロードをストレージ アカウントと同様にルーティングする方法を示すためにアーキテクチャで表されています。
オペレーション
ネットワークの観点からリソースをセキュリティで保護すると、悪用から保護できますが、リソースにアクセスする必要があるプロセスや管理者からリソースを分離することもできます。 たとえば、DevOps パイプライン内のビルド エージェントは、Web アプリケーションに更新プログラムをデプロイするためにストレージ アカウントにアクセスする必要がある場合があります。 また、管理者はトラブルシューティングのためにリソースにアクセスする必要がある場合があります。
運用上の目的でネットワーク セキュリティで保護されたアクセスへのアクセスを提供する方法を示すために、この実装では、ストレージ アカウントへの Private Link アクセス権を持つ仮想ネットワークに仮想マシン (VM) をデプロイします。 この実装では、管理者が VM への接続に使用できる Azure Bastion がデプロイされます。 デプロイ シナリオでは、VM の場合と同様に、プライベート ビルド エージェントを仮想ネットワークにデプロイできます。
操作のコンポーネントの詳細を次に示します。
- Azure Virtual Network は、リソース間の安全な通信を可能にするネットワーク サービスです。 このアーキテクチャでは、仮想ネットワークには、管理者がプライベート Microsoft バックボーン ネットワーク経由でストレージ アカウントと安全に通信するために必要なコンポーネントが含まれています。
- Azure Virtual Machines は、スケーラブルなコンピューティング リソースを提供するサービスとしてのインフラストラクチャ (IaaS) オファリングです。 このアーキテクチャでは、VM は、管理者がネットワークで保護されたリソースに安全にアクセスするためのジャンプ ボックスとして機能します。
- Azure Bastion は、パブリック IP アドレスを公開することなく、VM へのリモート デスクトップ プロトコル (RDP) と Secure Shell (SSH) アクセスを提供するマネージド PaaS です。 このアーキテクチャでは、管理者は安全な操作のために SSH 経由でジャンプ ボックス VM に接続できます。
- Private Link エンドポイントは、Private Link 経由で Azure サービスに接続し、仮想ネットワークからプライベート IP アドレスを割り当てるネットワーク インターフェイスです。 このアーキテクチャでは、プライベート エンドポイントはストレージ アカウント PaaS サービスに接続します。 この接続により、プライベート仮想ネットワーク内のリソースは、プライベート IP アドレス経由でストレージ アカウントと通信できます。
- プライベート Azure DNS ゾーンは、ドメイン名を仮想ネットワーク内のプライベート IP アドレスに解決するドメイン ネーム システム (DNS) サービスです。 このアーキテクチャでは、ストレージ アカウントの Private Link ホスト名をプライベート IP アドレスに解決します。これにより、VM からの安全なアクセスが可能になります。
Web 要求フロー
この図は、Azure Front Door への Web 要求を行うユーザーを示しています。 Azure Front Door ボックスの図は、Azure Front Door ルーティング フローの各手順を示しています。 フローで強調表示されているのは、WAF ルールが評価され、Azure Front Door ルートが照合され、配信元グループが選択され、配信元グループから配信元が選択される手順です。 最後に強調表示された部分は、Azure Front Door が Private Link 経由で Azure Blob Storage アカウントに接続する場所です。
ユーザーは、Azure Front Door エンドポイントに HTTP または HTTPS 要求を発行します。
WAF ルールが評価されます。 一致するルールは常にログに記録されます。 Azure Front Door WAF ポリシー モードが 防止 に設定されていて、照合ルールに 異常をブロックするようにアクションが設定されている場合、要求はブロックされます。 それ以外の場合は、要求が続行またはリダイレクトされるか、後続のルールが評価されます。
Azure Front Door で構成されたルートが照合され、正しい配信元グループが選択されます。 この例では、Web サイトの静的コンテンツへのパスでした。
原点は、原点グループから選択されます。
ある。 この例では、正常性プローブが Web サイトを異常と見なしているため、考えられるオリジンから除外されています。
b。 この Web サイトが選択されています。要求は、Microsoft バックボーン ネットワーク経由で Private Link 経由で Azure ストレージ アカウントにルーティングされます。
Azure Front Door ルーティング アーキテクチャの詳細については、「 ルーティング アーキテクチャの概要」を参照してください。
運用フロー
図には 3 つの部分があります。 最初の部分では、静的な Web サイトとして機能する Azure Blob Storage を示します。 Azure Front Door は、Private Link を介してストレージ アカウントに接続します。 2 番目の部分は、仮想ネットワークを表すボックスです。 仮想ネットワークには、サブネットとその内容があります。 これらのサブネットには、IP アドレスが 10.0.2.5 の Private Link エンドポイント、ジャンプ ボックス仮想マシンを含むジャンプ ボックス サブネット、Azure Bastion を含む Azure Bastion サブネットが含まれるプライベート エンドポイント サブネットが含まれます。 3 番目の部分は、AZURE Bastion 経由で仮想ネットワーク内のジャンプ ボックス VM にアクセスするために SSH を使用している管理ユーザーです。 VM からプライベート Azure DNS ゾーンに矢印が表示されます。 最後の矢印は、VM からプライベート リンク エンドポイントに移動し、次にストレージ アカウントに移動します。
管理者は、仮想ネットワークにデプロイされている Azure Bastion インスタンスに接続します。
Azure Bastion は、ジャンプ ボックス VM への SSH 接続を提供します。
ジャンプ ボックスの管理者は、Azure CLI を使用してストレージ アカウントにアクセスしようとします。 ジャンプ ボックスは、パブリック Azure Blob Storage アカウント エンドポイント (
storageaccountname.blob.core.windows.net) の DNS に対してクエリを実行します。プライベート DNS は最終的に
storageaccountname.privatelink.blob.core.windows.netに解決されます。 この例では、Private Link エンドポイントのプライベート IP アドレス (10.0.2.5) を返します。ストレージ アカウントへのプライベート接続は、Private Link エンドポイントを介して確立されます。
考慮事項
このソリューションを使用する場合は、次の点に注意してください。
信頼性
信頼性により、顧客に確約したことをアプリケーションで確実に満たせるようにします。 詳細については、 信頼性の柱の概要を参照してください。
このシナリオでは、信頼性に関する次の重要なポイントに対処します。
- 正常性プローブを使用することで、待機時間が短いグローバル ルーティングにより、リージョンの障害からアプリケーションを絶縁することで信頼性が実現します。
- Azure Front Door 上の Web アプリケーション ファイアウォール は、HTTP 要求と HTTPS 要求に対する一元的な保護を提供します。
セキュリティ
セキュリティは、重要なデータやシステムの意図的な攻撃や悪用に対する保証を提供します。 詳細については、 セキュリティの柱の概要を参照してください。
このシナリオでは、セキュリティに関する次の重要なポイントに対処します。
- Azure Front Door Premium での Private Link のサポート により、インターネット経由で内部または PaaS サービスを公開する必要がなくなります。 Private Link を使用すると、Azure Front Door は Microsoft バックボーン ネットワーク経由でプライベート サービスまたは PaaS サービスと通信できます。
- Azure Front Door 上の Web アプリケーション ファイアウォール は、HTTP 要求と HTTPS 要求に対する一元的な保護を提供します。
- Web Application Firewall Premium の管理対象ルール は、一般的なセキュリティ脅威からユーザーを保護するのに役立つ Microsoft が管理するルールです。
コストの最適化
コストの最適化とは、不要な費用を削減し、運用効率を向上させる方法を検討することです。 詳細については、 コスト最適化の柱の概要を参照してください。
Azure Front Door Premium と Web Application Firewall Premium の両方が Standard レベルで高度なセキュリティ機能を提供しますが、両方に追加のコストがかかります。 Azure Front Door と Web アプリケーション ファイアウォールの価格の詳細については、次のリソースを確認してください。
オペレーショナルエクセレンス
オペレーショナル エクセレンスは、アプリケーションをデプロイし、それを運用環境で実行し続ける運用プロセスをカバーします。 詳細については、「 オペレーショナル エクセレンスの柱の概要」を参照してください。
ネットワーク セキュリティ境界を実装すると、操作とデプロイが複雑になります。 次の点に注意してください:
- Microsoft でホストされるエージェントの IP 範囲は、時間の経過と同時に異なります。 仮想ネットワークにセルフホステッド エージェントを実装することを検討してください。
- 運用チームがネットワークでセキュリティで保護されたリソースにアクセスする必要があるシナリオに Azure Bastion を実装します。
- Azure Front Door で Web アプリケーション ファイアウォールを使用して、HTTP 要求と HTTPS 要求に対して一元的な保護を提供することは、ゲートウェイ オフロード パターンの例です。 悪用の要求を調べる責任は、Azure Front Door の Web アプリケーション ファイアウォールにオフロードされます。 オペレーショナル エクセレンスの観点から得られる利点は、ルールを 1 か所で管理する必要があるということです。
パフォーマンス効率
パフォーマンス効率は、ユーザーがそれに対して行う要求を満たすためにワークロードをスケーリングする機能です。 詳細については、 パフォーマンス効率の柱の概要を参照してください。
グローバル ルーティングを使用すると、同じリージョンまたは異なるリージョンにさらに多くのリソースをデプロイすることで、水平方向のスケーリングが可能になります。