保护你的 Azure 流量管理器部署

Azure 流量管理器是一种基于 DNS 的流量负载均衡器,用于跨全球Azure区域分配流量,为应用程序提供高可用性和响应式性能。 由于流量管理器控制如何将客户端路由到服务终结点,因此保护流量管理器配置对于防止错误路由、未经授权的更改和监视可能影响应用程序可用性的差距至关重要。

本文提供有关Azure 流量管理器的安全建议。 有关Azure网络安全服务的概述及其协同工作原理,请参阅 什么是Azure网络安全?

本文中的安全建议实施零信任原则:“显式验证”、“使用最低特权访问”和“假设违规”。 有关全面的零信任指南,请参阅 零信任指南中心

网络安全

流量管理器的网络安全侧重于确保运行状况探测请求能够到达你的终结点,并且基于 DNS 的路由配置能够防止出现非预期的流量路由模式。 由于流量管理器在 DNS 层而不是代理上运行,因此网络安全以探测访问和终结点配置为中心。

  • 允许流量管理器运行状况探测流量通过防火墙:对于 Azure 托管的终端节点,请配置网络安全组 (NSG) 或 Azure 防火墙规则,以允许来自流量管理器运行状况探测、使用 AzureTrafficManager 服务标记的入站流量。 对于非 Azure 终结点,在终结点的防火墙中允许列出已发布的流量管理器探测 IP 范围。 如果探测被阻止,流量管理器会将终结点标记为不正常,并将流量从其他正常的服务路由出去,从而导致意外中断。 有关详细信息,请参阅 流量管理器终结点监视

  • 通过 HTTPS 配置终结点运行状况监视:选择 HTTPS 作为流量管理器配置文件终结点的监视协议,而不是 HTTP 或 TCP。 使用 HTTPS 探测验证终结点是否接受 HTTPS 连接;请注意,探测不会验证证书有效性。 有关详细信息,请参阅 流量管理器终结点监视

  • 对每个终结点监视设置使用嵌套配置文件:使用嵌套流量管理器配置文件将不同的监视配置应用于各个终结点。 单个配置文件可跨所有终结点共享监视设置,但嵌套允许根据每个终结点的特定要求自定义探测路径、间隔和故障阈值。 有关详细信息,请参阅 嵌套流量管理器配置文件

  • 在嵌套配置文件中设置适当的 MinChildEndpoints 值:在嵌套配置文件中配置 MinChildEndpoints 阈值,以控制子配置文件被视为运行正常的时间。 设置此值太低可能会将流量路由到容量不足的降级区域。 有关详细信息,请参阅 嵌套流量管理器配置文件

  • 对数据主权要求使用地理路由:当数据驻留法规要求流量保持在特定边界内时,应用地理路由方法将用户定向到特定区域中的终结点。 将地理路由与嵌套配置文件结合,以在允许的地理区域内实现故障转移。 有关详细信息,请参阅流量管理器路由方法

  • 为子网路由配置回退终结点:使用子网路由将 IP 地址范围映射到特定终结点时,请定义回退终结点来处理来自未映射 IP 地址的请求。 如果没有回退,流量管理器不会针对不匹配的客户端地址返回任何答案(NODATA 或 NXDOMAIN,具体取决于查询)。 有关详细信息,请参阅流量管理器路由方法

身份和访问管理

流量管理器的标识和访问管理可确保只有经过授权的用户才能修改 DNS 路由配置。 对流量管理器配置文件的未经授权的更改可将流量重定向到攻击者控制的终结点或导致服务中断。

  • 为管理流量管理器分配最小权限 RBAC 角色:向管理流量管理器配置文件和终结点的用户授予 流量管理器参与者 角色;对于仅查看访问权限,请使用 读者 角色。 将只读监视访问权限与配置文件修改权限分开,以限制被入侵帐户的爆炸半径。 有关详细信息,请参阅 流量管理器参与者

  • 使用 RBAC 授予跨订阅终结点访问权限:将来自不同 Azure 订阅的终结点添加到 Traffic Manager 配置文件时,请向配置该配置文件的操作员授予对目标终结点资源的读取访问权限。 如果该用户或服务主体没有相应的跨订阅权限,则无法添加终结点。 有关详细信息,请参阅 流量管理器终结点

  • 应用资源锁以防止意外删除:将资源锁放置在 CanNotDelete 生产流量管理器配置文件上,以防止意外删除。 删除流量管理器配置文件会立即停止所有关联终结点的基于 DNS 的路由,这可能会导致完全服务中断。 有关详细信息,请参阅 锁定资源以保护基础结构

