应用程序网关私有链接

目前,可以在应用程序网关后面安全地部署关键工作负载,从而灵活地使用第 7 层负载均衡功能。 可以通过两种方式访问后端工作负载:

  • 公共 IP 地址 - 工作负载可供通过 Internet 访问。
  • 专用 IP 地址 - 可通过虚拟网络/连接的网络以私密方式访问工作负载

通过应用程序网关的 专用链接 功能,您可以在 VNet 和订阅之间使用专用连接来连接工作负载。 配置后,专用终结点放置在已定义的虚拟网络的子网中,为希望与网关通信的客户端提供专用 IP 地址。 有关支持专用链接功能的其他 PaaS 服务的列表,请参阅 什么是 Azure 专用链接

图表显示应用程序网关专用链接

特性和功能

专用链接允许在以下方案中通过专用终结点将专用连接扩展到应用程序网关:

  • VNet 所在的区域与应用程序网关相同或不同
  • VNet 位于与应用程序网关相同或不同的订阅中
  • 相同或不同订阅中的 VNet 以及相同或不同的 Microsoft Entra 租户,从应用程序网关进行连接。

还可以选择阻止对应用程序网关的入站公共 (Internet) 访问,并且仅允许通过专用终结点进行访问。 仍需要允许入站管理流量传送到应用程序网关。 有关详细信息,请参阅应用程序网关基础结构配置

通过专用终结点访问时,应用程序网关支持的所有功能均受支持,包括对 AGIC 的支持。

注释

Application Gateway 的 专用链接 配置的空闲超时时间约为 5 分钟(300 秒)。 为防止连接因空闲而被终止,通过私有端点连接到应用程序网关的应用程序应使用 低于 300 秒的 TCP 保活间隔。 如果客户端无法发起 TCP keepalive,请提交支持工单,以请求在 Application Gateway 上启用所需的 keepalive 行为。

识别来自私有端点的流量

注释

当流量通过私有端点到达应用网关时,专用链接会保留客户端的源IP地址和源端口。 应用程序网关访问日志在 clientPortclientIP 字段中记录这些值。 对于 HTTP 和 HTTPS 请求,应用程序网关添加到 X-Forwarded-For 标头中的条目反映了 IP:port 格式中的相同值。 如果另一个代理向私有端点发送请求,这些值将该代理标识为直接客户端。

消费者虚拟网络可以使用重叠的IP地址空间,因此仅靠客户端IP地址可能无法识别起始用户。 Azure 专用链接 为每个私有端点连接分配一个 linkIdentifier,也称为 LINKID。 对于HTTP和HTTPS请求,应用网关在以下位置暴露十进制标识符:

位置 Name DESCRIPTION
请求转发到后端 X-Azure-PrivateEndpoint-ID 应用程序网关会在转发请求之前添加此标头。 其值是十进制私有端点链路标识符,例如。 123456
应用网关访问日志 LinkId 包含与字符串值相同的十进制链接标识符。 更多信息请参见 访问日志类别

例如,对于通过私有端点到达的请求,后端会收到以下标头:

X-Azure-PrivateEndpoint-ID: 123456

注释

尽管名字如此,但它X-Azure-PrivateEndpoint-ID并不包含私有端点的 Azure 资源 ID。 它包含私有端点连接 linkIdentifier 属性的十进制值。

X-Azure-PrivateEndpoint-ID HTTP 头适用于第 7 层的 HTTP 和 HTTPS 流量。 它不会被添加到第四层的TCP/TLS代理流量中。

将任一值与linkIdentifierAzure 资源管理器中对应私有端点连接的属性进行比较。 这种比较可以让你将后端请求和访问日志记录与特定的私有端点连接关联,以便审计或访问控制决策。

应用网关仅在通过私有端点接收的请求时填充头部和访问日志属性。 对于直接发送到应用网关公用或私有前端IP地址的请求,应用网关不会填充 X-Azure-PrivateEndpoint-IDLinkId。 当专用链接配置关联到公用或私有应用网关前端时,这种行为同样适用。

关于 Azure 专用链接 的LINKID定义及其与 linkIdentifier的关系,请参见使用 TCP 代理 v2 获取连接信息

使用应用程序网关实现专用链接需要四个组件:

  • 应用程序网关专用链路配置

    专用链接配置可以与应用程序网关前端 IP 地址相关联,然后该地址用于通过专用终结点建立连接。 如果应用网关前端 IP 地址没有关联,则不会启用 专用链接 功能。

  • 应用程序网关前端 IP 地址

    应用网关私有链接配置需要关联的公共或专用 IP 地址,以启用私有链接功能。

  • 专用终结点

    在 VNet 地址空间中分配专用 IP 地址的 Azure 网络资源。 它用于通过专用 IP 地址连接到应用程序网关,这与许多其他提供专用链接访问的 Azure 服务(例如存储和密钥保管库)类似。

  • 专用终结点连接

    专用终结点发起的应用程序网关上的连接。 可自动批准、手动批准或拒绝连接来授权或拒绝访问。

Pricing

组件 服务提供商/专用链接(应用程序网关资源所有者) 使用者/专用终结点
专用链接服务 无费用 不適用
专用终结点 不適用 按专用链接计费
数据处理(双向) 无费用 按专用链接计费
数据传输 按带宽计费 按带宽计费

限制

  • 应使用 API 版本 2020-03-01 或更高版本来配置“专用链接”配置。
  • 不支持 专用链接 Configuration 对象中的静态 IP 分配方法。
  • 用于 PrivateLinkConfiguration 的子网不能与应用程序网关子网相同。
  • 应用网关的私有链接配置不会公开“别名”属性,必须通过资源 URI 进行引用。
  • 创建专用终结点时,不会创建 *.privatelink DNS 记录或区域。 所有 DNS 记录都应输入到用于你的应用程序网关的现有区域。
  • Application Gateway 的 专用链接 配置的空闲超时时间约为 5 分钟(300 秒)。 为防止因不活跃而中断连接,通过私有端点连接到应用网关的应用应使用 少于300秒的TCP保持活间隔。 如果客户端无法发起 TCP keepalive,请提交支持工单,以请求在 Application Gateway 上启用所需的 keepalive 行为。

后续步骤