我的Azure设置涉及两个Web应用程序和一个PostgreSQL服务器。 Web应用程序之一是Node前端,应该对公众开放。另一个是Python后端,它接收来自Node应用程序的请求并与Postgres数据库进行通信。 Python应用程序包含HTTP终结点,任何人都不应使用它。
建议使用什么方法来保护此Python应用程序免受不必要的流量攻击?我应该通过某种Azure配置彻底阻止流量,还是仅对HTTP请求进行身份验证?
我尝试过仅通过Azure配置允许Node应用程序的出站IP与Python应用程序通信。但是,这似乎使Python应用程序无法与数据库进行通信,此外,我甚至无法使用此配置进行SSH或查看其日志。
答案 0 :(得分:1)
这实际上取决于您的要求。如果没有必要选择成本,则保护python应用程序的一种方法是将其放在应用程序服务环境(ASE)中。这是Azure Web Apps的隔离实例,您可以在Internal Load Balancer后面进行保护。此解决方案将为您提供更高的安全性,因为您可以启用网络安全组来阻止Internet流量,并且可以将Node App设置为通过VPN与VNet进行通信。对于PaaS Web App而言,这种方法也是较昂贵的方法之一。
其他选项包括将“后端” python设置为IaaS(但必须管理更新),或者您可以使用App Gateway或KEMP之类的第三方WAF设备(它们具有200 MBps的设备是免费的)以保护您的应用。
最后,您可以看一下可伸缩性设计,在其中将队列或某些其他中介置于两个Web应用程序之间。这将允许独立缩放,并使您有机会锁定Python应用程序,使其仅接受来自队列的消息,而不接受前端的消息。可以看到一个示例拱门here(您可以在此拱门中为Python应用子功能)