配置高级网络 DDoS 防护

分布式拒绝服务 (DDoS) 攻击是恶意行为者故意中断公开网站、系统和 API 的操作,旨在影响合法用户的体验。如果工作负载使用外部 TCP/UDP 网络负载均衡器(网络负载均衡)、协议转发或者具有公共 IP 地址的虚拟机,Google Cloud Armor 提供以下选项来帮助保护系统免受 DDoS 攻击:

  • 标准网络 DDoS 防护:为网络负载均衡器、协议转发或具有公共 IP 地址的虚拟机提供基本的始终开启防护。
  • 高级网络 DDoS 防护:为使用网络负载均衡器、协议转发或具有公共 IP 地址的虚拟机的 Managed Protection Plus 订阅者提供额外防护。如需详细了解 Managed Protection,请参阅 Managed Protection 概览

本文档介绍标准和高级网络 DDoS 防护之间的区别、高级网络 DDoS 防护的工作原理,以及如何启用高级网络 DDoS 防护。

比较标准和高级网络 DDoS 防护

使用下表比较标准和高级网络 DDoS 防护功能。

功能 标准网络 DDoS 防护 高级网络 DDoS 防护
受保护的端点类型
  • 网络负载均衡器
  • 协议转发
  • 具有公共 IP 地址的虚拟机
  • 网络负载均衡器
  • 协议转发
  • 具有公共 IP 地址的虚拟机
标准 DDoS 攻击过滤
转发规则强制执行
始终开启攻击监控和提醒
定向攻击缓解措施
缓解遥测

网络 DDoS 防护的工作原理

标准网络 DDoS 防护始终处于启用状态。您无需执行任何操作即可启用它。

您可以按区域配置高级网络 DDoS 防护。为特定区域启用后,Google Cloud Armor 为该区域中的网络负载均衡器、协议转发和具有公共 IP 地址的虚拟机提供始终开启的有针对性的卷攻击检测和缓解功能。您只能对在 Managed Protection Plus 中注册的项目应用高级网络 DDoS 防护。

配置高级网络 DDoS 防护时,您首先需要在所选区域中创建类型为 CLOUD_ARMOR_NETWORK 的安全政策。接下来,您需要更新安全政策以启用高级网络 DDoS 防护。最后,您将创建一个网络边缘安全服务,该服务是一种可以附加到 CLOUD_ARMOR_NETWORK 类型的安全政策的资源。通过将安全政策附加到网络边缘安全服务,可以为所选区域中的所有适用端点启用高级网络 DDoS 防护。

激活高级网络 DDoS 防护

按照以下步骤激活高级网络 DDoS 防护。

注册 Managed Protection Plus

您的项目必须注册 Managed Protection Plus,才能按区域启用高级网络 DDoS 防护。激活后,激活的区域中的所有区域端点都会获得始终开启的高级网络 DDoS 防护。

确保您的结算帐号中具有有效的 Managed Protection Plus 订阅,并且当前项目已注册 Managed Protection Plus。如需详细了解如何注册 Managed Protection,请参阅订阅 Managed Protection Plus 并注册项目

配置高级网络 DDoS 防护

按照以下步骤启用高级网络 DDoS 防护。将变量替换为与您的部署相关的信息。

  1. 创建类型为 CLOUD_ARMOR_NETWORK 的安全政策,或使用类型为 CLOUD_ARMOR_NETWORK 的现有安全政策。将 SECURITY_POLICY_NAME 替换为您希望具有安全政策的名称,并将 REGION 替换为要在其中预配安全政策的区域。

     gcloud compute security-policies create SECURITY_POLICY_NAME \
         --type CLOUD_ARMOR_NETWORK \
         --region REGION
    
  2. 需更新新创建的或现有的安全政策,请将 --network-ddos-protection 标志设置为 ADVANCED

     gcloud compute security-policies update SECURITY_POLICY_NAME \
         --network-ddos-protection ADVANCED \
         --region REGION
    

    或者,您可以将 --network-ddos-protection 标志设置为 ADVANCED_PREVIEW,以在预览模式下启用安全政策。

     gcloud beta compute security-policies update SECURITY_POLICY_NAME \
         --network-ddos-protection ADVANCED_PREVIEW \
         --region REGION
    
  3. 创建引用您的安全政策的网络边缘安全服务。

     gcloud compute network-edge-security-services create SERVICE_NAME \
         --security-policy SECURITY_POLICY_NAME \
         --region REGION
    

停用高级网络 DDoS 防护

