配置高级网络 DDoS 防护

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

  • 标准网络 DDoS 攻击防护:适用于外部直通式网络负载平衡器、协议转发或具有公共 IP 地址的虚拟机的基本始终开启防护。这些内容在 Google Cloud Armor 标准版下介绍,不需要任何额外订阅。
  • 高级网络 DDoS 攻击防护:为使用外部直通式网络负载平衡器、协议转发或具有公共 IP 地址的虚拟机的 Cloud Armor Enterprise 订阅者提供额外保护。如需详细了解 Cloud Armor Enterprise,请参阅 Cloud Armor Enterprise 概览

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

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

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

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

网络 DDoS 防护的工作原理

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

您可以按区域配置高级网络 DDoS 防护。当您为特定区域启用 Google Cloud Armor 时,Google Cloud Armor 可对该区域中的外部直通式网络负载平衡器、协议转发和具有公共 IP 地址的虚拟机提供始终开启的定向体积攻击检测和缓解功能。 您只能对在 Cloud Armor Enterprise 中注册的项目应用高级网络 DDoS 攻击防护功能。

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

高级网络 DDoS 防护可测量您的基准流量,以提高其缓解性能。启用高级网络 DDoS 防护后,将有一个 24 小时的训练期。在这之后高级网络 DDoS 防护会确定一个可靠的基准,并使用训练来增强其缓解措施。训练期结束后,高级网络 DDoS 防护会根据历史流量应用更多缓解措施。

激活高级网络 DDoS 防护

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

注册 Cloud Armor Enterprise

您的项目必须在 Cloud Armor Enterprise 中注册,才能按区域启用高级网络 DDoS 攻击防护。激活后,已激活区域中的所有区域端点都将获得始终开启的高级网络 DDoS 攻击防护功能。

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

配置 Identity and Access Management (IAM) 权限

如需配置、更新或删除 Google Cloud Armor 边缘安全服务,您需要以下 IAM 权限:

  • compute.networkEdgeSecurityServices.create
  • compute.networkEdgeSecurityServices.update
  • compute.networkEdgeSecurityServices.get
  • compute.networkEdgeSecurityServices.delete

下表列出了 IAM 角色的基本权限及其关联的 API 方法。

IAM 权限 API 方法
compute.networkEdgeSecurityServices.create networkEdgeSecurityServices insert
compute.networkEdgeSecurityServices.update networkEdgeSecurityServices patch
compute.networkEdgeSecurityServices.get networkEdgeSecurityServices get
compute.networkEdgeSecurityServices.delete networkEdgeSecurityServices delete
compute.networkEdgeSecurityServices.list networkEdgeSecurityServices aggregatedList

如需详细了解使用 Google Cloud Armor 时所需的 IAM 权限,请参阅为 Google Cloud Armor 安全政策设置 IAM 权限

配置高级网络 DDoS 防护

按照以下步骤启用高级网络 DDoS 攻击防护。

  1. 创建 CLOUD_ARMOR_NETWORK 类型的安全政策,或使用类型为 CLOUD_ARMOR_NETWORK 的现有安全政策。

     gcloud compute security-policies create SECURITY_POLICY_NAME \
         --type CLOUD_ARMOR_NETWORK \
         --region REGION
    

    替换以下内容:

    • SECURITY_POLICY_NAME:您想为该安全政策指定的名称
    • 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 攻击防护的效果,而无需强制执行缓解措施。

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

如需启用预览模式,请将 --ddos-protection 标志设置为 ADVANCED_PREVIEW。您可以如以下示例所示,更新现有政策。

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

替换以下内容:

  • POLICY_NAME:您的政策的名称
  • 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
   bps: 140000000
  }
  started: {
   total_attack_volume: {
    pps: 1100000
    bps: 110000000
   }
   classified_attack: {
    attack_type: "NTP-udp"
    attack_volume: {
       pps: 500000
       bps: 50000000
    }
   }
   classified_attack: {
    attack_type: "CHARGEN-udp"
    attack_volume: {
       pps: 600000
       bps: 60000000
    }
   }
  }
  

缓解进行中

  @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
   bps: 150000000
  }
  ongoing: {
   total_attack_volume: {
    pps: 1100000
    bps: 110000000
   }
   classified_attack: {
    attack_type: "NTP-udp"
    attack_volume: {
       pps: 500000
       bps: 50000000
    }
   }
   classified_attack: {
    attack_type: "CHARGEN-udp"
    attack_volume: {
       pps: 600000
       bps: 60000000
    }
   }
  }
  

已完成缓解

  @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
      attack_type: "NTP-udp"
  }
  

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

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

转到日志浏览器

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

后续步骤