次の方法で共有


Azure API Managementの前にFront Door Standard/Premiumを構成する

適用対象: すべての API Management レベル

Azure Front Doorは、セキュリティで保護されたスケーラブルなコンテンツ配信ネットワーク (CDN)、動的サイト アクセラレーション、グローバル WEB アプリケーションのグローバル HTTP 負荷分散を提供する最新のアプリケーション配信ネットワーク プラットフォームです。 Front Door は、API Management の前で使用する場合、TLS オフロード、エンド ツー エンド TLS、負荷分散、GET 要求の応答キャッシュ、Web アプリケーション ファイアウォールなどの機能を提供できます。 サポートされている機能の完全な一覧については、「Azure Front Doorとは?」を参照してください>

Web ワークロードの場合は、Azure DDoS 保護web アプリケーション ファイアウォールを使用して、DDoS 攻撃から保護することを強くお勧めします。 もう 1 つのオプションは、web アプリケーション ファイアウォールと共に Azure Front Door を使用することです。 Azure Front Doorでは、ネットワーク レベルの DDoS 攻撃に対するplatform レベルの保護が提供されます。 詳細については、「Azure サービスのセキュリティ ベースラインを参照してください。

この記事では、次の方法について説明します。

  • パブリックにアクセスできる Azure API Management インスタンスの前に、Azure Front Door Standard/Premium プロファイルを設定します。ネットワークに接続されていないインスタンス、または仮想ネットワークに挿入された開発者または Premium インスタンス(外部モード)です。
  • API Management を制限して、Azure Front Doorからの API トラフィックのみを受け入れるようにします。

ヒント

private エンドポイントを使用して API Management ゲートウェイにトラフィックをルーティングするようにAzure Front Door Premium を構成することもできます。

前提条件

  • API Management インスタンス。
    • ネットワーク挿入インスタンスを使用する場合は、外部 VNet にデプロイする必要があります。 (仮想ネットワークの挿入は Developer サービス レベルおよび Premium サービス レベルでサポートされています)
  • 1 つ以上の API を API Management インスタンスにインポートして、Front Door 経由のルーティングを確認します。

Azure Front Doorの構成

プロファイルを作成する

Azure Front Door Standard/Premium プロファイルを作成する手順については、「Quickstart: create an Azure Front Door profile - Azure portal」を参照してください。 この記事では、Front Door Standard プロファイルを選択するものとします。 Front Door Standard と Front Door Premium の比較については、「サービス レベルの比較」を参照してください。

API Management インスタンスのゲートウェイ エンドポイントを Front Door の配信元として使用する場合に固有の次の Front Door 設定を構成します。 その他の設定の詳細については、Front Door のクイック スタートを参照してください。

設定
起点の種類 [API Management] を選択します
配信元のホスト名 API Management インスタンスのホスト名を選択します (例: myapim.azure-api.net)
キャッシュ Front Door で [キャッシュの有効化] を選択して、静的コンテンツのキャッシュを行います
クエリ文字列のキャッシュ動作 [クエリ文字列を使用する] を選択します

ポータルで Front Door プロファイルを作成するスクリーンショット。

既定の配信元グループを更新する

プロファイルが作成されたら、デフォルトのオリジングループを更新して、API Management ヘルスプローブを含めます。

  1. ポータルで、Front Door プロファイルに移動します。

  2. 左側のメニューの [設定] で、[配信元グループ][既定の配信元グループ] を選択します。

  3. [配信元グループの更新]ウィンドウで、以下の[正常性プローブ]設定を構成し、[更新]を選択してください。

    設定
    状態 [ヘルスプローブを有効にする] を選択します
    パス 「<内容>」と入力します
    プロトコル [HTTPS] を選択します
    方法 [GET] を選択します
    間隔 (秒) 「30」と入力します

    ポータルで既定の配信元グループを更新するスクリーンショット。

既定のルートを更新する

API Management 配信元グループに関連付けられている既定のルートを更新して、転送プロトコルとして HTTPS を使用することをお勧めします。

  1. ポータルで、Front Door プロファイルに移動します。
  2. 左側のメニューの [設定] で [配信元グループ] を選択します。
  3. default-origin-group を展開します。
  4. [既定のルート]のコンテキスト メニュー (...) で、[ルートの構成] を選択します。
  5. [受け入れ済みのプロトコル] を [HTTP および HTTPS] に設定します。
  6. [HTTPS を使用するようにすべてのトラフィックをリダイレクト] を有効にします。
  7. [転送プロトコル] を [HTTPS のみ] に設定し、[更新] を選択します。

構成をテストする

