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

对应用服务应用使用专用终结点

注意

从 2024 年 6 月 1 日开始,所有新创建的应用服务应用都可以选择生成唯一的默认主机名,命名约定为 <app-name>-<random-hash>.<region>.azurewebsites.net。 现有应用名称将保持不变。

示例: myapp-ds27dh7271aah175.westus-01.azurewebsites.net

有关更多详细信息,请参阅应用服务资源的唯一默认主机名

重要

专用终结点适用于托管在以下应用服务计划上的 Windows 和 Linux 应用(无论是否容器化):基本、标准、PremiumV2、PremiumV3、IsolatedV2、函数高级(有时称为“弹性高级”计划)。

可以为应用服务应用使用专用终结点,以允许位于专用网络中的客户端通过 Azure 专用链接安全地访问应用。 专用终结点使用 Azure 虚拟网络地址空间的 IP 地址。 专用网络上客户端与应用之间的网络流量将通过虚拟网络以及 Microsoft 主干网络上的专用链接,因此不会从公共 Internet 公开。

对应用使用专用终结点的目的如下:

  • 通过配置专用终结点来帮助保护 Web 应用,并禁用公用网络访问以避免公开。
  • 从使用 VPN 或 ExpressRoute 专用对等互连连接到虚拟网络的本地网络安全地连接到应用。
  • 避免从虚拟网络泄露任何数据。

概念概述

专用终结点是在虚拟网络的子网中为应用服务应用提供的特殊网络接口 (NIC)。 为应用创建专用终结点时,它会在专用网络上的客户端与应用之间提供安全连接。 从虚拟网络的 IP 地址范围为专用终结点分配 IP 地址。 专用终结点与应用之间的连接使用安全的专用链接。 专用终结点仅用于到应用的传入流量。 传出流量不使用此专用终结点。 可以通过虚拟网络集成功能将传出流量注入到你的网络中的另一个子网。

应用的每个槽都将进行单独配置。 每个槽最多可以插入 100 个专用终结点。 不能在槽之间共享专用终结点。 槽的子资源名称为 sites-<slot-name>

在其中插入专用终结点的子网中可以有其他资源,不需要是专用的空子网。 你还可以在与应用不同的区域中部署专用终结点。

注意

虚拟网络集成功能不能使用与专用终结点相同的子网,这是虚拟网络集成功能的局限性。

从安全角度来看:

  • 专用终结点和公共访问可以共存于应用上。 有关详细信息,请参阅访问限制概述
  • 为应用启用专用终结点时,请确保禁用公用网络访问以确保隔离。
  • 可以在其他虚拟网络和子网(包括其他区域中的虚拟网络)中启用多个专用终结点。
  • 不会针对通过专用终结点的流量评估应用的访问限制规则。
  • 可以通过删除目标为标记“Internet”或“Azure 服务”的所有网络安全组 (NSG) 规则来消除虚拟网络中的数据外泄风险。

在应用的 Web HTTP 日志中,可找到客户端源 IP。 此功能是使用 TCP 代理协议实现的,它将客户端 IP 属性转发到应用。 有关详细信息,请参阅使用 TCP 代理 v2 获取连接信息

应用服务应用专用终结点全局概述

DNS

为应用服务应用使用专用终结点时,请求的 URL 必须与应用的名称匹配。 默认情况下 <app-name>.azurewebsites.net。 使用唯一的默认主机名时,应用名称的格式为 <app-name>-<random-hash>.<region>.azurewebsites.net。 在下面的示例中,mywebapp 也可以表示完整的区域化唯一主机名。

默认情况下,如果没有专用终结点,则 Web 应用的公共名称是群集的规范名称。 例如,名称解析是:

名称 类型
mywebapp.azurewebsites.net CNAME clustername.azurewebsites.windows.net
clustername.azurewebsites.windows.net CNAME cloudservicename.cloudapp.net
cloudservicename.cloudapp.net A 40.122.110.154

