Share via


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

Azure SignalR Service でサーバーレス モードを使用している場合は、アップストリーム サービスへのアウトバウンド プライベート エンドポイント接続を作成できます。

Azure Web アプリ、Azure Functions などのアップストリーム サービスは、一連の仮想ネットワークからの接続を受け入れる一方で、公衆ネットワークからの外部接続を拒否するように構成できます。 それらのエンドポイントに到達するために、アウトバウンド プライベート エンドポイント接続を作成できます。

Diagram showing architecture of shared private endpoint.

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

この記事では、アウトバウンド プライベート エンドポイント接続を使用して共有プライベート エンドポイントを作成し、アップストリームの Azure 関数インスタンスへのアウトバウンド トラフィックをセキュリティで保護する方法について説明します。

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

前提条件

この記事の手順を完了するには、次のリソースが必要です。

  • Azure リソース グループ

  • Azure SignalR Service インスタンス (Free レベルであってはなりません)

  • Azure 関数インスタンス

  • Note

この記事の例は、次の前提に基づいています。

  • SignalR Service のリソース ID は /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/contoso/providers/Microsoft.SignalRService/signalr/contoso-signalr です。
  • アップストリーム Azure 関数のリソース ID は /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/contoso/providers/Microsoft.Web/sites/contoso-func です。 残りの例では、contoso-signalr サービスのアップストリームの関数呼び出しが公衆ネットワークではなくプライベート エンドポイントを通るようにサービスを構成する方法について説明します。 例では、独自のリソース ID を使用できます。
  1. Azure portal で、SignalR Service リソースに移動します。

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

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

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

    Screenshot of shared private endpoints management.

    次の情報を入力します。| フィールド | 説明 | | ----- | ----------- | | [名前] | 共有プライベート エンドポイントの名前。 | | [種類] | [Microsoft.Web/sites] を選択します。| | [サブスクリプション] | 関数アプリが含まれているサブスクリプション。 | | [リソース] | 関数アプリの名前を入力します。 | | [要求メッセージ] | 「承認してください」と入力します。|

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

    Screenshot of adding a shared private endpoint.

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

Screenshot of an added shared private endpoint.

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

重要

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

  1. Azure portal で関数アプリに移動します。

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

  3. [プライベート エンドポイント接続] を選択します。

  4. [受信トラフィック][プライベート エンドポイント] を選択します。

  5. [接続名] でプライベート エンドポイント接続の名前を選択します。

  6. 承認を選択します。

    Screenshot of the Azure portal, showing the Private endpoint connections pane.

    プライベート エンドポイント接続が次のスクリーンショットに示すように表示されていることを確認します。 状態が更新されるまでに数分かかる場合があります。

    Screenshot of the Azure portal, showing an Approved status on the Private endpoint connections pane.

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

Screenshot of an approved shared private endpoint.

この時点で、SignalR Service と Azure 関数の間のプライベート エンドポイントが確立されます。

アップストリーム呼び出しの実行元がプライベート IP であることを確認する

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

Screenshot of the Azure portal, showing incoming requests are from a private IP.

クリーンアップ

この記事で作成したリソースを使用する予定がない場合は、そのリソース グループを削除できます。

注意事項

リソース グループを削除すると、その中に含まれているすべてのリソースが削除されます。 指定したリソース グループにこの記事の範囲外のリソースが含まれている場合、それらも削除されます。

次のステップ

以下で、プライベート エンドポイントについて詳しく学習してください。