如需停用高级网络 DDoS 防护,您可以更新或删除安全政策。

更新安全政策

使用以下命令更新您的安全政策,以将 --network-ddos-protection 标志设置为 STANDARD。将变量替换为与您的部署相关的信息。

gcloud compute security-policies update SECURITY_POLICY_NAME \
    --network-ddos-protection STANDARD \
    --region REGION

删除安全政策

如需删除网络边缘安全政策,您必须先将其从网络边缘安全服务中移除,因为您无法删除使用中的安全政策。按照以下步骤删除安全政策:

  1. 从网络边缘安全服务中移除政策,或者删除网络边缘安全服务。
  2. 使用以下命令删除安全政策:

    gcloud compute security-policies delete NAME
    

使用预览模式

通过预览模式,您可以监控高级网络 DDoS 防护的效果,而无需强制执行缓解措施。

Managed Protection Plus 订阅者还可以为高级网络 DDoS 防护政策启用预览模式。在预览模式下,您会收到有关检测到的攻击和建议的缓解措施的所有日志记录和遥测数据。但是,建议的缓解措施不会强制执行。这样您就可以在采用缓解措施之前先测试其有效性。由于每项政策都按区域配置,因此您可以启用或停用每个区域的预览模式。

如需启用预览模式,请将 --ddos-protection 标志设置为 ADVANCED_PREVIEW。您可以使用以下示例更新现有政策。将 POLICY_NAME 替换为您政策的名称,并将 REGION 替换为政策所在的区域。

gcloud beta compute security-policies update POLICY_NAME \
    --network-ddos-protection ADVANCED_PREVIEW \
    --region=REGION

如果在您的安全政策处于预览模式时发生了主动攻击,并且您希望强制采用缓解措施,您可以更新安全政策以将 --network-ddos-protection 标志设置为 ADVANCED。政策几乎会立即强制执行,并且下一个 MITIGATION_ONGOING 日志记录事件会反映此更改。MITIGATION_ONGOING 日志记录事件每五分钟发生一次。

网络 DDoS 缓解遥测

以下部分介绍了如何使用遥测来分析攻击及其来源。

Cloud Logging 攻击缓解事件日志

Google Cloud Armor 在缓解 DDoS 攻击时生成三种类型的事件日志。以下部分提供了每种事件日志的日志格式示例:

  • 已启动缓解

    @type: "type.googleapis.com/google.cloud.networksecurity.cloudarmor.logging.v1.CloudArmorMitigationAlert"
    alertId: "11275630857957031521"
    mitigation_type: "MITIGATION_STARTED"
    target_vip: "XXX.XXX.XXX.XXX"
    total_volume: {
    pps: 1400000
    }
    started: {
    total_attack_volume: {
    pps: 1100000
    }
    classified_attack: {
    attack_type: "NTP-udp"
    attack_volume: {
       pps: 500000
    }
    }
    classified_attack: {
    attack_type: "CHARGEN-udp"
    attack_volume: {
       pps: 600000
    }
    }
    }
    
  • 缓解进行中

    @type: "type.googleapis.com/google.cloud.networksecurity.cloudarmor.logging.v1.CloudArmorMitigationAlert"
    alertId: "11275630857957031521"
    mitigation_type: "MITIGATION_ONGOING"
    target_vip: "XXX.XXX.XXX.XXX"
    total_volume: {
    pps: 1500000
    }
    ongoing: {
    total_attack_volume: {
    pps: 1100000
    }
    classified_attack: {
    attack_type: "NTP-udp"
    attack_volume: {
       pps: 500000
    }
    }
    classified_attack: {
    attack_type: "CHARGEN-udp"
    attack_volume: {
       pps: 600000
    }
    }
    }
    
  • 已完成缓解

    @type: "type.googleapis.com/google.cloud.networksecurity.cloudarmor.logging.v1.CloudArmorMitigationAlert"
    alertId: "11275630857957031521"
    mitigation_type: "MITIGATION_ENDED"
    target_vip: "XXX.XXX.XXX.XXX"
    ended: {
      attack_duration_seconds: 600
    }
    

在预览模式下,前面的每个 mitigation_type 都以 PREVIEWED_ 开头。例如,在预览模式下,MITIGATION_STARTED 会改为 PREVIEWED_MITIGATION_STARTED

如需查看这些日志,请转到 Logs Explorer 并查看 network_security_policy 资源。

转到 Logs Explorer

如需详细了解如何查看日志,请参阅查看日志