Azure Application Gateway は、Web アプリケーションへのトラフィックを管理できる Web トラフィック ロード バランサーです。 Application Gateway は、ネットワーク インフラストラクチャの重要なコンポーネントとして、受信要求を処理してバックエンド サービスにルーティングするため、脅威から保護し、組織のセキュリティ要件に確実に準拠するための適切なセキュリティ対策を実装することが不可欠です。
この記事では、Azure Application Gateway のデプロイを最適にセキュリティで保護する方法に関するガイダンスを提供します。
この記事のセキュリティに関する推奨事項では、ゼロ トラストの原則 ("明示的に確認する"、"最小限の特権アクセスを使用する"、"侵害を想定する") が実装されています。 包括的なゼロ トラスト ガイダンスについては、 ゼロ トラスト ガイダンス センターを参照してください。
ネットワークのセキュリティ
Application Gateway のネットワーク セキュリティには、トラフィック フローの制御、適切なセグメント化の実装、クライアントとバックエンド サービス間の通信のセキュリティ保護が含まれます。
専用サブネットを展開する:アプリケーションゲートウェイを仮想ネットワーク内の専用サブネットに配置し、ネットワークの隔離と必要なインフラ構成をサポートします。 詳細については、「 Application Gateway インフラストラクチャの構成」を参照してください。
ネットワークセキュリティグループを適用する:ネットワークセキュリティグループ(NSG)を使用して、ポート、プロトコル、送信元IPアドレス、宛先IPアドレスごとにトラフィックを制限します。 クライアント、バックエンド、インフラの必要なトラフィックを許可しつつ、信頼できないネットワークからのアクセスを制限するNSGルールを作成しましょう。 詳細については、「ネットワーク セキュリティ グループ」を参照してください。
Application Gateway Private Linkの設定:Application Gateway Private Linkを使用して、仮想ネットワーク、サブスクリプション、リージョン、Microsoft Entraテナントを越えたクライアントからゲートウェイへのプライベート接続を確立し、トラフィックをパブリックインターネットに露出させません。 詳細については、「 Azure Application Gateway Private Link の構成」を参照してください。
パブリックIPを持たずにアプリケーションゲートウェイを展開する:プライベート専用のアプリケーションゲートウェイ展開で、ゲートウェイのパブリックIPアドレス要件を解除し、データ漏出を防ぐための拒否可能なNSGルールを定義し、インバウンド
GatewayManagerサービスタグ依存を排除します。 詳しくは、「プライベート Application Gateway デプロイ」を参照してください。Azure DDoSネットワーク保護を有効にする:アプリケーションゲートウェイをホストする仮想ネットワークにAzure DDoSネットワーク保護を展開し、インターネット対応アプリケーションを大規模なDDoS攻撃からアダプティブチューニングと攻撃通知で守ります。 詳細については、「 Azure DDoS ネットワーク保護を使用してアプリケーション ゲートウェイを保護する」を参照してください。
プライベートエンドポイント用のプライベートDNSを設定する:バックエンドやKey Vault証明書がプライベートエンドポイントを使用する場合、必要なプライベートDNSゾーンをアプリケーションゲートウェイの仮想ネットワークに接続し、ゲートウェイがプライベートIPアドレスを正しく解決できるようにします。 詳細については、Azure Application GatewayのDNS解決をご覧ください。
Web アプリケーション保護
Web Application Firewall(WAF)は、一般的なウェブ脆弱性やアプリケーションを標的とする攻撃に対する重要な保護を提供します。
Application Gateway WAF v2を展開:インターネット対応アプリケーション向けにAzure Web Application Firewallを有効にし、SQLインジェクションやクロスサイトスクリプトなどの一般的な攻撃から保護します。 詳細については、「Azure Application Gateway の Azure Web Application Firewall とは」を参照してください。
WAF設定をWAFポリシーで管理する:Application Gateway WAF v2にはレガシーWAF設定の代わりにWAFポリシーを使用して、管理されたルール、除外、カスタムルール、ポリシーの関連付けを全体的に、リスナーごと、またはURIごとに管理できます。 詳細については、Azure Web Application Firewallポリシーの概要をご覧ください。
デフォルトルールセット(DRS)2.2を使用:現在利用可能な最高位のデフォルトルールセットバージョンであるDRS 2.2を実行し、アップグレード時に既存のカスタマイズを保持し、トラフィックブロックを許可する前にログモードで新たに追加された有効ルールを検証してください。 詳細については、 CRS または DRS ルールセットのバージョンのアップグレードを参照してください。
防止モードの前にWAFを調整する:まず検出モードでトラフィックパターンを理解し、誤検知を調整し、その後防止モードに切り替えてWAFが悪意のあるリクエストをブロックします。 詳細については、Application GatewayのAzure Web Application Firewallに関するベストプラクティスをご覧ください。
カスタムWAFルールの設定:IP制限、ジオフィルタリング、リクエスト属性マッチングなど、管理されたルールセットで完全にカバーされていないアプリケーション固有の脅威に対応するカスタムルールを作成しましょう。 詳細については、「 カスタムウェブアプリケーションファイアウォールルールを作成・使用」をご覧ください。
スコープWAF例外を狭義に適用:特定のリクエストに対して誤検知が必要な場合のみプレビューWAF例外を使用し、最も狭い実用ルール、ルールグループ、または管理されたルールセットにのみスコープ例外を適用します。 詳細については、Azure Application Gateway WAF例外リスト(プレビュー)をご覧ください。
ボット保護を有効にする:Application Gateway WAF v2でボット保護管理ルールセットを使い、悪意のあるボットを分類・ブロックしつつ、確実なボットは許可します。 詳細については、 Azure Application Gateway での Azure Web アプリケーション ファイアウォールのボット保護の概要に関するページを参照してください。
WAFレート制限の実装:クライアント、地理的、その他のセッショングループからの異常に高いリクエスト量を検出・ブロックするためのレート制限のカスタムルールを設定しましょう。 詳細については、「 レート制限の概要」を参照してください。
ID およびアクセス管理
適切な認証および認可制御により、認可されたユーザーとシステムのみがアプリケーションゲートウェイおよびその設定にアクセスできるようにしています。
相互TLS認証の設定:クライアント証明書認証がゲートウェイで必要になる場合や、バックエンドへの証明書パススルーが必要なアプリケーションには相互TLS認証を使用します。 詳細については、 相互認証の概要をご覧ください。
リソースグループまたはApplication Gatewayリソースに最小権限のAzure RBACロールを割り当てます。 ネットワークリソースの管理が必要なオペレーターには組み込みの ネットワーク貢献 者役割のみを使用してください。アプリケーションゲートウェイ専用の組み込み管理ロールは存在しません。 詳細は、Azureのネットワーク内蔵ロールをご覧ください。
アプリケーションゲートウェイ管理者への条件付きアクセスの強制:アプリケーションゲートウェイ、WAFポリシー、Key Vault内のリスナー証明書、ゲートウェイが依存する仮想ネットワークやパブリックIPリソースを作成・変更・削除できるIDに対して、多要素認証と準拠デバイスを必要とする条件付きアクセスポリシーを適用します。 詳細については、「Azure管理のためのMFA必須」をご覧ください。
Key Vault証明書に管理IDを使用する:ユーザー割り当ての管理IDをアプリケーションゲートウェイに割り当て、Key Vault証明書や秘密(例えばKey Vault Secretsユーザーロール)を取得するためのアクセスを許可します。Key VaultがAzure RBACを使用する場合などです。 詳細については、Azure Key Vault証明書によるTLS終了をご覧ください。
本番ゲートウェイにリソースロックを適用する:リソースロックを使って、本番アプリケーションゲートウェイおよびWAFポリシーリソースの誤って削除や変更を防ぐことができます。 詳細については、「 リソースをロックしてインフラストラクチャを保護する」を参照してください。
特権アクセスを定期的に確認する:アプリケーションゲートウェイ、WAFポリシー、仮想ネットワーク、パブリックIPアドレス、Key Vault証明書を管理できるグループや特権IDのアクセスレビューを実行します。 詳細については、「PIMにおけるAzureリソースロールのアクセスレビューを作成する」をご覧ください。
データ保護
Application Gateway のデータ保護では、転送中のデータをセキュリティで保護し、証明書とシークレットを適切に管理することに重点を置いています。
現在のTLSバージョンを要求する:クライアント接続がTLS 1.2以降を使用するようにフロントエンドのTLSポリシーを設定し、エンドツーエンドTLSにはHTTPSバックエンド設定を使用し、TLS 1.0および1.1のサポートが終了しているため、バックエンドサーバーがTLS 1.2以降に対応しているか確認してください。 詳細については、「 TLS終了およびアプリケーションゲートウェイを用いたエンドツーエンドTLSの概要」をご覧ください。
TLS終了を安全に設定する:HTTPSリスナーに対して信頼できる証明書と適切なTLSポリシーを使用し、アプリケーションゲートウェイがレイヤー7ルーティング決定を適用する前にクライアントトラフィックを安全に復号します。 詳細については、「 Application GatewayでTLS終端の設定」をご覧ください。
エンドツーエンドTLSを有効にする:HTTPSバックエンド設定を使い、アプリケーションゲートウェイがクライアントTLSセッションを終了し、バックエンドサーバーへの新しいTLS接続を作成することで、リクエストパス全体のトラフィックを保護します。 詳細については、「 TLS終了およびアプリケーションゲートウェイを用いたエンドツーエンドTLSの概要」をご覧ください。
Azure Key Vaultに証明書を保存:HTTPSリスナーのために、デプロイアーティファクトに証明書を埋め込む代わりに、Key Vaultの証明書や秘密を参照してください。 バージョンレスのシークレット識別子を使用して、Application Gatewayが更新された証明書のバージョンを取得できるようにします。 詳細については、Azure Key Vault証明書によるTLS終了をご覧ください。
証明書ローテーションの自動化:Application GatewayでKey Vaultの証明書更新を使い、ゲートウェイインスタンスがKey Vaultをポーリングし、自動的に新しい証明書バージョンに切り替えます。 詳細については、Azure Key Vault証明書によるTLS終了をご覧ください。
HTTPトラフィックをHTTPSにリダイレクト:HTTP-to-HTTPSリダイレクトを設定し、機密データが平文で送信されるリスクを減らします。 詳細については、 Azure portal を使用した HTTP から HTTPS へのリダイレクトを使用したアプリケーション ゲートウェイの作成に関するページを参照してください。
ログ記録と監視
ログ記録と監視は、Application Gateway の操作を可視化し、潜在的なセキュリティ脅威の検出に役立ちます。
診断設定を有効にする:Log Analytics、ストレージ、Event Hubなどの宛先でアプリケーションゲートウェイアクセスログやWAFファイアウォールログを収集するための診断設定を設定します。 自動で収集された活動ログでコントロールプレーンの変更を確認してください。 詳細については、「 Application Gateway の診断ログ」を参照してください。
リソース固有のログテーブルを使う:
AGWAccessLogsやAGWFirewallLogsなどのリソース固有のテーブルにログを送信することで、クエリを簡素化し、ログの発見性を向上させます。 詳細については、「Monitor Azure Application Gateway」をご覧ください。セキュリティアラートの設定:リクエスト失敗、不健康なホスト、容量利用率、応答状態異常、その他可用性やセキュリティ問題を示すシグナルに対してAzure Monitorアラートを作成します。 詳細については、「Monitor Azure Application Gateway」をご覧ください。
WAFログを定期的に確認する:アプリケーションゲートウェイのWAFログを分析し、攻撃を特定し、誤検知を調整し、防止モードが悪意のあるリクエストをブロックしているかを確実に確認します。 詳細については、「Azure Web Application Firewall の監視とログ記録」を参照してください。
WAFログをMicrosoft Sentinelに送信する:WAFログをMicrosoft Sentinelや他のSIEMと統合し、ウェブアプリケーションの脅威を環境全体の信号と相関させます。 詳細については、「 Azure Web アプリケーション ファイアウォールでの Microsoft Sentinel の使用」を参照してください。
バックエンドの健康状態を監視する:バックエンドの健康状態ビューやカスタムヘルスプローブを使って、不健康なバックエンドサーバーを検出し、トラフィックが失敗または侵害されたインスタンスにルーティングされるのを防ぎます。 詳細については、「 ポータルを通じたバックエンドの健康状態を見る」をご覧ください。
コンプライアンスとガバナンス
コンプライアンスとガバナンスにより、アプリケーションゲートウェイの設定がインベントリ化され、監視され、組織のポリシーと整合しています。
Azure Policyで設定を強制する:組み込みのAzure Policy定義を使って、Application GatewayやWAFの設定を監査・強制します。 主なポリシーには、Azure Application GatewayをAzure WAFでデプロイすること、Application GatewayでWeb Application Firewall(WAF)を有効にすること、Web Application Firewall(WAF)が指定されたモードを使用すること、Azure Application Gateway WAFには、Application GatewayとBot Protectionを有効にしておくべきです。 詳細については、 Azure ネットワーク サービスの Azure Policy の組み込み定義に関するページを参照してください。
タグゲートウェイリソースを一貫して:アプリケーションゲートウェイ、WAFポリシー、パブリックIPアドレス、関連するネットワークリソースにタグを適用し、所有権、環境、コンプライアンス範囲を明確にします。 詳細については、「論理的な組織化のためにリソース、リソース グループ、サブスクリプションにタグを付ける」を参照してください。
Azure Resource Graphによるインベントリゲートウェイリソース:アプリケーションゲートウェイ、WAFポリシー、パブリックIPアドレス、仮想ネットワークリソースをクエリし、大規模に設定のドリフトやサポートされていないパターンを特定します。 詳細については、「 Azure Resource Graph とは」を参照してください。
バックアップと回復
アプリケーションゲートウェイはゲートウェイ自体のデータプレーンバックアップ機能を提供していません。 復旧計画は、構成の保持、証明書およびWAFポリシー定義の保護、そしてレジリエントなトラフィックパスの設計に焦点を当てています。
ゲートウェイ構成をコードとして定義します:アプリケーションゲートウェイ、リスナー、ルール、バックエンド、パブリックIPアドレス、関連するネットワーク構成をBicep、ARMテンプレート、Terraform、または他のインフラストラクチャ・アズ・コードシステムに保存し、誤って削除や地域障害が発生した後でも一貫して再デプロイできるようにします。 詳細については、「Quickstart: Direct web traffic with Azure Application Gateway - Bicep」をご覧ください。
既存構成を復元用にエクスポートする:リソースを手動で作成する際は、本番のアプリケーションゲートウェイ構成をARMテンプレートにエクスポートし、テンプレートをレビューしてパラメータ化してから回復に使う。 詳細については、「Azureポータルからのテンプレートエクスポート」をご覧ください。
ゾーン冗長なアプリケーションゲートウェイv2を展開する:ゾーンをサポートする地域で可用性ゾーンサポート付きのアプリケーションゲートウェイv2を使用し、ゾーン障害への回復力を高めます。 詳細については、Application Gateway v2 と WAF v2 のスケーリングに関するページを参照してください。
地域間のトラフィック回復設計:地域間のアプリケーションゲートウェイ展開の前に、Azure Front DoorやAzure Traffic Managerなどのグローバルルーティングサービスを活用しましょう。 詳細については、「Azure Application Gateway with Azure Traffic Manager」をご覧ください。
バージョン WAFポリシー設定:WAFポリシーの定義、カスタムルール、除外事項、管理されたルールセットの選択をソース管理に保持し、良好なポリシーバージョンを復元し、ルールセット更新後にチューニングを再適用できるようにします。 詳細については、Application GatewayのAzure Web Application Firewallに関するベストプラクティスをご覧ください。
証明書回復依存関係の保護:復元計画にKey Vault証明書、秘密参照、管理ID割り当て、Key Vaultアクセス権限を含め、復元されたゲートウェイがTLS証明書を取得できるようにします。 詳細については、Azure Key Vault証明書によるTLS終了をご覧ください。
次のステップ
- Azureのセキュリティアーキテクチャとデザインについて詳しく学びましょう。
- Microsoft クラウド導入フレームワークのセキュリティをレビューしてください。
- Azure Application GatewayでWeb Application Firewallを探索してください。