Azure 应用程序网关是一种 Web 流量负载均衡器,可用于管理 Web 应用程序的流量。 作为网络基础结构中的关键组件,应用程序网关处理传入的请求并将其路由到后端服务,因此必须实施适当的安全措施,以防止威胁,并确保符合组织安全要求。
本文提供有关如何最好地保护 Azure 应用程序网关部署的指导。
网络安全
应用程序网关的网络安全性涉及控制流量流、实现适当的分段,以及保护客户端和后端服务之间的通信。
部署到专用子网:将应用程序网关放置在虚拟网络中的专用子网中,以提供网络隔离并启用精细流量控制。 这种分离有助于包含潜在的安全事件,并允许目标安全策略。
应用网络安全组:使用网络安全组(NSG)通过端口、协议、源 IP 地址或目标 IP 地址限制流量。 创建 NSG 规则以限制对所需端口的访问,并阻止从不受信任的网络访问管理端口。 有关详细信息,请参阅网络安全组。
配置专用终结点:当支持建立专用访问点时,为应用程序网关部署专用终结点,以消除对公共 Internet 的公开。 这可以通过在虚拟网络中保留流量来减少攻击面。 有关详细信息,请参阅配置 Azure 应用程序网关专用链接(预览版)。
启用 DDoS 防护:在托管应用程序网关的虚拟网络上部署 Azure DDoS 网络保护,以防止大规模 DDoS 攻击。 这提供了增强的 DDoS 缓解功能,包括自适应优化和攻击通知。 有关详细信息,请参阅 使用 Azure DDoS 网络保护保护应用程序网关。
实现适当的基础结构配置:遵循 Azure 建议的基础结构设置,确保使用安全最佳做法部署应用程序网关。 这包括适当的子网大小调整、路由表配置和网络依赖项。 有关详细信息,请参阅应用程序网关基础结构配置。
Web 应用程序保护
Web 应用程序防火墙为针对应用程序的常见 Web 漏洞和攻击提供基本保护。
部署 Web 应用程序防火墙:在应用程序网关上启用 WAF,以防止 OWASP 前 10 种威胁,包括 SQL 注入、跨站点脚本和其他常见 Web 攻击。 在检测模式下开始了解流量模式,然后切换到“防护”模式以主动阻止威胁。 有关详细信息,请参阅 什么是 Azure 应用程序网关上的 Azure Web 应用程序防火墙?。
配置自定义 WAF 规则:创建自定义规则以解决针对应用程序的特定威胁,包括速率限制、IP 阻止和地理筛选。 自定义规则提供超出托管规则集的目标保护。 有关详细信息,请参阅 “创建和使用 v2 自定义规则”。
启用机器人保护:使用机器人保护托管规则集识别和阻止恶意机器人,同时允许来自搜索引擎和监视工具的合法流量。 有关详细信息,请参阅 配置机器人保护。
实现速率限制:配置速率限制规则,通过控制指定时间范围内允许的单个 IP 地址发出的请求数,防止滥用和 DDoS 攻击。 有关详细信息,请参阅速率限制概述。
标识和访问管理
适当的身份验证和授权控制可确保只有经过授权的用户和系统才能访问应用程序网关及其配置。
配置相互身份验证:实现相互 TLS 身份验证以验证客户端证书,为敏感应用程序提供额外的安全层。 这可确保客户端和服务器相互进行身份验证。 有关详细信息,请参阅 通过门户配置应用程序网关的相互身份验证。
使用 Azure RBAC 进行管理访问:应用基于角色的访问控制来限制谁可以修改应用程序网关配置。 将所需的最低权限分配给用户和服务帐户。 有关详细信息,请参阅 Azure 内置角色。
数据保护
应用程序网关的数据保护侧重于保护传输中的数据并正确管理证书和机密。
启用 TLS 加密:配置 TLS 终止以加密客户端与应用程序网关之间的传输中的数据。 确保使用最新版本来防范已知漏洞。 有关详细信息,请参阅应用程序网关的 TLS 终止和端到端 TLS 概述。
在 Azure Key Vault 中存储证书:使用 Azure Key Vault 安全地存储和管理 TLS 证书,而不是将它们嵌入配置文件中。 这样就可以自动轮换证书并集中管理机密。 有关详细信息,请参阅使用 Key Vault 证书实现 TLS 终止。
配置安全证书管理:根据定义的计划或在即将过期时在 Azure Key Vault 中设置证书的自动轮换。 确保证书生成遵循具有足够密钥大小和适当有效期的安全标准。 有关详细信息,请参阅 使用 Azure 门户配置使用 TLS 终止的应用程序网关。
实现 HTTP 到 HTTPS 重定向:配置从 HTTP 到 HTTPS 的自动重定向,以确保加密所有流量。 这可以防止敏感数据以纯文本形式传输。 有关详细信息,请参阅 使用 Azure 门户创建具有 HTTP 到 HTTPS 重定向的应用程序网关。
配置端到端 TLS:在应用程序网关和后端服务器之间启用 TLS 加密,以便在整个通信路径中实现最大数据保护。 有关详细信息,请参阅应用程序网关的 TLS 终止和端到端 TLS 概述。
监视和威胁检测
日志记录和监视提供应用程序网关作的可见性,并帮助检测潜在的安全威胁。
启用诊断日志记录:配置 Azure 资源日志以捕获有关应用程序网关作的详细信息,包括访问模式、性能指标和安全事件。 将这些日志发送到 Log Analytics 工作区或存储帐户进行分析。 有关详细信息,请参阅 应用程序网关的后端运行状况和诊断日志。
配置自定义运行状况探测:设置自定义运行状况探测,以便比默认探测更有效地监视后端服务器运行状况。 自定义探测可以检测应用程序级问题,并确保流量仅达到正常运行的服务器。 有关详细信息,请参阅 应用程序网关运行状况探测概述。
设置监视和警报:基于应用程序网关指标和日志创建警报,以检测异常流量模式、身份验证尝试失败或可能指示安全问题的性能异常。 使用 Azure Monitor 建立基线性能并确定偏差。
实现集中式日志管理:将应用程序网关日志与安全信息和事件管理(SIEM)系统集成,以关联基础结构中的事件,并启用自动威胁检测和响应。
监视后端运行状况:使用后端运行状况功能持续监视后端服务器的状态,并快速识别潜在的安全或可用性问题。 有关详细信息,请参阅 通过门户查看后端运行状况。
资产管理
资产管理可确保正确监视应用程序网关配置并符合组织策略。
实现 Azure Policy 治理:使用 Azure Policy 审核和强制实施应用程序网关部署中的配置。 创建防止不安全配置的策略,并确保符合安全标准。 有关详细信息,请参阅 Azure 网络服务的 Azure Policy 内置定义。
监视配置符合性:使用 Microsoft Defender for Cloud 持续监视应用程序网关配置,并在检测到与安全基线偏差时接收警报。 尽可能设置自动修正,以保持一致的安全状况。