我不确定我是否遗漏了一些简单的东西,或者我是否想要做不可能的事情 .
我使用Web移动应用程序服务模型在Azure上部署了Tomcat站点 . 这不是VM . 我希望能够将防火墙规则(网络安全组)应用于此App Service .
以下是我在资源组中所做的事情:
-
采用我现有的App Service(Tomcat)并将其升级到S1机器大小 .
-
使用默认设置创建了VNET . 这包括创建名为"default"的子网 . 所有地址空间建议都保留在Azure默认提示下 .
-
使用App Service上的网络设置刀片选择刚刚创建的VNET .
-
创建了一个网络安全组 - 添加了一个传入规则,以拒绝任何来源的HTTP端口80 .
-
上面使用默认子网创建的关联NSG
-
等待传播的一切
-
经过测试,点击了HTTP端口80上的App Service,并返回了结果 .
这不是我希望看到的 . 要调试这个,我测试过:
-
创建Tomcat虚拟机
-
在VM网络刀片上,将VM与"default"子网相关联,并专门从VM中删除了网络安全组(将其保留在子网上 - 只是确保它未明确连接到VM)
-
经过测试的对虚拟机的HTTP访问 - 被拒绝的流量
-
对App Service的测试HTTP访问 - 仍允许流量
-
将网络安全组规则更改为允许
-
测试了对VM的HTTP访问和允许的流量
如何使App Service以虚拟机的方式使用网络安全组?我是否遗漏了如何在App Service上配置子网?还有另一种方法可以将NSG与App Service相关联吗?
我没有预算/需要 Build ASE . 我需要做的就是在我的App Service前放置一个防火墙来阻止我不想看到的端口 .
谢谢 .
1 回答
你正试图做不可能的事 . 请记住,App Service中的Web应用程序必须通过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) . 否则,您需要App Service Environment(ASE)或Internal Load Balancer App Service Environment(ILB ASE) .
它们都直接位于VNET的子网中,因此您可以使用NSG控制流量 .