如何将 Azure Web 应用程序 (App Service/Website) 连接到网络安全组?

How to connect Azure Web Application (App Service/Website) to Network Security Group?

我不确定我是否遗漏了一些简单的东西,或者我是否正在尝试做不可能的事情。

我有一个 Tomcat 站点部署在 Azure 上,使用 Web+移动应用服务模型。这不是虚拟机。我希望能够将防火墙规则(网络安全组)应用到此应用服务。

这是我在我的资源组中所做的:

  1. 采用我现有的应用服务 (Tomcat) 并将其升级到 S1 机器大小。
  2. 使用默认设置创建了 VNET。这包括创建一个名为 "default" 的子网。所有地址 space 建议都保留在 Azure 默认提示中。
  3. 将应用服务上的网络设置 blade 用于 select 我刚刚创建的 VNET。
  4. 创建了网络安全组 - 添加了传入规则以拒绝来自任何来源的 HTTP 端口 80。
  5. 上面使用默认子网创建的关联 NSG
  6. 等待一切传播
  7. 测试了在 HTTP 端口 80 上访问应用服务,并返回了结果。

这不是我希望看到的。为了调试这个我测试了:

  1. 创建一个Tomcat虚拟机
  2. 在 VM 网络 blade 上,将 VM 与 "default" 子网相关联,并专门从 VM 中删除了网络安全组(将其保留在子网上 - 只是确保它不是明确的附加到虚拟机)
  3. 已测试对 VM 的 HTTP 访问 - 流量被拒绝
  4. 已测试对应用服务的 HTTP 访问 - 流量仍然允许
  5. 将网络安全组规则更改为允许
  6. 已测试对 VM 的 HTTP 访问和允许的流量

如何让应用服务像虚拟机一样使用网络安全组?我是否在某处遗漏了如何在 App Service 上配置子网?是否有其他方法将 NSG 与应用服务相关联?

我没有 budget/need 来构建 ASE。我需要做的就是在我的应用服务前面放置一个防火墙,以阻止我不想看到使用的端口。

谢谢。

你正在尝试做不可能的事情。请记住,应用程序服务中的 Web 应用程序必须通过 VPN 连接到 VNET,互联网和 80/TCP443/TCP 之间没有任何东西-您可以控制的租户应用服务。

Client ---> 80/TCP Frontend layer ---> 80/TCP Web App ---> Point-to-site VPN ---> VNET ---> NSG_associated_with_subnet

所以,不行。

看看是否<ipSecurity> works for your use case (my other answer here provides a quick sample - )。否则,您需要应用服务环境 (ASE) 或内部负载均衡器应用服务环境 (ILB ASE)。

它们都直接位于 VNET 中的子网中,因此您可以使用 NSG 控制流量。