次の方法で共有


共有プライベート エンドポイントを経由する送信トラフィックをセキュリティで保護する

Azure Web PubSub でイベント ハンドラーを使用している場合、Azure App Service の Web Apps 機能を使用して作成した静的 Web アプリ、または Azure Functions を使用して作成した関数に対して、アップストリーム エンドポイントに向かう送信トラフィックが発生する可能性があります。 仮想ネットワークの一覧からの接続を受け入れ、公衆ネットワークからの外部接続を拒否するエンドポイントを使用するように Web アプリと関数を構成できます。 それらのエンドポイントに到達するためのアウトバウンド プライベート エンドポイント接続を Web PubSub サービスに作成できます。

共有されたプライベート エンドポイントのアーキテクチャを表示する表。

この記事では、公衆ネットワークではなく共有プライベート エンドポイントを介して Azure Functions の関数にアップストリーム呼び出しを送信するように Web PubSub リソースを構成する方法について説明します。

このアウトバウンド メソッドは、次の要件を満たしていることが前提となります。

  • アップストリーム エンドポイントは、Azure App Service または Azure Functions を使用してデプロイする必要があります。
  • Web PubSub リソースは、Standard レベルまたは Premium レベルにある必要があります。
  • Azure App Service または Azure Functions リソースを作成するには、特定のレベルを選択してリソースを作成する必要があります。 詳細については、Azure Web アプリでのプライベート エンドポイントの使用に関する記事を参照してください。

Azure Web PubSub API を使用して作成されたセキュリティで保護されたリソースのプライベート エンドポイントは、"共有プライベート リンク リソース" と呼ばれます。 Azure Private Link と統合されている Azure Functions リソースなどのリソースへのアクセスを "共有" しています。 これらのプライベート エンドポイントは、Web PubSub Service の実行環境内に作成され、直接見ることはできません。

前提条件

Note

この記事の例では、次の値を使用します。

  • この Azure Web PubSub リソースのリソース ID は _/subscriptions//00000000-0000-0000-0000-000000000000/resourceGroups/contoso/providers/Microsoft.SignalRService/webPubSub/contoso-webpubsub です。
  • Azure Functions ネットワーク リソースのリソース ID は _/subscriptions//00000000-0000-0000-0000-000000000000/resourceGroups/contoso/providers/Microsoft.Web/sites/contoso-func です。

次の例の手順を実行するには、これらの値を実際のサブスクリプション ID、Web PubSub リソースの名前、Azure Functions リソースの名前に置き換えてください。

  1. Azure portal で、Azure Web PubSub リソースに移動します。

  2. 左側のメニューで、[ネットワーク] を選択します。

  3. [プライベート アクセス] を選択します。

  4. [共有プライベート エンドポイントの追加] を選択します。

    共有プライベート エンドポイントの管理を示すスクリーンショット。

  5. 共有プライベート エンドポイントの名前を入力します。

  6. ターゲット リンク ソースを選択するには、[リソースから選択する] を選択するか、[リソース ID の指定] でリソース ID を入力します。

    必要に応じて、[要求メッセージ] にテキストを入力して、ターゲットのリソース所有者に要求を送信できます。

  7. [追加] を選択します。

    共有プライベート エンドポイントの追加を示すスクリーンショット。

共有プライベート エンドポイント リソースの [プロビジョニングの状態] の値は "成功" になります。 [接続状態] は、ターゲット リソースでエンドポイントが承認されるまで、"保留中" のままです。

承認待ちの共有プライベート エンドポイントの追加を示すスクリーンショット。

関数のプライベート エンドポイント接続を承認する

共有プライベート エンドポイント接続の状態が "保留中" の場合、接続要求はターゲット リソースで承認される必要があります。

重要

プライベート エンドポイント接続の承認後は、公衆ネットワークから関数にアクセスすることができなくなります。 場合によっては、関数のエンドポイントにアクセスするためのプライベート エンドポイントを別途、自分の仮想ネットワークに作成する必要があります。

  1. Azure portal で Azure Functions アプリに移動します。
  2. 左側のメニューで、[ネットワーク] を選択します。
  3. [受信トラフィック][プライベート エンドポイント] を選択します。
  4. Web PubSub リソースで作成した保留中の接続を選択します。
  5. [承認] を選択してから、[はい] を選択して確定します。

プライベート エンドポイント接続を承認するスクリーンショット。

[最新の情報に更新] を選択すると、状態を確認できます。 [接続状態] 状態が "承認済み" に更新されるまでに数分かかる場合があります。

Azure portal のスクリーンショット、プライベート エンドポイント接続 ペインに 承認済み の状態が表示されている。

承認が Web PubSub に反映されるまでに数分かかります。 Azure portal または Azure CLI を使用して、状態を確認できます。

承認された共有プライベート エンドポイントのスクリーンショット。

この時点で、Azure Web PubSub と Azure Functions の間のプライベート エンドポイントが確立されます。

アップストリーム呼び出しがプライベート IP アドレスから行われていることを確認する

プライベート エンドポイントを設定したら、アップストリーム呼び出しの X-Forwarded-For ヘッダーを確認することにより、受信した呼び出しの実行元がプライベート IP アドレスであることを確認できます。