分布式拒绝服务 (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 防护 | 高级网络 DDoS 防护 |
---|---|---|
受保护的端点类型 |
|
|
转发规则强制执行 | ||
始终开启攻击监控和提醒 | ||
定向攻击缓解措施 | ||
缓解遥测 |
网络 DDoS 防护的工作原理
标准网络 DDoS 防护始终处于启用状态。您无需执行任何操作即可启用它。
您可以按区域配置高级网络 DDoS 防护。而不是 将网络边缘安全政策与一个或多个目标池相关联; 目标实例、后端服务或具有外部 IP 地址的实例 您可以将其与特定区域中的网络边缘安全服务相关联。 为该区域启用后,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 |
如需详细了解使用 API 时所需的 IAM 权限,请参阅 Google Cloud Armor,请参阅 为 Google Cloud Armor 安全政策设置 IAM 权限。
配置高级网络 DDoS 防护
按照以下步骤启用高级网络 DDoS 攻击防护。
创建
CLOUD_ARMOR_NETWORK
类型的安全政策,或使用类型为CLOUD_ARMOR_NETWORK
的现有安全政策。gcloud compute security-policies create SECURITY_POLICY_NAME \ --type CLOUD_ARMOR_NETWORK \ --region REGION
请替换以下内容:
SECURITY_POLICY_NAME
:您想为该安全政策指定的名称REGION
:您要在其中预配该安全政策的区域
将
--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
创建引用您的安全政策的网络边缘安全服务。
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
删除安全政策
如需删除网络边缘安全政策,您必须先将其从网络边缘安全服务中移除,因为您无法删除使用中的安全政策。按照以下步骤删除安全政策:
从网络边缘安全服务中移除政策,或者删除网络边缘安全服务。
如需从网络边缘安全服务中移除政策,请使用以下命令:
gcloud compute network-edge-security-services update SERVICE_NAME \ --security-policy="" \ --region=REGION_NAME
如需删除网络边缘安全服务,请使用以下命令:
gcloud compute network-edge-security-services delete SERVICE_NAME \ --region=REGION_NAME
使用以下命令删除安全政策:
gcloud compute security-policies delete SECURITY_POLICY_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 缓解遥测
Google Cloud Armor 在缓解 DDoS 攻击时会生成三种类型的事件日志:MITIGATION_STARTED
、MITIGATION_ONGOING
和 MITIGATION_ENDED
。您
可以使用以下日志过滤条件,按缓解措施类型查看日志:
缓解类型 | 日志过滤条件 |
---|---|
缓解措施生效 | resource.type="network_security_policy" jsonPayload.mitigationType="MITIGATION_STARTED" |
缓解进行中 | resource.type="network_security_policy" jsonPayload.mitigationType="MITIGATION_ONGOING" |
缓解措施结束 | resource.type="network_security_policy" jsonPayload.mitigationType="MITIGATION_ENDED" |
Cloud Logging 攻击缓解事件日志
以下部分提供了每种事件日志的日志格式示例:
已启动缓解
@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 } } attack_sources: { top_source_asns: { asn: "ABCDEF" volume: { pps: 20000 bps: 2000000 } } top_source_asns: { asn: "UVWXYZ" volume: { pps: 20000 bps: 2000000 } } top_source_geos: { region_code: "XX" volume: { pps: 20000 bps: 2000000 } } top_source_geos: { region_code: "XY" volume: { pps: 20000 bps: 2000000 } } } }
缓解进行中
@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 } } attack_sources: { top_source_asns: { asn: "ABCDEF" volume: { pps: 20000 bps: 2000000 } } top_source_asns: { asn: "UVWXYZ" volume: { pps: 20000 bps: 2000000 } } top_source_geos: { region_code: "XX" volume: { pps: 20000 bps: 2000000 } } top_source_geos: { region_code: "XY" volume: { pps: 20000 bps: 2000000 } } } }
已完成缓解
@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
资源。
如需详细了解如何查看日志,请参阅查看日志。
后续步骤
- 了解如何配置网络边缘安全政策
- 了解 Cloud Armor Enterprise