部署专用终结点时,将更新 DNS 条目以指向规范名称 mywebapp.privatelink.azurewebsites.net。 例如,名称解析是:

名称 类型 备注
mywebapp.azurewebsites.net CNAME mywebapp.privatelink.azurewebsites.net
mywebapp.privatelink.azurewebsites.net CNAME clustername.azurewebsites.windows.net
clustername.azurewebsites.windows.net CNAME cloudservicename.cloudapp.net
cloudservicename.cloudapp.net A 40.122.110.154 <--此公共 IP 不是专用终结点,你收到 403 错误

必须设置专用 DNS 服务器或 Azure DNS 专用区域。 要进行测试,可以修改测试计算机的主机条目。 需要创建的 DNS 区域是:privatelink.azurewebsites.net。 使用 A 记录和专用终结点 IP 为应用注册记录。 例如,名称解析是:

名称 类型 备注
mywebapp.azurewebsites.net CNAME mywebapp.privatelink.azurewebsites.net <--Azure 在 Azure 公共 DNS 中创建此 CNAME 条目,以将应用地址指向专用终结点地址
mywebapp.privatelink.azurewebsites.net A 10.10.10.8 <--在 DNS 系统中管理此条目以指向专用终结点 IP 地址

在配置此 DNS 后,可以通过默认名称 mywebapp.azurewebsites.net 以私密方式访问应用。 必须使用此名称,因为为 *.azurewebsites.net 颁发了默认证书。

如果需要使用某个自定义 DNS 名称,则必须在应用中添加该自定义名称,并且必须使用公共 DNS 解析验证该自定义名称,就像验证任何自定义名称一样。 有关详细信息,请参阅自定义 DNS 验证

对于 Kudu 控制台或 Kudu REST API(例如,使用 Azure DevOps 服务自托管代理进行部署),必须在 Azure DNS 专用区域或自定义 DNS 服务器中创建两个指向专用终结点 IP 的记录。 第一个适用于应用,第二个适用于应用的 SCM。

名称 类型
mywebapp.privatelink.azurewebsites.net A PrivateEndpointIP
mywebapp.scm.privatelink.azurewebsites.ne A PrivateEndpointIP

应用服务环境 v3 特殊注意事项

要为托管在 IsolatedV2 计划(应用服务环境 v3)的应用启用专用终结点,必须启用应用服务环境级别的专用终结点支持。 可以通过应用服务环境配置窗格中的 Azure 门户或以下 CLI 激活该功能:

az appservice ase update --name myasename --allow-new-private-endpoint-connections true

特定要求

如果虚拟网络与应用位于不同的订阅中,则必须确保为 Microsoft.Web 资源提供程序注册了使用虚拟网络的订阅。 你可以按照此文档显式注册该提供程序,但在订阅中创建第一个 Web 应用时也会自动注册该提供程序。

定价

有关定价详细信息,请参阅 Azure 专用链接定价

限制

  • 将弹性高级计划中的 Azure 函数与专用终结点配合使用时,若要在 Azure 门户中运行或执行函数,必须具有直接网络访问权限,否则会收到 HTTP 403 错误。 换句话说,你的浏览器必须能够访问专用终结点,以便从 Azure 门户执行该函数。
  • 最多可以将 100 个专用终结点连接到特定应用。
  • 远程调试功能无法通过专用终结点获得。 建议将代码部署到槽并在那里对其进行远程调试。
  • FTP 访问是通过入站公共 IP 地址提供的。 专用终结点不支持对应用的 FTP 访问。
  • 专用终结点不支持基于 IP 的 SSL。
  • 使用专用终结点配置的应用无法接收来自启用了 Microsoft.Web 服务终结点的子网的公共流量,并且无法使用基于服务终结点的访问限制规则
  • 专用终结点命名必须遵循为类型“Microsoft.Network/privateEndpoints”的资源定义的规则。 可在此处找到命名规则。

我们会定期改进 Azure 专用链接功能和专用终结点。要了解有关限制的最新信息,请查看此文

后续步骤