【Azure云】使用Azure上的应用程序网关和API管理保护API

视频号

微信公众号

知识星球

Chinese, Simplified

随着越来越多的工作负载遵循API-first方法进行设计,以及互联网上对web应用程序的威胁数量和严重程度不断增加,制定保护API的安全策略至关重要。实现API安全的一个步骤是通过使用网关路由模式来保护网络流量。除了支持灵活的路由规则外,您还可以使用网关来限制流量源位置和流量质量。本文介绍了如何使用Azure应用网关和Azure API管理来保护API访问。

架构


本文不涉及应用程序的底层服务,如应用程序服务环境、Azure SQL托管实例和Azure Kubernetes服务。图中的这些部分只展示了作为更广泛的解决方案可以做些什么。本文特别讨论了阴影区域、API管理和应用程序网关。

显示应用程序网关和API管理如何保护API的图表。

Download a Visio file of this architecture.

数据流

  1. 应用程序网关接收其子网的网络安全组(NSG)允许的HTTP请求。
  2. 然后,应用程序网关上的Web应用程序防火墙(WAF)根据WAF规则(包括Geomatch筛选)检查请求。如果请求有效,则继续请求。
  3. 应用程序网关设置一个URL代理机制,将请求发送到适当的后端池。例如,根据API调用的URL格式:
    1. URL格式类似api.<some-domain>/external/* 可以到达后端与请求的API进行交互。
    2. 格式化为api的调用api.<some-domain>/* 进入死端(下沉池),这是一个没有目标的后端池。
  4. 此外,应用程序网关在api下接受和代理来自同一Azure虚拟网络中资源的内部调用<某些域>/internal/*。
  5. 最后,在API管理层,API被设置为接受以下模式下的调用:
    1. api.<some-domain>/external/*
    2. api.<some-domain>/internal/*
      在这种情况下,API管理使用两种类型的IP地址,公共和私有。公共IP地址用于端口3443上的内部通信,以及用于外部虚拟网络配置中的运行时API流量。当API管理将请求发送到公共的互联网交换后端时,它会显示一个公共IP地址作为请求的来源。有关更多信息,请参阅VNet中API管理服务的IP地址。
  6. 应用程序网关级别的路由规则正确地重定向门户下的用户<一些域>/*到开发人员门户,以便开发人员可以从内部和外部环境管理API及其配置。

组件

  • Azure虚拟网络使许多类型的Azure资源能够通过互联网和本地网络进行私人通信。
  • Azure应用程序网关是一个web流量负载均衡器,用于管理web应用程序的流量。这种类型的路由被称为应用层(OSI第7层)负载平衡。它承载一个Web应用程序防火墙(WAF),以防止常见的基于Web的攻击向量。
  • Azure API管理是针对所有环境的API的混合、多云管理平台。API管理为现有后端服务创建一致的现代API网关。

建议


此解决方案的重点是实现整个解决方案,并测试从API管理虚拟网络内部和外部对API的访问。有关API管理虚拟网络集成过程的更多信息,请参阅将API管理与应用网关集成在内部VNET中。

要在后端与专用资源通信,应用程序网关和API管理必须与资源位于同一虚拟网络中,或者位于对等虚拟网络中。

  • 私有的内部部署模型允许API管理连接到现有的虚拟网络,使其可以从该网络上下文内部访问。若要启用此功能,请部署开发人员或高级API管理层。
  • 管理Azure密钥保管库中的证书和密码。
  • 要个性化与服务的交互,可以使用CNAME条目。

选择


您可以使用其他服务提供类似级别的防火墙和Web应用程序防火墙(WAF)保护:

  • Azure前门
  • Azure防火墙
  • 合作伙伴解决方案,如Barracuda
  • Azure市场中提供的其他解决方案
     

注意事项


可靠性


Azure应用程序网关始终以高度可用的方式部署,无论实例数量如何。为了避免区域故障的影响,您可以将应用程序网关配置为跨多个可用区域。有关更多信息,请参阅自动缩放和高可用性。

为API管理服务组件启用区域冗余,以提供弹性和高可用性。区域冗余在物理上分离的区域中跨数据中心复制API管理网关和控制平面,使其对区域故障具有弹性。API管理高级层需要支持可用性区域。

API管理还支持多区域部署,这可以在一个区域离线时提高可用性。有关详细信息,请参见多区域部署。在这种拓扑结构中,每个区域也有一个应用程序网关很重要,因为应用程序网关是一个区域服务。

安全


有关应用程序网关安全性的更多信息,请参阅应用程序网关的Azure安全基线。

有关API管理安全性的更多信息,请参阅API管理的Azure安全基线。

Azure DDoS防护与应用程序设计最佳实践相结合,提供了增强的DDoS缓解功能,以提供更多抵御DDoS攻击的防御。您应该在任何外围虚拟网络上启用Azure DDOS保护。

成本优化


此体系结构的成本取决于配置方面,如:

  • 服务层
  • 可扩展性,即服务为支持给定需求而动态分配的实例数量
  • 此体系结构是连续运行还是每月仅运行几个小时


评估完这些方面后,请转到Azure定价计算器来估计定价。

性能效率


应用程序网关是该体系结构的入口,WAF功能需要为每个请求分析提供额外的处理能力。为了允许应用程序网关在现场扩展其计算能力,启用自动缩放非常重要。有关详细信息,请参见指定自动缩放。按照产品文档中的建议确定应用程序网关的子网大小。这样可以确保子网足够大,以支持完全扩展。

若要支持高度并发的场景,请启用API管理自动缩放。自动缩放扩展了API管理功能,以应对不断增长的传入请求。有关详细信息,请参阅自动缩放Azure API管理实例。

部署此场景


此场景在具有内部API管理和Web应用程序的应用程序网关的Azure Quickstart库发布中演示。

Next steps

Design your APIs following good Web API design guidelines and implement them using good Web API implementation practices.

本文地址
https://architect.pub
SEO Title
Protect APIs with Application Gateway and API Management on Azure