App Service Environment の管理アドレス

重要

この記事は、分離 App Service プランで使用される App Service Environment v2 に関するものです。 App Service Environment v2 は 2024 年 8 月 31 日に廃止される予定です。 より強力なインフラストラクチャ上で実行できる、使いやすい新しいバージョンの App Service Environment があります。 新しいバージョンの詳細については、App Service Environment の概要に関するページから始めてください。 現在 App Service Environment v2 を使用している場合は、この記事の手順に従って新しいバージョンに移行ください。

2024 年 1 月 29 日以降は、ARM/Bicep テンプレート、Azure portal、Azure CLI、REST API などの利用可能などの方法を使っても、App Service Environment v2 の新しいリソースを作成できなくなります。 リソースの削除とデータの損失を防ぐため、2024 年 8 月 31 日より前に、App Service Environment v3 に移行する必要があります。

前提条件

  • Azure Cloud Shell で Bash 環境を使用します。 詳細については、「Azure Cloud Shell の Bash のクイックスタート」を参照してください。

  • CLI リファレンス コマンドをローカルで実行する場合、Azure CLI をインストールします。 Windows または macOS で実行している場合は、Docker コンテナーで Azure CLI を実行することを検討してください。 詳細については、「Docker コンテナーで Azure CLI を実行する方法」を参照してください。

    • ローカル インストールを使用する場合は、az login コマンドを使用して Azure CLI にサインインします。 認証プロセスを完了するには、ターミナルに表示される手順に従います。 その他のサインイン オプションについては、Azure CLI でのサインインに関するページを参照してください。

    • 初回使用時にインストールを求められたら、Azure CLI 拡張機能をインストールします。 拡張機能の詳細については、Azure CLI で拡張機能を使用する方法に関するページを参照してください。

    • az version を実行し、インストールされているバージョンおよび依存ライブラリを検索します。 最新バージョンにアップグレードするには、az upgrade を実行します。

まとめ

App Service Environment (ASE) は、ご使用の Azure Virtual Network 内で実行する Azure App Service のシングル テナント デプロイです。 ASE は、仮想ネットワーク内で実行されますが、Azure App Service がサービス管理のために使用する多数の専用 IP アドレスからもアクセスできる必要があります。 ASE の場合、管理トラフィックは、ユーザーによって制御されるネットワークを横断します。 このトラフィックがブロックまたは誤ってルーティングされていると、ASE は中断されます。 ASE ネットワークの依存関係の詳細については、「App Service Environment のネットワークの考慮事項」を参照してください。 ASE に関する一般情報については、まず「Azure App Service Environment の概要」を参照してください。

すべての ASE に、管理トラフィックの送信先パブリック VIP があります。 こうしたアドレスからの着信管理トラフィックは、ASE のパブリック VIP のポート 454 および 455 に送信されます。 このドキュメントでは、ASE に対する管理トラフィックの APP Service ソース アドレスの一覧を示します。 これらのアドレスは、AppServiceManagement という名前の IP サービス タグ内にもあります。

AppServiceManagement サービス タグのアドレスをルート テーブル内で構成すると、管理トラフィックに関する非対称ルーティングの問題を回避できます。 可能であれば、個別アドレスではなく、サービス タグを使用してください。 ルートは、IP レベルでトラフィックに基づいて機能します。トラフィックの方向や、トラフィックが TCP 応答メッセージの一部であることは認識しません。 TCP 要求の応答アドレスが送信先アドレスと異なる場合は、非対称ルーティングの問題があります。 ASE 管理トラフィックに関する非対称ルーティングの問題を避けるには、応答が送信先アドレスと同じアドレスから返されることを確認します。 送信トラフィックがオンプレミスで送信される環境内で動作するように ASE を構成する方法の詳細については、強制トンネリングを使用した ASE の構成に関する記事を参照してください。

管理アドレスの一覧

管理アドレスの IP を確認する必要がある場合、リージョンのサービス タグ参照をダウンロードし、アドレスの最新一覧を取得します。 App Service Environment 管理アドレスは、AppServiceManagement サービス タグに一覧表示されます。

リージョン サービス タグ参照
すべてのパブリック リージョン Azure IP 範囲とサービス タグ – パブリック クラウド
Microsoft Azure Government Azure IP の範囲とサービス タグ – 米国政府機関クラウド
21Vianet が運用する Microsoft Azure Azure IP の範囲とサービス タグ – 中国クラウド

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

ネットワーク セキュリティ グループがあれば、個々のアドレスや、独自の構成を維持することについて心配する必要がありません。 すべてのアドレスを保持して最新の状態に保たれる AppServiceManagement という名前の IP サービス タグがあります。 この IP サービス タグを NSG で使用するには、ポータルに移動して [Network Security Groups UI](ネットワーク セキュリティ グループ UI) を開き、[セキュリティ規則の受信] を選択します。 受信管理トラフィック用の既存の規則がある場合は、それを編集します。 この NSG がお使いの ASE で作成されたものでない場合や、すべて新しいものの場合は、 [追加] を選択します。 [ソース] ドロップダウンで、 [Service Tag]\(サービス タグ) を選択します。 [ソース サービス タグ] で AppServiceManagement を選択します。 ソース ポートの範囲を *、[Destination]\(宛先) を [Any]\(任意)、宛先ポート範囲を [454 455]、プロトコルを [TCP]、[アクション] を [許可] に設定します。 規則を作成する場合は、[優先度] を設定する必要があります。

creating an NSG with the service tag

ルート テーブルの構成

すべての受信管理トラフィックが同じパスを戻ることができるように、管理アドレスは、インターネットの次ホップを指定してルート テーブル内に配置できます。 これらのルートは、強制トンネリングの構成時に必要です。 可能であれば、個別アドレスではなく、AppServiceManagement サービス タグを使用してください。 ルート テーブルを作成するには、ポータル、PowerShell、または Azure CLI を使用できます。 PowerShell プロンプトから Azure CLI を使用してルート テーブルを作成するコマンドは、次の通りです。

$sub = "subscription ID"
$rg = "resource group name"
$rt = "route table name"
$location = "azure location"

az network route-table route create --subscription $sub -g $rg --route-table-name $rt  -n 'AppServiceManagement' --address-prefix 'AppServiceManagement' --next-hop-type 'Internet'

ルート テーブルを作成した後は、お使いの ASE サブネットでそれを設定する必要があります。

API から管理アドレスを取得する

次の API 呼び出しで、ご自身の ASE に一致する管理アドレスを一覧表示できます。

get /subscriptions/<subscription ID>/resourceGroups/<resource group>/providers/Microsoft.Web/hostingEnvironments/<ASE Name>/inboundnetworkdependenciesendpoints?api-version=2016-09-01

API によって、ご自身の ASE に対するすべての受信アドレスが含まれる JSON ドキュメントが返されます。 アドレスの一覧には、管理アドレス、ご自身の ASE によって使用される VIP、および ASE サブネットのアドレス範囲自体が含まれています。

armclient を使用して API を呼び出すには、次のコマンドを、サブスクリプション ID、リソース グループ、および ASE 名を置き換えて使用します。

armclient login
armclient get /subscriptions/<subscription ID>/resourceGroups/<resource group>/providers/Microsoft.Web/hostingEnvironments/<ASE Name>/inboundnetworkdependenciesendpoints?api-version=2016-09-01