API Management によってホストされる API (たとえば Swagger Petstore API) を呼び出すという方法で、Front Door のプロファイル構成をテストします。 まず、API Management ゲートウェイを介して API を直接呼び出して、API が到達可能であることを確認します。 次に、Front Door を介して API を呼び出します。

API Management を経由して API を直接呼び出す

API Management ゲートウェイを通して API を直接呼び出すには、 などのコマンド ライン クライアントまたは別の HTTP クライアントを使用できます。 成功の場合は HTTP 応答と、期待どおりのデータが返されます。

HTTP クライアントを使用して API Management エンドポイントを直接呼び出していることを示すスクリーンショット。

Front Door を経由して API を直接呼び出す

同じ API 操作を、インスタンス用に構成済みの Front Door エンドポイントを使用して呼び出します。 ドメイン内のエンドポイントのホスト名は、ポータルで Front Door プロファイルの [概要] ページに表示されます。 成功すると、応答として が表示され、前の例と同じデータが返されます。

受信トラフィックを API Management インスタンスに制限する

API Management ポリシーを使用して、API Management インスタンスがAzure Front Doorからのトラフィックのみを受け入れるようにします。 この制限は、次の方法のいずれか、または両方を使用して実現できます。

  1. 受信 IP アドレスを API Management インスタンスに制限する
  2. X-Azure-FDID ヘッダーの値に基づいてトラフィックを制限する

受信 IP アドレスの制限

API Management で受信 IP フィルター ポリシーを、Front Door 関連のトラフィックのみを許可するよう構成できます。これには次のものが含まれます。

  • Front Door のバックエンド IP アドレス空間 - Azure IP 範囲とサービス タグ の AzureFrontDoor.Backend セクションに対応する IP アドレスを許可。

    API Management インスタンスが外部仮想ネットワークにデプロイされている場合は、API Management インスタンスに使用されるサブネットに受信ネットワーク セキュリティ グループ規則を追加して、同じ制限を実行します。 ポート 443 でソース サービス タグ AzureFrontDoor.Backend からの HTTPS トラフィックを許可するように規則を構成します。

  • Azure インフラストラクチャ サービス - IP アドレス 168.63.129.16 と 169.254.169.254 を許可します。

玄関のドアのヘッダーを確認する

Front Door 経由でルーティングされる要求には、Front Door 構成に固有のヘッダーが含まれます。 check-header ポリシーを構成して、API Management に送信される X-Azure-FDID HTTP 要求ヘッダーの一意の値に基づいて受信要求をフィルター処理できます。 このヘッダー値は Front Door ID で、Front Door プロファイルの [概要] ページのポータルに表示されます。

次のポリシー例では、Front Door ID は「名前が付けられた値」を使用して指定されています。

<check-header name="X-Azure-FDID" failed-check-httpcode="403" failed-check-error-message="Invalid request." ignore-case="false">
        <value>{{FrontDoorId}}</value>
</check-header>

有効な X-Azure-FDID ヘッダーを伴わない要求は、403 Forbidden 応答を返します。

(省略可能) 開発者ポータル向け Front Door を構成する

必要に応じて、API Management インスタンスの開発者ポータルを Front Door プロファイルのエンドポイントとして構成します。 マネージド開発者ポータルは既にAzureマネージド CDN によって前面に配置されていますが、WAF などの Front Door 機能を利用することもできます。

開発者ポータルのエンドポイントをプロファイルに追加する手順の概要を次に示します。

  • エンドポイントを追加してルートを構成するには、「Front Door マネージャーを使用してエンドポイントを構成する」を参照してください。

  • ルートを追加するときは、開発者ポータルを表す配信元グループと配信元の設定を追加します。

    • 配信元の種類 - [カスタム] を選択します
    • ホスト名 - 開発者ポータルのホスト名 (例: myapim.developer.azure-api.net) を入力します

詳しい情報と設定の詳細については、Azure Front Door の配信元を構成する方法を参照してください。

開発者ポータル用に Microsoft Entra ID または Microsoft Entra 外部 ID ID プロバイダーを構成した場合は、対応するアプリ登録を Front Door への追加のリダイレクト URL で更新する必要があります。 アプリの登録で、Front Door プロファイルで構成されている開発者ポータル エンドポイントの URL を追加します。

  • API Management を使用して Front Door のデプロイを自動化するには、API Management の配信元を含む Front Door Standard/Premium テンプレートを参照してください

  • api Management インスタンスを悪意のある攻撃から保護するためにAzure Front Doorに Web Application Firewall (WAF) をデプロイする方法について説明します。