# CDN回源OBS桶场景下连接WAF提升OBS安全防护
#### 应用场景
当您的网站域名开启了华为云CDN加速，且回源到华为云对象存储 OBS（Object Storage Service，OBS）时，如果该网站存在一定的Web攻击风险，我们推荐您组合使用CDN、OBS和Web 应用防火墙 WAF（Web Application Firewall），将开启CDN加速的域名接入WAF，实现OBS的安全防护。本文介绍如何为业务同时部署CDN、OBS、WAF。
本实践建立在已将[域名添加到CDN用于内容加速](https://support.huaweicloud.com/qs-cdn/cdn_01_0059.html)，并将请求回源到OBS桶（此时，域名DNS解析指向CDN的CNAME地址，源站为OBS域名），如何使网站流量经过WAF进行防护。
#### 方案架构及方案优势
华为云CDN可以有效加速网站，WAF可以拦截网站恶意流量，而OBS桶提供海量文件存储。将数据存放在OBS桶中然后通过配置CDN加速，WAF过滤恶意请求，这样构造的业务系统可以在降低成本的同时，提高OBS数据的安全防护。
![](https://support.huaweicloud.com/bestpractice-waf/zh-cn_image_0000001911922321.png "点击放大")
#### 资源与成本规划
表1资源和成本规划 
| 资源        | 资源说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | 每月费用                                                                               |
|:---|:---|:---|
| OBS桶      | - 计费模式：包年/包月  - 资源包类型：标准存储多AZ包  - 规格：100G  - 购买数量：1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | 具体的计费方式及标准请参考[计费说明](https://support.huaweicloud.com/price-obs/obs_42_0001.html)。   |
| CDN    | - 计费模式：按需计费  - 支持使用资源包                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | 具体的计费方式及标准请参考[计费说明](https://support.huaweicloud.com/price-cdn/cdn_01_0155.html)。 |
| Web应用防火墙 | 云模式-标准版： - 计费模式：包年/包月  - 域名数量：10个防护域名  - QPS配额：2,000QPS业务请求  - 支持带宽峰值： - 源站服务器部署在华为云内：100Mbps  - 源站服务器部署在华为云外：30Mbps     | 具体的计费方式及标准请参考[计费说明](https://support.huaweicloud.com/price-waf/waf_03_0001.html)。  |
   
#### 约束条件
- 仅WAF云模式的CNAME接入支持该场景。
- 该场景下，WAF只能防护网站动态内容、较小的静态资源文件。因此，如果OBS存储的资源为大文件(100M以上)，不建议使用云WAF进行防护。
 
#### 步骤一：购买云模式标准版
1. [登录Web应用防火墙控制台](https://console.huaweicloud.com/waf/?locale=zh-cn)。
2. 在页面右上角，单击"购买WAF实例"，进入购买页面，"WAF模式"选择"云模式"。 
   - "区域"：根据防护业务的所在区域就近选择购买的WAF区域。
   
   - "版本规格"：选择"标准版"。
   
   - "扩展包"及"购买时长"：根据具体情况进行选择。
   
   
   
   
3. 确认参数配置无误后，在页面右下角单击"立即购买"。
4. 确认订单详情无误后，阅读并勾选《Web应用防火墙免责声明》，单击"去支付"，完成购买操作。
5. 进入"付款"页面，选择付款方式进行付款。 
   订单支付成功后，单击"进入Web应用防火墙控制台"，进入WAF"总览"页面。将鼠标悬停在"版本管理"区域，查看已购实例版本及其详细规格。
   
   
 
 #### 步骤二：在OBS中绑定CDN加速域名
1. 登录[OBS管理控制台](https://console.huaweicloud.com/console/?locale=zh-cn#/obs/manager/buckets)。
2. 在控制台左上角，单击![](https://support.huaweicloud.com/bestpractice-waf/zh-cn_image_0000002304713360.png)图标，选择区域或项目。
3. 在左侧导航树中，选择"桶列表"，单击目标桶名称，进入"对象"页面。
4. 在左侧导航树中，选择"域名管理"，进入"域名管理"界面。
5. 单击"配置加速域名"，在"源站信息"所在行，复制桶域名。
   
   "加速域名"：配置为在CDN中配置的加速域名。
   其他参数的详细配置请参见[配置加速域名](https://support.huaweicloud.com/usermanual-obs/obs_03_0600.html)。
   完成域名绑定后，您可以在浏览器输入域名和OBS桶中任意文件名称（例如，\<被防护域名\>/test.png，test.png为上传到OBS桶中的图片名称），如果网站能正常访问，表示域名添加成功。
   
   
 
#### 步骤三：将域名接入WAF，源站地址为OBS域名
为了实现WAF对OBS桶的防护，您需要将开启CDN加速且绑定OBS桶的域名接入WAF，并将源站修改为OBS域名。
1. [登录Web应用防火墙控制台](https://console.huaweicloud.com/waf/?locale=zh-cn)。
2. 在左侧导航栏，单击"接入管理"。
3. 在"接入管理"页面，选择"云模式-CNAME"页签后，单击"添加防护网站"。 
   若仅开通一种接入模式，则直接单击"添加防护网站"。
   
   
4. 在添加防护网站页面，关键参数配置如[表2]。
   
   其他参数的配置请参见[添加防护域名（云模式-CNAME接入）](https://support.huaweicloud.com/usermanual-waf/waf_01_0002.html)。
    表2配置信息 
   | 配置项   | 配置说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
   |:---|:---|
   | 防护域名  | 填写[步骤二：在OBS中绑定CDN加速域名]中，绑定到OBS中的域名。                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
   | 防护端口 | 填写需要防护的域名对应的业务端口。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
   | 服务器配置   | - 对外协议：客户端请求访问服务器的协议类型。包括HTTP、HTTPS两种协议类型。  - 源站协议：Web应用防火墙转发客户端请求的协议类型。包括HTTP、HTTPS两种协议类型。  - 源站地址：填写网站对应的源站服务器的公网IP地址或源站域名，用于接收WAF转发回源的正常业务请求（回源请求），此处填写[OBS桶域名]。 在OBS"概览"页的"域名信息"栏，也可复制OBS桶域名。   - 源站端口：WAF转发客户端请求到服务器的业务端口。   |
      
   
   
5. 单击"下一步"，完成防护网站基本信息填写。根据"添加防护网站"面板提示，完成如下操作： 
   图1添加域名完成   
   ![](https://support.huaweicloud.com/bestpractice-waf/zh-cn_image_0000001920672218.png "点击放大")
   1. [放行回源IP](https://support.huaweicloud.com/usermanual-waf/waf_01_0002.html#section4)
   
   2. [本地验证](https://support.huaweicloud.com/usermanual-waf/waf_01_0002.html#section6)
   
   
   完成上述步骤后，您可以在域名列表，查看已添加的域名"接入状态"。此时，域名"接入状态"为"未接入"，原因为"修改DNS解析"。
   
   
6. 单击"步骤三：修改代理回源地址"，复制WAF CNAME地址。
   
   图2复制WAF CNAME   
   ![](https://support.huaweicloud.com/bestpractice-waf/zh-cn_image_0000002245662784.png "点击放大")
   
   
 
#### 步骤四：修改CDN源站为WAF提供的CNAME地址
1. 进入[公网域名列表页面](https://console.huaweicloud.com/dns/?#/dns/publiczones)。
2. 在左侧导航树中，选择"域名管理"。
3. 在域名列表中，单击需要修改的域名或域名所在行的"设置"，进入域名配置页面。
4. 选择"基本配置"++页++ 签，在源站配置模块，单击"编辑"。
   
   "源站地址"文本框中输入中[6]复制的WAF CNAME值。
   
   
 
#### 操作结果验证
完成配置后，您可以再次在浏览器输入已添加的域名和OBS桶中任意文件名称（例如，\<被防护域名\>/test.png），test.png为上传到OBS中的图片名称），如果网站能正常访问，表示域名添加成功。
您也可以在浏览器输入已添加的域名和Web攻击代码（例如，SQL注入：**curl -kv \<被防护域名\>?name='1%20or%201=1'**），如果返回418拦截提示页面，表示攻击被拦截，WAF防护成功。
#### 后续操作
完成上述配置后，WAF会默认为域名开启Web基础防护规则，通过对访问域名的请求特征进行识别和检测，将正常的访问请求转发给OBS私有桶，实现安全防护。您也可以根据实际情况，开启更多的防护策略，详见[防护策略配置](https://support.huaweicloud.com/usermanual-waf/waf_01_0129.html)。
