华为云DDoS防护AAD完全对接指南:从入门到生产级防御
引言:DDoS威胁与华为云AAD防护体系
分布式拒绝服务攻击至今仍是互联网业务面临的头号安全威胁。从数十Gbps的流量型攻击到百万级QPS的应用层CC攻击,攻击手段日益复杂,防御难度持续攀升。华为云DDoS防护服务(Anti-DDoS Service,简称AAD)正是为应对这一挑战而设计的一站式防御解决方案。
AAD并非单一产品,而是一个包含三个子服务的防护家族:DDoS原生基础防护(即Anti-DDoS流量清洗)提供免费的基础防护能力,自动检测并清洗进入华为云弹性公网IP的异常流量;DDoS原生高级防护则在基础之上提供更灵活的定制策略和更高的清洗阈值;DDoS高防则是针对大流量攻击的终极武器,通过将业务流量牵引至高防IP进行清洗后再转发至源站,可抵御T级规模的DDoS攻击。
本文将从零开始,系统讲解如何根据业务需求选择合适的AAD服务类型、完成实例购买与接入配置、制定精细化的防护策略、通过API/SDK实现编程化管理,以及构建AAD与WAF的联动防御体系。全文包含大量可实操的配置步骤与代码示例,适合从初学者到高级运维人员的全层次读者。
需要先登录华为云控制台,点击:华为云控制台,还没有账号,点击:注册并关联,已有账号点击:登录后关联
一、AAD子服务选型:原生防护还是高防?
在开始对接之前,首先要明确业务需要哪一种AAD服务。三个子服务的定位和适用场景有显著差异。
1.1 DDoS原生基础防护(Anti-DDoS流量清洗)
这是华为云为所有EIP提供的免费基础防护服务。它通过实时监测进入EIP的流量,当检测到异常流量攻击时自动启动流量清洗,将攻击流量过滤掉,只将正常流量转发到后端服务器。其防护能力有限,适合对DDoS防护要求不高、业务流量较小的场景。该服务无需单独开通,只要EIP在华为云上即自动生效。
1.2 DDoS原生高级防护
在基础防护之上,原生高级防护提供了更强大的定制能力。用户可以创建自定义防护策略,设置流量清洗档位和防御模式。其防护对象为华为云全动态BGP EIP,但需要注意它不支持跨区域防护,即防护的EIP必须与原生高级防护实例在同一个区域。适合对防护策略有定制需求、且业务集中在单一区域的场景。
1.3 DDoS高防
DDoS高防是AAD家族中防护能力最强的子服务。它通过将业务流量牵引到高防IP进行全量清洗,再将干净流量回源到源站服务器,从而彻底隐藏源站真实IP。高防实例支持保底防护带宽和弹性防护带宽两种模式:保底带宽是基础防御能力,按月/年预付费;弹性带宽则在攻击峰值超过保底带宽时按日触发计费。高防适用于频繁遭受大流量DDoS攻击、对业务连续性要求极高的生产环境。
选型建议:如果业务部署在华为云且对成本敏感,原生基础防护即可满足基本需求;如果业务频繁遭受攻击或需要精细化的策略控制,选择原生高级防护或DDoS高防;对于核心生产业务,强烈建议部署DDoS高防。
二、购买DDoS高防实例
以DDoS高防为例,购买实例是接入的第一步。
2.1 前提条件
账号需要拥有“CAD Administrator”和“BSS Administrator”角色权限。如果权限不足,需要联系主账号管理员进行授权。
2.2 购买步骤
登录AAD服务控制台后,在界面右上角单击“购买DDoS防护”,进入购买页面。在“实例类型”中选择“DDoS高防”。随后需要配置以下关键参数:
- 接入类型:网站类适用于通过域名对外提供服务的业务,华为云会通过智能算法选择最佳接入点,不提供固定高防IP;IP接入则提供固定高防IP,适合非域名类业务。
- 防护区域:中国大陆适用于服务器部署在中国大陆的场景,域名必须经过ICP备案;中国大陆外适用于服务器部署在亚太地区的场景。
- 线路资源:中国大陆仅支持BGP线路。
- IP类型:IPv4或IPv6,需与源站IP类型匹配。
- 保底防护带宽:这是基础防御能力,攻击峰值不超过保底带宽时不产生额外费用。
- 弹性防护带宽:攻击峰值超过保底带宽时触发,按日计费,不能小于保底带宽。
- 业务带宽:从高防实例转发回源站的干净流量带宽,范围100Mbps~2000Mbps。
完成配置后提交订单,实例创建通常需要几分钟时间。
三、域名网站类业务接入DDoS高防
如果业务通过域名对外提供服务且已完成ICP备案,可以将域名接入DDoS高防。
3.1 添加防护域名
登录AAD服务控制台,在左侧导航栏选择“域名接入”页面,单击“添加域名”。在添加域名界面需要配置以下参数:
- 防护域名:支持单域名(如www.example.com)和泛域名(如*.example.com)。如果各子域名对应的服务器IP地址相同,可以使用泛域名一次性接入。
- 源站类型:可选择“源站IP”或“源站域名”。如果选择“源站域名”,目前仅支持华为云WAF的CNAME。如果待添加域名与其他域名共用同一个高防IP和协议/端口,源站类型必须保持一致。
- 转发协议:HTTP或HTTPS。如果选择HTTPS,需要上传PEM格式的证书。
- 源站端口:源站服务器对外提供服务的端口。
3.2 修改DNS解析
域名添加完成后,接入状态会显示为“未接入”,原因为“修改DNS解析”。此时需要在域名DNS服务商处将域名的解析记录修改为AAD提供的CNAME值或高防IP地址,使业务流量先经过DDoS高防再转发至源站。
3.3 高级配置
在域名接入列表中,可以对已添加的域名进行高级配置:
- 字段转发:可以自定义添加Key/Value值,将特定的HTTP头部字段透传到源站。
- HTTP2协议:可以在目标域名的“HTTP2协议”列单击“编辑”来开启或关闭HTTP2支持。
四、非域名类业务接入DDoS高防
对于没有域名、仅通过公网IP对外提供服务的业务(如游戏服务器、IM服务等),可以通过配置转发规则将业务接入DDoS高防。配置转发规则后,高防IP会自动将流量转发到源站IP,从而隐藏真实源站。
4.1 添加转发规则
登录AAD服务控制台,在左侧导航栏选择“DDoS高防 > 转发配置”,进入转发配置页面。选择需要添加转发规则的实例和线路,单击“添加”。需要填写以下参数:
- 转发协议:TCP或UDP。
- 转发端口:高防IP上用于接收流量的端口。
- 源站端口:源站服务器实际对外提供服务的端口。
- 源站IP:源站服务器的公网IP地址,最多可输入20个,以英文逗号分隔。
需要注意,出于安全因素考虑,部分运营商会对特定端口进行拦截,建议避免使用TCP 42、135、137-139、444、445等端口,以及UDP 135-139、445、593等端口。
4.2 转发规则管理
转发规则创建后,可以在转发配置页面查看规则信息、修改源站IP或删除规则。如果需要批量创建转发规则,可以调用AAD的API接口进行批量操作。
五、防护策略配置
业务接入AAD之后,制定合理的防护策略是保障安全的核心环节。AAD提供了多层次、多维度的防护策略配置能力。
5.1 基础防护策略(DDoS原生高级防护)
对于DDoS原生高级防护,可以在“防护策略”页面创建自定义策略。创建策略后,在目标策略的“操作”列单击“配置策略”,进入“基础防护”配置。核心参数包括:
- 流量清洗档位:当IP遭受的DDoS攻击带宽超过配置的清洗档位时,触发流量清洗。建议选择与已购买带宽最接近的数值。
- 防御模式:宽松模式在流量达到清洗档位的3倍后触发清洗,适合担心误清洗的场景;正常模式在流量达到清洗档位的2倍后触发清洗,是默认推荐;严格模式在流量达到清洗档位即触发清洗,适合攻击漏防时加强防御。
5.2 频率控制策略(缓解CC攻击)
CC攻击是应用层的恶意流量攻击,通过大量合法请求耗尽服务器资源。AAD的频率控制策略可以有效缓解CC攻击。配置路径为:在DDoS高防的“防护策略”页面,单击“Web CC防护”页签,在“频率控制”下方单击“自定义频率控制规则”,然后添加规则。
频率控制规则的关键参数包括:
- 限速模式:源限速对源端限速;IP限速根据IP区分访问者;用户限速根据Cookie或Header区分;目的限速则包括策略限速(多域名合并计数)、域名限速(单域名独立计数)和URL限速(单URL独立计数)。
- 用户标识:当限速模式选择用户限速时,需要配置Cookie字段名或Header字段名来唯一识别Web访问者。
- 限速条件:可以添加多个条件,所有条件同时满足时规则生效。
实战建议:对登录接口设置严格的频率阈值(如5次/分钟),对静态资源目录适当放宽限制(如60次/秒),对API网关启用JSON参数解析并检查高频相同参数请求。
5.3 IP黑白名单
通过配置IP黑名单和白名单,可以实现对访问DDoS高防的源IP的精确控制:添加到黑名单的IP其访问请求会被拦截,添加到白名单的IP其访问请求会被放行。这一功能在应对已知恶意IP段或放行 trusted IP 时非常有效。
5.4 协议封禁与指纹过滤
对于UDP流量,可以通过UDP流量封禁功能一键放行或阻止协议流量访问DDoS高防实例。指纹过滤则允许对数据包中指定位置的内容进行特征匹配,根据匹配结果执行丢弃等处理动作。
六、通过API/SDK编程化管理AAD
对于需要自动化运维或集成到自有管理平台的场景,AAD提供了完整的API接口和多语言SDK支持。
6.1 API概览
AAD的API支持对防护策略的查询、修改,以及域名管理、转发规则管理等操作。所有API调用都需要通过IAM进行身份认证,使用账号的AK/SK生成签名。
6.2 Python SDK示例
华为云官方提供了Python SDK,AAD服务SDK遵循标准的包结构组织。以下是一个使用Python SDK查询AAD实例转发规则的完整示例:
import os
from huaweicloudsdkcore.auth.credentials import BasicCredentials
from huaweicloudsdkaad.v1.region.aad_region import AadRegion
from huaweicloudsdkaad.v1 import AadClient, ListForwardRulesRequest
# 配置认证信息
ak = os.getenv("HUAWEICLOUD_SDK_AK")
sk = os.getenv("HUAWEICLOUD_SDK_SK")
credentials = BasicCredentials(ak, sk)
# 创建AAD客户端
client = AadClient.new_builder() \
.with_credentials(credentials) \
.with_region(AadRegion.CN_NORTH_4) \
.build()
# 构造查询转发规则的请求
request = ListForwardRulesRequest()
request.instance_id = "{your_instance_id}"
request.ip = "{your_high_defense_ip}"
# 发送请求并获取响应
response = client.list_forward_rules(request)
print(f"转发规则数量: {len(response.rules)}")
for rule in response.rules:
print(f"协议: {rule.forward_protocol}, 端口: {rule.forward_port}, "
f"源站IP: {rule.origin_server_ip}, 源站端口: {rule.origin_server_port}")代码说明:首先从环境变量中获取AK/SK,创建认证凭证后初始化AAD客户端。通过`ListForwardRulesRequest`构造查询请求,指定实例ID和高防IP即可获取该IP下的所有转发规则列表。
6.3 Java SDK示例
Java SDK的使用方式与Python类似,同样需要先添加SDK依赖。以下是一个添加IP黑名单的示例:
import com.huaweicloud.sdk.aad.v1.AadClient;
import com.huaweicloud.sdk.aad.v1.model.AddBlackWhiteIpListRequest;
import com.huaweicloud.sdk.aad.v1.model.AddBlackWhiteIpListRequestBody;
import com.huaweicloud.sdk.core.auth.BasicCredentials;
public class AddBlacklistExample {
public static void main(String[] args) {
BasicCredentials auth = new BasicCredentials()
.withAk(System.getenv("HUAWEICLOUD_SDK_AK"))
.withSk(System.getenv("HUAWEICLOUD_SDK_SK"));
AadClient client = AadClient.newBuilder()
.withCredential(auth)
.withRegion(AadRegion.CN_NORTH_4)
.build();
AddBlackWhiteIpListRequest request = new AddBlackWhiteIpListRequest();
AddBlackWhiteIpListRequestBody body = new AddBlackWhiteIpListRequestBody();
body.setInstanceId("{instance_id}");
body.setType("black");
body.setIpList("192.168.1.100,10.0.0.50");
request.setBody(body);
client.addBlackWhiteIpList(request);
System.out.println("黑名单添加成功");
}
}该示例展示了如何通过Java SDK调用AAD的API添加IP黑名单。实际使用时,需要将`{instance_id}`替换为真实的实例ID。
6.4 API Explorer自动生成代码
华为云API Explorer提供了在线调试和代码生成功能,支持Java、Python、Go、Node.js等多种语言的SDK代码自动生成。开发者可以在API Explorer中完成参数配置后,直接复制对应语言的SDK代码片段,极大降低了API集成的门槛。
七、AAD与WAF联动防御
对于Web应用,将DDoS高防与Web应用防火墙(WAF)结合使用,可以构建从网络层到应用层的全栈防护体系。流量会先经过DDoS高防进行大流量攻击清洗,再转发至WAF进行Web攻击检测与拦截。
7.1 配置步骤
联动配置的核心流程如下:
- 在WAF管理控制台获取域名的CNAME值。
- 将该CNAME值作为源站域名配置到DDoS高防的域名接入中。
- 修改DNS解析,将域名解析指向DDoS高防的CNAME或高防IP。
7.2 注意事项
配置联动时需注意:源站域名为CNAME时,目前只支持华为云WAF的CNAME;如果后续需要从WAF移除防护,应首先将业务从DDoS高防移除;不要在WAF侧修改或删除接入的第一个源站CNAME信息,如需修改应先在高防侧删除相应域名。
八、监控告警与日志审计
8.1 攻击日志接入LTS
启用DDoS防护功能后,可以将攻击日志记录到云日志服务(LTS)中。通过LTS记录的AAD日志数据,可以进行实时的决策分析、设备运维管理和业务趋势分析。配置方法为:在AAD控制台的“概览”页面单击“日志”,开启全量日志并选择日志组和日志流。
8.2 告警通知
在AAD控制台的“告警通知”页签可以设置告警规则,当检测到攻击或流量异常时及时通知运维人员。
九、生产环境最佳实践
9.1 多线路高防IP配置
一个域名可以选择多条线路(高防IP)。选择多个高防IP时,需要确保各高防IP所配置的转发规则个数、转发协议、转发端口和业务类型保持一致。
9.2 阶梯调度策略
AAD支持配置DDoS阶梯调度规则,可以根据攻击流量的大小自动切换不同的防护等级或线路。
9.3 源站安全组配置
如果源站部署在华为云上,需要在虚拟私有云(VPC)的ACL和安全组中放行AAD的回源IP地址段,确保高防实例清洗后的正常流量能够到达源站。
9.4 长期任务与心跳机制
对于执行时间较长的任务,建议在应用层面部署心跳机制以保持连接活跃。对于非常规的偶发性任务请求,可以考虑绕过高防IP直接访问后端ECS。
9.5 成本优化建议
DDoS高防采用预付费模式,按保底带宽和业务带宽计费。弹性防护费用按日结算,仅攻击峰值超过保底带宽时产生。建议根据业务流量的历史数据合理选择保底带宽,避免保底带宽过高造成浪费或过低导致频繁触发弹性计费。
十、常见问题与解答
问1:DDoS原生基础防护、原生高级防护和DDoS高防有什么区别?
答:原生基础防护是免费服务,自动为华为云EIP提供基础流量清洗;原生高级防护提供可定制的防护策略和更高的清洗阈值,但仅支持单区域防护;DDoS高防通过高防IP牵引流量,可抵御T级攻击,支持多区域部署,但需要付费购买实例。
问2:域名接入DDoS高防时,HTTPS证书有什么格式要求?
答:DDoS高防目前仅支持PEM格式的证书。如果证书是其他格式(如PFX、DER),需要先转换为PEM格式后再上传。
问3:源站类型选择“源站域名”时有什么限制?
答:源站域名为CNAME时,目前仅支持华为云WAF的CNAME。同时,如果业务在接入WAF时选择了“使用代理”,才能正常接入高防。
问4:如何缓解CC攻击?
答:可以通过配置频率控制策略来缓解CC攻击。建议对关键接口(如登录、支付)设置严格的访问频率阈值,对静态资源适当放宽,同时结合IP黑白名单进行辅助防御。
问5:AAD的API调用需要什么权限?
答:调用AAD的API需要使用华为云账号的AK/SK进行IAM认证。账号需要拥有AAD相关的操作权限,建议通过IAM创建子账号并授予最小权限原则。
问6:DDoS高防实例到期后会怎样?
答:实例到期后会进入冻结状态,此时仅维持基础的业务连通性,不再提供任何防护能力。到期超过30个自然日后,实例将被释放,业务流量停止转发。建议在到期前及时续费或将业务流量从高防切回源站。


