如何将Azure Web应用程序(应用程序服务/网站)连接到网络安全组?

时间:2016-09-22 20:50:39

标签: azure firewall azure-web-app-service network-security-groups

我不确定我是否遗漏了一些简单的东西,或者我是否想要做不可能的事。

我使用Web +移动应用服务模型在Azure上部署了Tomcat站点。这不是VM。我希望能够将防火墙规则(网络安全组)应用于此App Service。

以下是我在资源组中所做的事情:

  1. 取得现有的应用服务(Tomcat)并将其升级为S1机器尺寸。
  2. 使用默认设置创建了VNET。这包括创建名为“default”的子网。所有地址空间建议都保留在Azure默认提示下。
  3. 使用App Service上的网络设置刀片选择刚刚创建的VNET。
  4. 创建了一个网络安全组 - 添加了一个传入规则以拒绝来自任何来源的HTTP端口80。
  5. 上面使用默认子网
  6. 创建的关联NSG
  7. 等待所有事情传播
  8. 在HTTP端口80上测试了应用服务,并返回了结果。
  9. 这不是我希望看到的。为了调试这个,我测试了:

    1. 创建Tomcat虚拟机
    2. 在VM网络刀片上,将VM与“默认”子网关联,并专门从VM中删除网络安全组(将其保留在子网上 - 只是确保它未明确连接到VM)
    3. 经过测试的对虚拟机的HTTP访问 - 流量被拒绝
    4. 经过测试的对App Service的HTTP访问 - 仍然允许流量
    5. 将网络安全组规则更改为允许
    6. 经过测试的对虚拟机的访问和允许的流量
    7. 如何让App Service按照虚拟机的方式使用网络安全组?我是否遗漏了如何在App Service上配置子网?还有另一种方法可以将NSG与App Service相关联吗?

      我没有预算/需要建立ASE。我需要做的就是在我的App Service前放置一个防火墙来阻止我不想看到的端口。

      感谢。

1 个答案:

答案 0 :(得分:2)

你正在努力做到不可能。请记住,App Service中的Web Apps必须通过VPN连接到VNET,互联网与多租户中的 80 / TCP 443 / TCP 之间没有任何关系您可以控制的应用服务。

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

所以,不要去。

查看<ipSecurity>是否适用于您的用例(我的其他答案提供了一个快速示例 - https://stackoverflow.com/a/38808091/4148708)。否则,您需要应用服务环境(ASE)或内部负载均衡器应用服务环境(ILB ASE)。

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