Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
本文介绍如何使用 Azure 防火墙锁定从应用服务应用到后端 Azure 资源或其他网络资源的出站流量。 此配置有助于防止数据泄露或恶意程序植入风险。
默认情况下,应用服务应用可以向公共 Internet 发出出站请求(例如,从 NPM.org 安装所需的 Node.js 包时)。 如果应用与 Azure 虚拟网络集成,可以通过网络安全组出站流量控制在有限范围内,例如目标 IP 地址、端口和协议。 使用 Azure 防火墙可以更细粒度地控制出站流量,并且可以根据 Azure 网络安全中的实时威胁情报筛选流量。 你可以跨订阅和虚拟网络集中创建、实施和记录应用程序与网络连接策略(请参阅 Azure 防火墙功能)。
有关应用服务中的详细网络概念和安全性改进,请参阅网络功能和应用服务从零到优秀,第 6 部分:保护 Web 应用。
- 为应用启用区域虚拟网络集成。
- 验证已启用“路由全部”。 默认启用此设置,该设置要求应用服务通过集成虚拟网络路由所有出站流量。 如果将其禁用,则仅到专用 IP 地址的流量通过虚拟网络路由。
- 如果还想通过 Azure 防火墙路由对后端 Azure 服务的访问,请在集成虚拟网络中的应用服务子网上禁用所有服务终结点。 配置 Azure 防火墙后,到 Azure 服务的出站流量将通过防火墙而不是服务终结点进行路由。
若要将防火墙部署到集成虚拟网络,需要名为 AzureFirewallSubnet 的子网。
- 在 Azure 门户中,导航到与应用集成的虚拟网络。
- 在左侧导航中,选择“子网”>“+ 子网” 。
- 在“名称”中,请键入“AzureFirewallSubnet” 。
- 子网地址范围,接受默认值或指定大小至少为 /26 的范围。
- 选择“保存”。
在 Azure 门户菜单或“主页”页上,选择“创建资源” 。
在搜索框中键入“防火墙”,然后按 Enter。
选择“防火墙”,然后选择“创建” 。
在“创建防火墙”页中,如下表所示配置防火墙:
设置 值 资源组 与集成虚拟网络相同的资源组。 名称 首选名称 区域 与集成虚拟网络相同的区域。 防火墙策略 选择“新增”创建策略。 虚拟网络 选择集成虚拟网络。 公共 IP 地址 选择现有地址,或选择“新增”创建地址。 单击“查看 + 创建”。
再次选择“创建”。
需要花费几分钟时间来完成部署。
部署完成后,转到资源组,然后选择防火墙。
在防火墙的“概述”页中,复制专用 IP 地址。 专用 IP 地址将用作虚拟网络路由规则中的下一个跃点地址。
创建虚拟网络时,Azure 会自动为其每个子网创建默认路由表,并将系统默认路由添加到该表。 在此步骤中,你将创建用户定义的路由表,将所有流量路由到防火墙,然后将其与集成虚拟网络中的应用服务子网相关联。
在 Azure 门户菜单上,选择“所有服务”或在任何页面中搜索并选择“所有服务” 。
在“网络”下,选择“路由表”。
选择 添加 。
配置路由表,如下例所示:
确保选中创建的防火墙所在的区域。
选择“查看 + 创建”。
选择“创建”。
部署完成后,选择“转到资源”。
在左侧导航中,选择“路由”>“添加” 。
配置新路由,如下表所示:
设置 值 地址前缀 0.0.0.0/0 下一跃点类型 虚拟设备 下一跃点地址 你在 2.部署防火墙并获取其 IP 中复制的防火墙专用 IP 地址。 在左侧导航中,选择“子网”>“关联” 。
在“虚拟网络”中,选择你的集成虚拟网络。
在“子网”中,选择应用服务子网。
选择“确定”。
来自应用的出站流量现通过集成虚拟网络路由到防火墙。 若要控制应用服务出站流量,请将应用程序规则添加到防火墙策略。
导航到防火墙的概述页面并选择其防火墙策略。
在防火墙策略页的左侧导航中,选择“应用程序规则”>“添加规则集合” 。
在“规则”中,添加网络规则并以应用服务子网作为源地址,然后指定 FQDN 目标。 在以下屏幕截图中,目标 FQDN 设为
contoso.com
。Nota
你也可以直接在子网中使用应用的专用 IP 地址,而不是指定应用服务子网作为源地址。 你可以使用
WEBSITE_PRIVATE_IP
环境变量在子网中查找你的应用的专用 IP 地址。选择 添加 。
验证配置的一种简单方法是使用应用的 SCM 调试控制台中的 curl
命令来验证出站连接。
在浏览器中导航到
https://<app-name>.scm.chinacloudsites.cn/DebugConsole
。在控制台中,使用与配置的应用程序规则匹配的 URL 运行
curl -s <protocol>://<fqdn-address>
。 以下截图是一个网站示例,显示了 API 的成功响应和一个 IP 地址。使用与配置的应用程序规则不匹配的 URL 再次运行
curl -s <protocol>://<fqdn-address>
。 在以下屏幕截图中,你没有收到任何响应,这表明防火墙已阻止来自应用的出站请求。
Sugerencia
由于这些出站请求要通过防火墙,因此可以通过为防火墙启用诊断日志记录(启用 AzureFirewallApplicationRule)在防火墙日志中捕获它们。
如果在启用诊断日志的情况下运行 curl
命令,则可在防火墙日志中查找到这些命令。