共有プライベート エンドポイントを経由する Azure SignalR アウトバウンド トラフィックをセキュリティで保護する
Azure SignalR Service でサーバーレス モードを使用している場合は、アップストリーム サービスへのアウトバウンド プライベート エンドポイント接続を作成できます。
Azure Web アプリ、Azure Functions などのアップストリーム サービスは、一連の仮想ネットワークからの接続を受け入れる一方で、公衆ネットワークからの外部接続を拒否するように構成できます。 それらのエンドポイントに到達するために、アウトバウンド プライベート エンドポイント接続を作成できます。
このアウトバウンド メソッドは、次の要件を満たしていることが前提となります。
- アップストリーム サービスが Azure Web アプリまたは Azure 関数であること。
- Azure SignalR サービスが Free レベルでないこと。
- Azure Web アプリまたは Azure 関数が特定の SKU に該当すること。 Azure Web アプリでプライベート エンドポイントを使用する方法に関するページを参照してください。
この記事では、アウトバウンド プライベート エンドポイント接続を使用して共有プライベート エンドポイントを作成し、アップストリームの 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 を使用できます。
関数への共有プライベート リンク リソースを作成する
Azure portal で、SignalR Service リソースに移動します。
左側のメニューで [ネットワーク] を選択します。
[プライベート アクセス] タブを選択します。
[共有プライベート エンドポイント] セクションで [共有プライベート エンドポイントの追加] を選択します。
次の情報を入力します。| フィールド | 説明 | | ----- | ----------- | | [名前] | 共有プライベート エンドポイントの名前。 | | [種類] | [Microsoft.Web/sites] を選択します。| | [サブスクリプション] | 関数アプリが含まれているサブスクリプション。 | | [リソース] | 関数アプリの名前を入力します。 | | [要求メッセージ] | 「承認してください」と入力します。|
[追加] を選択します。
共有プライベート エンドポイント リソースが、プロビジョニングに [成功] した状態になります。 接続状態は、ターゲット リソース側で承認の [保留中] になります。
関数のプライベート エンドポイント接続を承認する
重要
プライベート エンドポイント接続の承認後は、公衆ネットワークから関数にアクセスすることができなくなります。 場合によっては、関数のエンドポイントにアクセスするためのプライベート エンドポイントを別途、自分の仮想ネットワークに作成する必要があります。
Azure portal で関数アプリに移動します。
左側のメニューで [ネットワーク] を選択します。
[プライベート エンドポイント接続] を選択します。
[受信トラフィック] で [プライベート エンドポイント] を選択します。
[接続名] でプライベート エンドポイント接続の名前を選択します。
承認を選択します。
プライベート エンドポイント接続が次のスクリーンショットに示すように表示されていることを確認します。 状態が更新されるまでに数分かかる場合があります。
共有プライベート リンク リソースの状態を照会する
SignalR Service に承認が反映されるまでに数分かかります。 Azure portal または Azure CLI を使用して、状態を確認できます。
この時点で、SignalR Service と Azure 関数の間のプライベート エンドポイントが確立されます。
アップストリーム呼び出しの実行元がプライベート IP であることを確認する
プライベート エンドポイントの設定後、アップストリーム側で X-Forwarded-For
ヘッダーを確認することにより、受信した呼び出しの実行元がプライベート IP であることを確認できます。
クリーンアップ
この記事で作成したリソースを使用する予定がない場合は、そのリソース グループを削除できます。
注意事項
リソース グループを削除すると、その中に含まれているすべてのリソースが削除されます。 指定したリソース グループにこの記事の範囲外のリソースが含まれている場合、それらも削除されます。
次のステップ
以下で、プライベート エンドポイントについて詳しく学習してください。