日志记录和监控

流量管理器的日志记录和监视提供终结点运行状况、DNS 查询模式和路由行为的可见性。 主动监控可帮助您在错误配置、端点故障和异常的流量变化影响终端用户之前发现这些问题。

  • 为探测运行状况结果启用诊断日志记录:在流量管理器配置文件上配置诊断设置以捕获探测运行状况结果日志。 将这些日志发送到Log Analytics工作区、Azure 存储或事件中心进行分析和长期保留。 探测日志会记录端点运行状况状态的变更,帮助您排查以往的服务中断。 有关详细信息,请参阅 流量管理器诊断日志

  • 为终结点运行状况指标配置警报:在 Endpoint Status by Endpoint 指标上创建 Azure Monitor 警报,以便在终结点变为不正常状态时进行检测。 设置警报阈值,使平均状态值降至 0.5 以下,这表明超过一半的健康探测失败。 来自不同位置的多个探测检查每个终结点,因此单个探测失败不一定表示中断。 有关详细信息,请参阅流量管理器指标和警报

  • 监视每个终结点的 DNS 查询量:跟踪“ 按终结点返回的查询 ”指标,以识别流量分布中的意外变化,这可能指示路由配置错误或终结点故障。 对辅助终结点的查询突然增加可能表明主终结点已降级。 有关详细信息,请参阅流量管理器指标和警报

  • 及时调查降级配置文件状态:当你的流量管理器配置文件状态显示为“已降级”时,表示一个或多个终结点运行不正常。 请立即进行调查,因为降级状态意味着流量管理器可能会将流量路由到其余运行正常的终结点,而这些终结点可能会因此过载。 有关详细信息,请参阅 排查 Azure 流量管理器降级状态问题

合规性和治理

流量管理器的合规性和管理有助于跨 DNS 路由基础结构强制实施组织标准。 一致的策略强制实施可防止可能导致安全漏洞的配置偏移。

  • 使用 Azure Policy 审核流量管理器配置:分配内置的 Azure Policy 定义,在各个流量管理器配置文件中审核并强制执行安全标准,例如要求启用诊断日志记录。 策略分配提供持续合规性可见性,可以标记不符合安全基线的配置文件。 有关详细信息,请参阅 Azure Policy 内置定义

  • 验证跨配置文件的终结点运行状况监视配置:定期审核所有流量管理器配置文件,以确认是否配置了 HTTPS 协议、适当的探测间隔和正确的探测路径。 跨配置文件不一致的监视设置可能导致延迟的故障转移或误报的运行状况检查。 有关详细信息,请参阅 流量管理器终结点监视

备份和恢复

流量管理器的备份和恢复可确保基于 DNS 的路由在区域性中断和服务中断期间保持正常运行。 由于流量管理器本身是一项全球可用的服务,因此恢复规划侧重于终结点冗余和配置文件复原能力。

  • 跨区域配置多个终结点进行故障转移:将至少两个Azure区域中的终结点添加到每个流量管理器配置文件,以便在一个区域遇到中断时,流量自动路由到正常区域。 使用优先级路由方法定义清晰的故障转移顺序。 有关详细信息,请参阅流量管理器路由方法

  • 使用嵌套配置文件进行精细区域故障转移:将外部配置文件与每个区域中使用加权路由或性能路由的内部配置文件结合使用。 此结构既提供跨区域故障转移,又提供区域内负载分发,从而提高针对部分区域故障的复原能力。 有关详细信息,请参阅 嵌套流量管理器配置文件

  • 设置符合故障转移要求的 DNS TTL 值: 配置 DNS 生存时间(TTL)值,以在故障转移速度和 DNS 查询量之间取得平衡。 较低的 TTL(例如 30 秒)可实现更快的故障转移,但会增加 DNS 查询流量和成本,而更高的 TTL 可减少查询,但会延迟客户端重定向远离失败的终结点。 有关详细信息,请参阅流量管理器常见问题解答

  • 定期测试故障转移行为:定期禁用流量管理器配置文件中的端点,以验证故障转移路由是否按预期工作,以及监控警报能否正确触发。 未经测试的故障转移配置在实际中断期间可能无法按设计方式运行。 有关详细信息,请参阅 流量管理器终结点

后续步骤