华为云边缘安全 EdgeSec 对接使用完全指南:从入门到生产实践
一、边缘安全 EdgeSec 概述
边缘安全(Edge Security,EdgeSec)是华为云基于 CDN 边缘节点提供的安全防护服务,集边缘 DDoS 防护、CC 防护、WAF 防护、BOT 行为分析等功能于一体。已使用华为云内容分发网络(CDN)或全站加速(WSA)的用户,购买服务后可为加速域名开启安全防护相关配置,全方位保障业务内容分发。
EdgeSec 的核心工作原理是:用户请求到达边缘安全加速网络后,节点识别并拦截各类攻击请求——对 DDoS 攻击流量进行清洗,EdgeSec 引擎对 Web、BOT、CC 类型攻击进行行为分析并更新拦截策略,阻断恶意请求到达客户源站,在保障业务访问流畅稳定的同时实现网络动静态加速。
边缘安全加速(Edge Security Acceleration,ESA)是 EdgeSec 的子产品,提供“缓存加速+应用安全”的一体化服务,支持网络加速以及 Web 攻击防护、DDoS 防护、CC 防护等多项安全功能。
1.1 版本与功能差异
EdgeSec 提供专业版和企业版两个版本。专业版适合 CDN 资源被盗刷、无大流量 DDoS 攻击的场景,月费约 660 美元;企业版适合有 DDoS 攻击或 CC 攻击超过 100 万 QPS 的场景,月费约 4500 美元。
专业版核心能力包括:OWASP Top10 常见安全威胁托管规则防护、CC 攻击防护、精准访问防护、网站反爬虫、IP 黑白名单、攻击惩罚、地理位置访问控制、隐私屏蔽、IP 情报、全局白名单。企业版在此基础上额外提供:AI 行为检测 BOT、请求特征检测、可定制 Tbps 级别 DDoS 防护、安全规则数量比专业版提升 1 倍。
在具体防护能力上,两版本均支持 SQL 注入、XSS 跨站脚本、远程溢出攻击、文件包含、Bash 漏洞攻击、远程命令执行、目录遍历、敏感文件访问、命令/代码注入等常见 Web 攻击的检测与拦截。CC 攻击防护方面,专业版单节点不高于 10 万 QPS、全网不高于 100 万 QPS;企业版单节点不高于 10 万 QPS、全网不高于 300 万 QPS。DDoS 防护方面,专业版可防护 10 Gbps 攻击,企业版可防护 1 Tbps 攻击。
二、开通 EdgeSec 服务
2.1 前置条件
开通 EdgeSec 前需满足以下条件:
- 当前账号拥有 BSS Administrator、EdgeSec FullAccess 和 CDN Administrator 权限
- 已开通华为云的内容分发网络(CDN)服务——EdgeSec 基于 CDN 站点提供服务,需先开通 CDN
- 已在 CDN 服务的“域名管理”中添加了待防护的域名
需要先登录华为云控制台,点击:华为云控制台,还没有账号,点击:注册并关联,已有账号点击:登录后关联
2.2 购买操作步骤
登录 EdgeSec 服务控制台后,在左侧导航栏选择“安全防护”,单击“购买”进入购买页面。需配置以下参数:
- 企业项目:在“企业项目”下拉列表中选择所在的企业项目,默认为“default”
- 套餐版本:选择专业版或企业版
- 计费方式:支持按流量、请求数、动态加速三种方式计费
- 域名扩展包:一个扩展包支持防护 10 个域名
- 规则扩展包:一个扩展包包含 10 条 IP 黑白名单防护规则
- 购买时长:可选 1~9 个月或 1~3 年
确认参数无误后,勾选服务协议并单击“立即购买”,确认订单后完成支付。
三、域名接入 EdgeSec
域名接入是使用 EdgeSec 的核心步骤——在启用边缘安全防护之前,需要将待保护的业务域名接入防护系统,建立域名与防护服务的关联。
3.1 控制台接入方式
通过控制台接入域名是最直观的方式,操作路径如下:
- 登录 EdgeSec 服务控制台
- 在左侧导航栏选择“安全防护” > “域名接入”
- 在列表左上角单击“添加域名”
- 填写防护域名(可带端口)、源站信息等参数
- 单击“确定”,等待域名添加完成
域名添加后,边缘安全会自动为该域名绑定一个防护策略。添加域名操作耗时较长,请耐心等待。添加完成后,需要在 DNS 服务商处将域名解析到 EdgeSec 分配的 CNAME 值,才能将用户请求转发到边缘安全节点。
3.2 API 编程接入方式
对于需要自动化批量接入域名的场景,EdgeSec 提供了 RESTful API。创建防护域名的接口信息如下:
接口地址:POST /v1/edgesec/configuration/domains
请求头:X-Auth-Token(租户 token)
请求体参数:
- domain_name:防护域名(可带端口),必填
- enterprise_project_id:企业项目 ID,默认为 0
- policy_id:防护域名关联的策略 ID,非必填
- description:域名描述,非必填
请求示例:
POST https://esa.cn-north-4.myhuaweicloud.com/v1/edgesec/configuration/domains
{
"domain_name": "xxx.test.com",
"enterprise_project_id": "0",
"policy_id": "a7bd0ca4b2ac48cfb8c59deebf6b64e0",
"description": "test"
}响应码 200 表示正常返回,400 表示请求失败,401 表示 token 权限不足,500 表示服务器内部错误。
3.3 通过 SDK 编程接入
华为云提供了 EdgeSec 服务端 SDK,支持多种编程语言,可直接集成 SDK 调用 EdgeSec 相关 API。SDK 列表可在 GitHub 仓库查看更新历史、获取安装包及指导文档。
以下是通过 Python SDK 将 CDN 域名添加 EdgeSec 并开启 WAF 和 DDoS 防护的完整示例:
# -*- coding: utf-8 -*-
import json
from huaweicloudsdkcore.auth.credentials import BasicCredentials
from huaweicloudsdkcore.exceptions import exceptions
from huaweicloudsdkcdn.v1.region.cdn_region import CdnRegion
from huaweicloudsdkedgesec.v1 import EdgeSecClient, CreateDomainRequest, CreateDomainRequestBody
# 配置认证信息
ak = "your_ak_here"
sk = "your_sk_here"
credentials = BasicCredentials(ak, sk)
# 创建客户端
client = EdgeSecClient.new_builder() \
.with_credentials(credentials) \
.with_region(CdnRegion.value_of("cn-north-4")) \
.build()
# 构造创建防护域名的请求
def create_protection_domain(domain_name, enterprise_project_id="0", policy_id=None, description=""):
request = CreateDomainRequest()
request.body = CreateDomainRequestBody(
domain_name=domain_name,
enterprise_project_id=enterprise_project_id,
policy_id=policy_id,
description=description
)
try:
response = client.create_domain(request)
print(f"域名 {domain_name} 添加成功,响应:{json.dumps(response.to_dict(), ensure_ascii=False)}")
return response
except exceptions.ClientRequestException as e:
print(f"添加域名失败:{e.status_code} - {e.error_msg}")
return None
# 调用示例
if __name__ == "__main__":
create_protection_domain("api.example.com", "0", "a7bd0ca4b2ac48cfb8c59deebf6b64e0", "生产环境API域名")
四、防护策略配置
防护策略是多种防护规则的集合,用于配置和管理 Web 基础防护、黑白名单、精准访问防护等规则。接入域名后,系统会默认生成一套与该域名关联的防护策略。
4.1 Web 基础防护
Web 基础防护覆盖 OWASP TOP 10 常见安全威胁,通过预置丰富的信誉库对漏洞攻击、网页木马等威胁进行检测和拦截。
配置步骤:
- 在左侧导航栏选择“安全防护” > “域名接入”
- 在目标域名所在行的“防护策略”栏中,单击“已开启 N 项防护”
- 在“Web 基础防护”配置框中确认已开启
- 在右侧“防护配置”页签开启合适的防护功能
检测项说明:
- 常规检测:防护 SQL 注入、XSS 跨站脚本、远程溢出攻击、文件包含、Bash 漏洞攻击、远程命令执行、目录遍历、敏感文件访问、命令/代码注入等攻击
- Webshell 检测:对通过上传接口植入的网页木马进行检测
- 深度检测:支持同形字符混淆、通配符变形的命令注入、UTF7、Data URI Scheme 等反逃逸识别
- Header 全检测:对请求中 Header 所有字段进行攻击检测
- Shiro 解密检测:对 Cookie 中的 rememberMe 内容做 AES、Base64 解密后再检测
防护动作:
- 阻断:发现攻击行为后立即阻断并记录
- 仅记录:发现攻击行为后只记录不阻断攻击
使用建议:如果对自己的业务流量特征还不完全清楚,建议先切换到“仅记录”模式观察一至两周,分析攻击日志后再切换到“阻断”模式。
4.2 CC 攻击防护
CC 攻击防护规则通过限制访问者对防护网站上特定路径的访问频率,精准识别 CC 攻击并有效缓解,支持人机验证、阻断和仅记录三种防护动作。
配置步骤:
- 在左侧导航栏选择“安全防护” > “防护策略”
- 单击目标策略名称进入防护配置页面
- 选择“CC 攻击防护”配置框,开启 CC 攻击防护策略
- 在规则配置列表左上方单击“添加规则”
限速模式:
- 源 IP:根据 IP 区分单个 Web 访问者
- 源 IP C 段:根据 IP C 段区分 Web 访问者组,按组进行计数和限速
配置示例:当一个 IP 在 30 秒内访问当前域名下路径的次数超过 1000 次,则封禁该 IP 在该路径的请求 10 个小时。该规则可作为一般中小型站点的预防性配置。
4.3 精准访问防护与黑白名单
精准访问防护支持对请求的 URL、User-Agent、Referer、IP 等字段进行精细化匹配控制。IP 黑白名单支持导入 IP 地址或 IP 地址段。边缘安全支持批量导入黑白名单,如需配置多个 IP/IP 地址段规则,可添加地址组。
地理位置访问控制支持对指定国家、省份的 IP 自定义访问控制。添加或修改防护规则后,规则生效需要等待几分钟。
4.4 BOT 管理与网站反爬虫
BOT 管理功能通过 AI 智能和内置特征库对访问者行为自动分析,识别疑似盗刷、攻击并自动防护。具体能力包括:
- 已知 BOT 特征反爬虫:基于已知特征库识别爬虫
- JS 脚本反爬虫:通过自定义规则识别并阻断 JS 脚本爬虫行为
- BOT 行为 AI 检测:企业版独有,基于 AI 模型检测异常 BOT 行为
- 请求特征检测:企业版独有,基于请求特征识别异常
网站反爬虫动态分析网站业务模型,结合人机识别技术和数据风控手段精准识别多种爬虫行为。
五、日志、监控与告警
5.1 日志记录
EdgeSec 支持将攻击日志和访问日志记录到云日志服务(LTS)中,可通过 LTS 记录的日志数据快速高效地进行实时决策分析、设备运维管理以及业务趋势分析。在防护事件页面可检索 XSS 攻击、SQL 注入、CC 防护、自定义精准防护等安全事件,快速定位攻击源或对攻击事件进行分析。支持查看所有防护域名最近 30 天的防护事件数据。
5.2 监控告警
通过对接云监控服务(CES),可实时查看账号下加速域名的基础数据(流量、带宽、状态码等)并设置告警。当监控指标触发告警条件时,会以邮箱、短信、企业微信、钉钉等方式发送告警。还可开通用量封顶功能,当域名在指定周期内的带宽或流量达到设定值后,CDN 自动停用加速域名以减少高额账单损失。
六、权限管理
统一身份认证服务(IAM)为 EdgeSec 提供了权限管理功能。需拥有 EdgeSec FullAccess 权限的用户才能使用 EdgeSec 服务。如需开通该权限,请联系拥有 Security Administrator 权限的用户。
权限配置流程:
- 在 IAM 控制台创建用户组,授予“EdgeSec FullAccess”权限
- 在 IAM 控制台创建用户,将其加入该用户组
- 用户登录后即可验证权限
根据企业业务组织,可给不同职能部门的员工创建 IAM 用户,让员工拥有唯一安全凭证并使用 EdgeSec 资源,实现用户之间的权限隔离。
七、最佳实践与生产建议
7.1 典型实践场景
EdgeSec 的典型实践包括:
- SQL 注入防护:开启 Web 基础防护拦截 SQL 注入攻击
- CC 攻击防护:基于 IP 限速或 Cookie 字段识别配置 CC 防护规则
- 恶意抢购防护:通过配置业务 Cookie 和 System ID 限制恶意抢购或恶意下载
- 流量突发分析:通过统计报表、离线日志、实时日志对流量突发时段进行分析,定位攻击特征并配置防护策略
7.2 生产环境优化建议
- 渐进式开启防护:新接入域名建议先使用“仅记录”模式观察 1-2 周,确认无误后再切换为“阻断”模式
- 回源 IP 加白:域名接入后需在源站服务器上将 EdgeSec 的回源 IP 加入白名单,防止误拦截
- 域名备案检查:EdgeSec 会检查域名备案情况,未备案域名将无法添加
- 企业项目注意:EdgeSec 当前仅支持在默认企业项目下购买,在非默认企业项目下添加域名会报错
- IPv6 支持:若域名存在 IPv6 访问请求,需开启 IPv6 防护
- 规则生效时间:添加或修改防护规则后,规则生效需要等待几分钟
八、常见问题解答
问:EdgeSec 和普通的 WAF 有什么区别?
答:EdgeSec 是基于 CDN 边缘节点部署的安全防护服务,与传统的中心化 WAF 相比,EdgeSec 在边缘节点就近拦截攻击流量,攻击请求在到达源站之前就被清洗和阻断。同时 EdgeSec 集成了 CDN 的加速能力,在提供安全防护的同时不影响访问速度。传统 WAF 通常需要将流量牵引到中心节点处理,存在一定的延迟开销。
问:已经使用华为云 CDN 的用户如何接入 EdgeSec?
答:已使用华为云 CDN 的用户,购买 EdgeSec 服务后可直接为加速域名开启安全防护相关配置。无需重新配置域名解析,在 EdgeSec 控制台的“域名接入”页面添加已有域名即可。
问:配置的防护规则为什么不生效?
答:可从以下三方面排查:在“安全防护 > 域名接入”界面检查“工作模式”是否已设置为“开启防护”;在“安全防护 > 防护策略”界面确认配置的规则是否正确;确认规则生效等待时间是否已过(通常需要几分钟)。
问:EdgeSec 支持哪些编程语言的 SDK?
答:EdgeSec 支持多种主流编程语言的 SDK,包括 Java、Python、Go、Node.js 等。具体 SDK 列表和获取地址可在华为云官方文档的“SDK 概述”章节查看,也可在 API Explorer 中直接生成对应语言的 SDK 代码示例。
问:EdgeSec 的日志可以保存多久?如何导出?
答:EdgeSec 控制台支持查看所有防护域名最近 30 天的防护事件数据。如需更长时间的日志存储和分析,可将攻击日志和访问日志记录到云日志服务(LTS)中,通过 LTS 进行长期存储、检索和导出。
问:专业版和企业版如何选择?
答:如果业务主要面临 CDN 资源被盗刷、无大流量 DDoS 攻击的场景,选择专业版即可。如果业务面临大流量 DDoS 攻击或 CC 攻击超过 100 万 QPS,或需要 AI 行为检测 BOT、可定制 Tbps 级别 DDoS 防护等高级能力,应选择企业版。



