你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

通过共享专用终结点保护 Azure SignalR 出站流量

在 Azure SignalR 服务中使用无服务器模式时,可以创建到上游服务的出站专用终结点连接

上游服务(例如 Azure Web 应用和 Azure Functions)可以配置为接受来自虚拟网络列表的连接,并拒绝源自公用网络的外部连接。 若要访问这些终结点,可以创建出站专用终结点连接。

Diagram showing architecture of shared private endpoint.

此出站方法需要符合下列要求:

  • 上游服务必须是 Azure Web 应用或 Azure 函数。
  • Azure SignalR 服务不得位于免费层中。
  • Azure Web 应用或 Azure Function 必须位于特定 SKU 中。 请参阅为 Azure Web 应用使用专用终结点

本文介绍如何创建具有出站专用终结点连接的共享专用终结点,以保护流向上游 Azure 函数实例的出站流量。

可以通过 SignalR 服务 API 创建受保护资源的专用终结点。 这些终结点称为共享专用链接资源,可用于共享对资源(例如与 Azure 专用链接服务集成的 Azure 函数)的访问权限。 这些专用终结点是在 SignalR 服务执行环境中创建的,不能在此环境外部访问。

先决条件

需要准备好以下资源才能完成本文中的步骤:

  • Azure 资源组

  • Azure SignalR 服务实例(不得位于免费层)

  • Azure 函数实例

  • 注意

本文中的示例基于以下假设:

  • SignalR 服务的资源 ID 为 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/contoso/providers/Microsoft.SignalRService/signalr/contoso-signalr。
  • Azure Function 上游的资源 ID 为 _/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/contoso/providers/Microsoft.Web/sites/contoso-func。 其余示例显示了如何配置 contoso-signalr 服务,以便其对函数的上游调用可以通过专用终结点而非公用网络进行。 可以在示例中使用自己的资源 ID。
  1. 在 Azure 门户中,转到 Azure SignalR 服务资源。

  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 门户中,转到函数应用。

  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 服务。 可以使用 Azure 门户或 Azure CLI 来检查状态。

Screenshot of an approved shared private endpoint.

此时将建立 SignalR 服务和 Azure Functions 之间的专用终结点。

验证上游调用是否来自专用 IP

设置专用终结点后,可以通过检查上游端的 X-Forwarded-For 标头来验证来自专用 IP 的传入调用。

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

清理

如果不打算使用在本文中的创建资源,则可以删除资源组。

注意

删除资源组会删除其中包含的所有资源。 如果指定的资源组中存在本文范围外的资源,这些资源也会被删除。

后续步骤

详细了解专用终结点: