对应用服务应用使用专用终结点
注意
从 2024 年 6 月 1 日开始,所有新创建的应用服务应用都可以选择生成唯一的默认主机名,命名约定为 <app-name>-<random-hash>.<region>.chinacloudsites.cn
。 现有应用名称将保持不变。
示例: myapp-ds27dh7271aah175.westus-01.chinacloudsites.cn
重要
专用终结点适用于托管在以下应用服务计划上的 Windows 和 Linux 应用(无论是否容器化):基本、标准、PremiumV2、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>.chinacloudsites.cn
。 使用唯一的默认主机名时,应用名称的格式为 <app-name>-<random-hash>.<region>.chinacloudsites.cn
。 在下面的示例中,mywebapp 也可以表示完整的区域化唯一主机名。
默认情况下,如果没有专用终结点,则 Web 应用的公共名称是群集的规范名称。 例如,名称解析是:
名称 | 类型 | 值 |
---|---|---|
mywebapp.chinacloudsites.cn | CNAME | clustername.azurewebsites.chinacloudapi.cn |
clustername.azurewebsites.chinacloudapi.cn | CNAME | cloudservicename.chinacloudapp.cn |
cloudservicename.chinacloudapp.cn | A | 40.122.110.154 |
当你部署专用终结点时,我们会更新 DNS 条目,使之指向规范名称 mywebapp.privatelink.chinacloudsites.cn。 例如,名称解析是:
名称 | 类型 | 值 | 备注 |
---|---|---|---|
mywebapp.chinacloudsites.cn | CNAME | mywebapp.privatelink.chinacloudsites.cn | |
mywebapp.privatelink.chinacloudsites.cn | CNAME | clustername.azurewebsites.chinacloudapi.cn | |
clustername.azurewebsites.chinacloudapi.cn | CNAME | cloudservicename.chinacloudapp.cn | |
cloudservicename.chinacloudapp.cn | A | 40.122.110.154 | <--此公共 IP 不是专用终结点,你收到 403 错误 |
必须设置专用 DNS 服务器或 Azure DNS 专用区域。 要进行测试,可以修改测试计算机的主机条目。 需要创建的 DNS 区域是:privatelink.chinacloudsites.cn。 使用 A 记录和专用终结点 IP 为应用注册记录。 例如,名称解析是:
名称 | 类型 | 值 | 备注 |
---|---|---|---|
mywebapp.chinacloudsites.cn | CNAME | mywebapp.privatelink.chinacloudsites.cn | <--Azure 在 Azure 公共 DNS 中创建此 CNAME 条目,以将应用地址指向专用终结点地址 |
mywebapp.privatelink.chinacloudsites.cn | A | 10.10.10.8 | <--在 DNS 系统中管理此条目以指向专用终结点 IP 地址 |
完成此 DNS 配置后,可以通过默认名称 mywebapp.chinacloudsites.cn 以私密方式访问应用。 必须使用此名称,因为为 *.chinacloudsites.cn 颁发了默认证书。
如果需要使用某个自定义 DNS 名称,则必须在应用中添加该自定义名称,并且必须使用公共 DNS 解析验证该自定义名称,就像验证任何自定义名称一样。 有关详细信息,请参阅自定义 DNS 验证。
对于 Kudu 控制台或 Kudu REST API(例如,使用 Azure DevOps 服务自托管代理进行部署),必须在 Azure DNS 专用区域或自定义 DNS 服务器中创建两个指向专用终结点 IP 的记录。 第一个适用于应用,第二个适用于应用的 SCM。
名称 | 类型 | 值 |
---|---|---|
mywebapp.privatelink.chinacloudsites.cn | A | PrivateEndpointIP |
mywebapp.scm.privatelink.chinacloudsites.cn | 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 专用链接功能和专用终结点。要了解有关限制的最新信息,请查看此文。
后续步骤
- 要通过门户为应用部署专用终结点,请参阅如何通过 Azure 门户以私密方式连接到 Web 应用
- 要使用 Azure CLI 为应用部署专用终结点,请参阅如何通过 Azure CLI 以私密方式连接到应用
- 要使用 PowerShell 为应用部署专用终结点,请参阅如何通过 PowerShell 以私密方式连接到应用
- 要使用 Azure 模板为应用部署专用终结点,请参阅如何通过 Azure 模板以私密方式连接到应用
- 端到端示例,如何通过 ARM 模板使用虚拟网络注入和专用终结点将前端应用连接到受保护的后端应用,请参阅此快速入门
- 端到端示例,如何通过 terraform 使用虚拟网络集成和专用终结点将前端应用连接到受保护的后端应用,请参阅此示例