本文主要介绍如何配置WAF,对API网关上发布的API进行增强安全防护。
概述
API网关的核心是为API提供认证、防篡改、防重放、参数验证、全链路签名、限流等诸多安全功能,因此针对恶意攻击者精心构造的攻击请求,进行应用层攻击(如OWASP TOP10常见Web攻击等)、暴力破解等情况,您可以考虑接入云盾Web应用防火墙(简称WAF),从而避免遭到入侵导致数据泄露,更好地保障您的业务安全。
API网关和WAF完全兼容,可以参考以下步骤为API接入WAF。
前提条件
-
已在API网关发布API。
操作步骤
-
在API分组上绑定域名,操作过程详见使用自定义域名调用API。绑定成功后:
在 API 网关的独立域名管理页面,单击右上角绑定域名可添加独立域名。已绑定域名的表格列信息包括:
-
独立域名:已绑定的域名地址
-
网络类型:例如内网
-
WebSocket通道状态:未开通时可单击开通链接开启
-
合法状态:例如正常
-
环境:例如默认
-
SSL证书:显示证书过期时间,可单击更新证书进行更新
-
Http至Https的自动跳转:未开启时可单击开启链接启用
-
操作:支持删除域名、更改环境、删除证书
重要由于后续步骤中还需配置WAF,建议当前阶段绑定域名时使用TXT解析。
-
-
在WAF上添加域名。进入WAF控制台。
Web应用防火墙2.0
-
在左侧导航栏选择管理>网站配置,然后选择添加站点。根据实际情况填写以下主要信息:
-
域名:需要和步骤一中API网关分组上绑定的域名一致。
-
协议类型:需要和API网关中发布API的协议类型一致。
-
服务器地址:选择其他地址,填写API网关分组中为分组分配的公网二级域名。
在Web应用防火墙的添加网站信息页面,配置以下参数:
-
域名:填写需要防护的网站域名。
-
协议类型:勾选HTTP。
-
服务器地址:选择其它地址,填写源站服务器IP地址。
-
服务器端口:HTTP端口默认为80。
-
WAF前是否有七层代理:选择否。
-
负载均衡算法:选择IP hash。
-
资源组:选择默认资源组。
-
-
点击下一步,按照WAF的提示,站点添加成功。之后为域名添加CNAME解析记录,将域名解析至WAF的CNAME地址,逐个完成业务流量的切换。
登录Web应用防火墙控制台,在左侧导航栏选择网站接入,在域名列表页签中找到目标域名并展开,即可查看该域名对应的CNAME地址。
Web应用防火墙3.0
-
在左侧导航栏选择接入管理,在CNAME接入页签单击接入。参考通过CNAME接入为网站开启WAF防护完成接入。
-
根据实际情况在配置监听中完成如下配置:
-
域名:需要和步骤一中API网关分组上绑定的域名一致。
-
协议类型:需要和API网关中发布API的协议类型一致。
-
-
根据实际情况在配置转发中完成如下配置:
-
回源域名:填写API网关分组中为分组分配的公网二级域名。
-
在接入域名页面完成配置监听(第一步),需要设置以下配置项:
-
域名:输入待防护的网站域名。
-
协议类型:勾选 HTTP 或 HTTPS(至少选择一种协议),HTTPS 可开启国密HTTPS。
-
WAF前是否有七层代理(高防/CDN等):选择是或否。
-
更多配置:可开启IPv6和独享IP。
-
防护资源:选择共享集群或共享集群智能负载均衡。
-
资源组:在下拉框中选择资源组。
-
-
-
完成上述步骤后,为了避免用户直接绕过WAF通过API网关的公网二级域名访问API网关。我们建议您到API网关控制台关闭分组二级域名的访问。关闭后,直接通过API网关分组二级域名的访问将会失败,而通过WAF域名的访问不受影响。
在API网关控制台的分组基本信息页面,基本信息区域显示地域、名称、API分组ID等信息。二级域名区域包含公网二级域名(仅供测试使用,每天有1000次访问限制,建议绑定独立域名)、API网关自调用域名和内网VPC域名。在二级域名区域右侧,单击关闭分组二级域名访问可关闭分组的二级域名访问功能。