专栏名称: 亚马逊云科技
亚马逊AWS的公众号,第一时间获取关于AWS国内外服务的资讯。AWS中国(北京)区域由光环新网运营。
目录
相关文章推荐
51好读  ›  专栏  ›  亚马逊云科技

大咖专栏 | 防盗图利器:AWS WAF – Web 应用程序防火墙初体验

亚马逊云科技  · 公众号  ·  · 2017-06-20 19:47

正文


大咖专栏

大咖专栏主要刊登亚马逊AWS诸位大咖亲自撰写的Blog,内容涉猎广泛,话题讨论前沿,且与实战紧密相连。我们非常欢迎小伙伴们在评论区留言,与大咖互动交流!


今天为大家撰文的大咖,是我们的AWS解决方案架构师—— 薛峰 老师。

薛峰

AWS解决方案架构师

薛峰负责AWS的云计算方案架构的咨询和设计,同时致力于AWS云服务在国内和全球的应用和推广,在大规模并发应用架构、移动应用以及无服务器架构等方面有丰富的实践经验。在加入AWS之前曾长期从事互联网应用开发,先后在新浪、唯品会等公司担任架构师、技术总监等职位。对跨平台多终端的互联网应用架构和方案有深入的研究。


1. 背景介绍

AWS WAF,全称是Web Application Firewall,即Web 应用程序防火墙,可以帮助用户保护Web 应用程序免受常见的Web漏洞攻击。通常这些攻击会损害Web应用的安全性,影响可用性,消耗过多的资源,增加成本,还降低响应速度和用户体验。


WAF可以让用户创建定制规则进行流量筛选,阻隔恶意访问,保障正常请求。比如,可以根据 IP 地址、HTTP 标头、HTTP 正文或 URI 字符串来筛选 Web 请求,这样便能阻止诸如 SQL 注入或跨站点脚本等常见攻击模式。


和其它诸多 AWS 服务一样,WAF 的所有功能也可以通过AWS管理控制台或API进行配置。这便利了用户团队的不同角色,不论是开发人员、DevOps工程师还是安全审查专家都可以方便使用,从开发到部署的全过程系统地管理Web应用的安全。

WAF 和AWS的Web相关服务紧密结合,目前支持CloudFront和Application Load Balancer。AWS WAF 让您能够创建集中化的规则集合,而后部署到多个网站上。用户通常有多个网站和 Web 应用程序,使用WAF可以只定义一组规则并复用于多个应用程序上。WAF也是AWS全托管的服务,用户无需担心其扩展和可用性。只需在正确的资源上启用WAF,无需部署任何额外软件即可完成部署。并且只需要部署一次,即可以全球的边缘节点全部生效。


作为防火墙,WAF当然也少不了监控和报警。WAF 可以让用户设置条件来监视哪些请求。提供准实时地 Web 流量监测报告,并以此信息来创建新的规则或使用 Amazon CloudWatch 的进行报警。


今天,我们以WAF实现防盗图这个常见应用场景,帮助大家快速上手,体验其强大和便捷。


2. 部署与配置WAF

现在主流的Web应用都使用了无cookie域名来加速静态内容,我们这里也进行类似的部署,如网站域名是 example.com,图片服务使用另一个域名 example_img.com。禁止盗图的效果可以从下表来概述。

调用图片的域名

*.example.com

其它非法域名

响应效果

200 OK

403 Forbidden

WAF目前支持CloudFront和Application Load Balancer,我们这个例子中防盗图要保护的是图片服务器,这里我们所使用的就是CloudFront提供的CDN。我们用一个现成的CloudFront分发来作演示,使用AWS 的DNS服务Route 53 配置了域名 imgtest.simg.cf。为了演示效果,我们还使用EC2配合搭建了一个简单的Web服务器,也使用Route 53 配置了域名allow.snowpeak.cf。有关EC2、ClourFront和Route 53的使用这里不再赘述,请参见各自相关文档。

现在已有了具体的2个域名,我们要实现前述的禁止盗图效果,把规则具体化为以下控制流程:

·

Referer请求头包含“://allow.snowpeak.cf/”(不写具体的协议更简单,可以同时支持HTTP和HTTPS请求)则允许访问。


·

其它情况下禁止访问。

登录AWS WAF管理控制台

https://console.aws.amazon.com/waf/home

在左侧导航菜单中点击AWS WAF > Web ACLs,来到Web ACLs页,点击Create Web ACL按钮会前进到Set up a web access control list (web ACL)向导。


如果前进到Concepts overview页,直接点击右下角Next按钮,前进到Step 1: Name web ACL页。


2.1 创建 Web ACL

a.

Web ACL name 输入ImgAntiHotLink







请到「今天看啥」查看全文