Amazon Shield是一项托管服务,旨在保护应用程序和网站免受分布式拒绝服务(DDoS)攻击的影响。它提供了两个层级的保护:Amazon Shield Standard和Amazon Shield Advanced。
分布式拒绝服务(DDoS)攻击
https://aws.amazon.com/cn/shield/ddos-attack-protection/#WHAT_IS_A_DDOS_ATTACK
Amazon Shield Standard是一项免费服务,为所有亚马逊云科技客户提供基本的DDoS保护。它可以自动检测并缓解常见的网络和传输层DDoS攻击,如大流量的泛洪攻击、各种协议反射攻击等。Amazon Shield Standard致力于保护亚马逊云科技平台的稳定性。防止被攻击的客户影响其他的客户的工作稳定性。是对于DDoS事件不敏感的客户的常见选择。
Amazon Shield Advanced是一项可选的付费服务,提供更高级别的DDoS防护。它利用亚马逊云科技的全球网络和智能检测系统,可以有效应对更复杂和大规模的DDoS攻击。除了网络和传输层保护外,它还覆盖应用层攻击,如HTTP洪水和DNS查询洪水。此外,Amazon Shield Advanced还提供24/7的专家支持和保护服务。我们会在这篇博客里为大家讲解如何启用和部署Amazon Shield Advanced。
内容简介
本文分为两个部分,为您详细介绍如何启用和部署Amazon Shield Advanced,以及相关的优化配置建议。
第一部分重点阐述了在常见的HTTP三层Web架构中,如何将关键资源纳入Amazon Shield Advanced的防护范围。
第二部分介绍了Amazon Shield Advanced中一些其他的建议配置,以提高防护效果。包括创建Protection Group对资源进行分组管理、使用Firewall Manager实现组织级的统一管理,以及满足特殊需求的定制化防护等。遵循这些最佳实践,能够让您的应用获得更全面、更高效的DDoS防护。
第一部分
在常见的HTTP三层Web架构中,如何把资源加入Amazon Shield Advanced的保护中
图1.1
图 1.1展示了一种常见的HTTP应用三层Web架构。在该架构中,用户请求可以通过Amazon CloudFront或应用负载均衡器(ALB)流入后端应用程序。为了有效防护应用免受DDoS攻击的影响,我们需要将请求流量的入口收敛到Amazon CloudFront,并在Amazon CloudFront层启用Amazon WAF和Amazon Shield Advanced服务,对所有经Amazon CloudFront传入的流量进行审查和防护。
第一步:限制ALB仅通过Amazon CloudFront访问
步骤一:将Amazon CloudFront托管IP前缀添加到ALB安全组。
图1.1.1
步骤二:在Amazon CloudFront和ALB上添加固定Header。
虽然我们已经通过安全组配置只允许来自Amazon CloudFront的流量访问ALB,但是攻击者可能会配置一个Amazon CloudFront分发,试图绕过这一限制直接向ALB发起攻击。因此,我们需要采取额外的措施,确保ALB只能被我们自己配置的Amazon CloudFront分发访问。
在Amazon CloudFront端,我们需要为Origin添加一个自定义的回源HTTP头部。这个特殊的头部值将作为Amazon CloudFront发出请求的标记。
在ALB端,我们需要在监听器上配置相应的规则,检查每个传入请求是否携带了我们预先设置的那个特殊头部值。如果请求没有包含该头部或头部值不正确,则直接拒绝该请求,返回403 Forbidden的响应。只有来自我们自己的Amazon CloudFront分发的请求,才能通过这一检查,被正常路由到后端服务器。
通过在Amazon CloudFront和ALB两端分别添加并验证这个自定义头部,我们就构建了一个额外的防护层,确保ALB只能被我们可信的Amazon CloudFront分发访问,有效降低了遭受直接攻击的风险。
Amazon CloudFront:在Origin中添加回源Header。
图 1.1.2
ALB:新建Listener,在Listener的condition中添加Header,将default规则配置为403。
图 1.1.3
目前Amazon CloudFront支持一键启用Amazon WAF,在启用时,最佳实践是先将Amazon WAF设置为监控模式,以防止对正常业务流量造成误拦截。同时,还需要开启Amazon WAF的Rate Limiting,这是有效缓解DDoS攻击的关键手段之一。
图 1.2
启用Amazon WAF后,您可以自定义Web ACL规则,根据特定的IP地址、HTTP头部、请求体等字段来检查传入的请求,识别并阻挡可疑的恶意流量。Amazon WAF提供了一个可管理的规则列表,并支持与Amazon Shield Advanced服务无缝集成,当检测到DDoS攻击时,自动应用缓解规则。
值得注意的是,启用Amazon Shield Advanced后,Amazon WAF的Web ACL费用可以获得部分减免(前1,500个 WCU单位请求次数免费)。因此,将Amazon WAF与Amazon Shield Advanced一起使用,不仅能够提高应用程序的安全性,还可以降低运营成本。
第三步:启用Amazon Shield Advanced
步骤一:订阅Amazon Shield Advanced
您需要先在亚马逊云科技账户中订阅Amazon Shield Advanced服务。该服务目前在组织的管理账号下收取每月3,000美元的订阅费用。一旦订阅,整个亚马逊云科技组织内的所有账户都可以使用Amazon Shield Advanced。
图 1.3.1
步骤二:添加需要防护的资源
在Amazon Shield Advanced控制台的概览页面,点击”添加要保护的资源”:
图 1.3.2
可以选择需要防护的Amazon CloudFront分发、Amazon Route 53托管区域、Amazon Global Accelerator、应用负载均衡器、弹性IP地址(网络负载均衡器以此形式添加)等亚马逊云科技资源:
图 1.3.3
如果需要应用层DDoS防护,请确保已为这些资源关联Amazon WAF Web ACL:
图 1.3.4
配置自动应用层DDoS防护(可选):
Amazon Shield Advanced支持在Amazon WAF里配置自动对七层攻击进行缓解。启用此功能后,Amazon WAF将自动应用一个前缀名为“ShieldMitigationRuleGroup”的预定义规则组,对可疑流量进行处理(阻挡或计数)。此规则的Capacity为150WCU,请预先确保Amazon WAF有足够的容量单位。
启用自动应用层DDoS防护后,可以选择命中此规则的请求是Block还是Count。
图 1.3.5
配置Amazon Route 53健康检测(推荐):
将您的应用程序与Amazon Route 53健康检查关联,Amazon Shield Advanced就能以客户期望的流量阈值更快地检测到影响应用程序健康状况的攻击,提高防护效率。SRT(Shield Response Team) 也可获得资源健康状态,以便适当优先响应不健康的应用程序。
图 1.3.6
由于我们的架构是User -> Amazon CloudFront -> ALB -> Backend,您可以分别为Amazon CloudFront、ALB等资源配置健康检查,再通过一个聚合规则将它们组合,全面监控应用的运行状态。
举例:ALB:TargetResponseTime >= 1000 for 1 datapoints within 1 minute。
图 1.3.7
举例:Amazon CloudFront:5xxErrorRate >= 1000 for 1 datapoints within 1 minute。
图 1.3.8
举例:聚合ALB & Amazon CloudFront:当两者的监控都是healthy时,此健康检测才是healthy。将此规则用于Amazon Shield Advanced的Health Check:
图 1.3.9
设置告警和通知:
当Amazon Shield Advanced检测到DDoS攻击时,Amazon CloudWatch的Metric “DDoSDetected” 会变为非0值,您可以在此配置SNS主题,在检测到攻击时,及时收到通知。
同时当Amazon WAF里配置的限速规则被触发时,也可以通过SNS进行消息通知。
图 1.3.10
审查配置:
图 1.3.11
在将关键资源成功纳入Amazon Shield Advanced防护范围后,您可能希望在遭受大规模DDoS攻击时,能够获得Amazon Shield Response Team(SRT)的更快响应和支持。为此,我们建议您完成以下额外的配置步骤:
图 1.3.12
创建一个Amazon IAM角色,授予SRT访问您账户中Amazon Shield Advanced和Amazon WAF的权限。这样SRT就能够查看相关的攻击指标和日志,以便更好地分析攻击模式并制定缓解策略。
如果您除了Amazon WAF日志外,还有其他相关的日志或信息需要共享给SRT,可以创建一个Amazon S3存储桶,并为SRT团队配置相应的访问权限。SRT团队将利用这些额外的信息,更全面地了解您的应用架构和流量模式,从而提供更准确的指导和建议。
图 1.3.13
完成上述两个步骤后,您可以在Amazon Shield Advanced控制台的概览页面看到这三项配置已经就绪。
图 1.3.14
最后您需要在“Proactive engagement and contacts” 模块中提供您的紧急联系人信息。一旦发生紧急情况。例如您的Amazon CloudFront被DDoS攻击,但是一些应当采取的保护措施还未部署-如Amazon WAF限速规则未设置成Block模式。SRT团队就能够及时与您取得联系,协调应对行动。
图 1.3.15
图 1.3.16
图 1.3.17
值得重点强调的是,为了让Amazon Shield Advanced能够更准确地检测和缓解攻击,请务必提前24-72小时启用该服务。在此期间,Amazon Shield Advanced将学习您应用的正常流量模型,从而能够更好地区分攻击流量和合法业务流量。
此外,正确配置Amazon Route 53健康检查和Amazon WAF速率限制规则,也是确保您在遭受攻击后能够申请成本减免的重要前提条件。亚马逊云科技建议您遵循最佳实践,全面优化Amazon Shield Advanced的防护能力。
第二部分
如何让您的资源更有效地得到Amazon Shield Advance的防护
NACL
对于不能使用Amazon CloudFront做接入的服务,如UDP和非Web的TCP服务。Amazon Shield Advance会把保护资源所在的Public Subnet里的NACL复制部署到亚马逊云科技全球几百个边缘节点和区域的DDoS防护集群,起到放大NACL的防御容量,近攻击源清洗防护的作用。
Protection Group
Protection Group可以将受Amazon Shield Advanced保护的资源进行分组,Amazon Shield Advanced会将它们视为单个受保护实体。您可以根据资源类型或手动选择的方式创建保护组。一个保护组可以包含组成您应用程序的许多不同资源,这些资源可能属于跨越同一亚马逊云科技帐户中不同亚马逊云科技区域的多个保护组。
当您的保护资源为EIP或Global Accelerator时:对于Layer3层和Layer4层的攻击,当保护组中一个资源被Amazon Shield Advanced检测到攻击时,Amazon Shield Advanced会把缓解策略同样部署到保护组的其他资源上,这样在攻击者去攻击保护组里的其他资源时,Amazon Shield Advanced就能更快地做出响应。
在Aggregation有三种统计方式可以选择:
1.Sum:将保护组内所有资源的流量求和。
2.Mean:计算保护组内资源流量的平均值。
3.Max:取保护组内资源的最大流量值。
对于大多数使用场景,我们建议采用Sum的聚合方式。以一个由多个弹性IP地址(EIP)或多个应用负载均衡器(ALB)组成的服务为例,如果将这些EIP或ALB资源都加入同一个Protection Group,并选择Sum作为聚合方式,就能更快速地检测到是否存在DDoS攻击行为。
此外,当某个ALB或EIP发生故障时,业务流量通常会被转移到其他ALB或EIP资源。在这种情况下,使用Sum聚合能够有效防止新增的流量资源被Amazon Shield Advanced误判为攻击流量。通过合理配置Protection Group和Aggregation选项,您可以充分利用Amazon Shield Advanced的防护能力,更高效地应对DDoS攻击。
使用Amazon Firewall Manager实现组织集中式保护管理
Amazon Firewall Manager可以在整个亚马逊云科技组织范围内集中管理和自动应用Amazon Shield Advanced和Amazon WAF的保护策略,覆盖多个账户和资源。它会自动审核账户,发现新的或未受保护的资源,确保Amazon Shield Advanced和Amazon WAF保护得到全面应用,其保护策略费用包含在Amazon Shield Advanced订阅费中。
Customized Protection
如果您有针对第3-7层的特殊防护需求,可以联系您的Amazon TAM(技术账户经理)或Account团队,申请Amazon Shield Advanced的定制化防护服务。
针对不同的防护资源如何进行有效的DDoS防护
亚马逊云科技在DDoS防护过程中,不仅仅依靠Amazon Shield Advanced产品。某些形式的DDoS缓解措施会自动包含在亚马逊云科技的各种服务中。通过使用包含特定服务的亚马逊云科技架构,以及针对用户和应用程序之间网络流量交互的每个部分实施对应的最佳实践,可以进一步提高DDoS弹性。
根据您企业的具体云架构,应该采用什么样的最佳实践来保证系统具备最有效的DDoS防护能力?相信官方《实现DDoS弹性的亚马逊云科技最佳实践》白皮书可为您提供有力的信息参考与指导。
最佳实践白皮书
https://docs.aws.amazon.com/zh_cn/whitepapers/latest/aws-best-practices-ddos-resiliency/aws-best-practices-ddos-resiliency.html
总结
综上所述,本文以一个常见的三层Web架构为例,介绍了采购Amazon Shield Advanced服务后,如何部署和优化Amazon Shield Advanced以及DDoS防护相关的组件的配置,以有效防护应用程序免受DDoS攻击的影响。包括:
如何将关键资源纳入Amazon Shield Advanced保护范围,包括限制ALB只能通过Amazon CloudFront访问、在Amazon CloudFront启用Amazon WAF和启用Amazon Shield Advanced服务等步骤。
在此基础上,我们介绍了如何配置Amazon Route 53健康检查、设置告警通知等,以提高Amazon Shield Advance防护效率。
此外在SRT联系准备方面,我们介绍了创建Amazon IAM角色供Shield Response Team(SRT)访问,并提供紧急联系人信息,以获得更快的响应和支持。
除此之外,我们对于一些高阶的优化配置也做了简要介绍:如使用NACL和Amazon Shield Advance结合放大系统防护能力;创建Protection Group对资源进行分组管理、使用Firewall Manager实现组织级统一管理等。
对于其他的架构,您可以参考《实现DDoS弹性的亚马逊云科技最佳实践》白皮书,对自己架构的相关组件进行DDoS防护方面的调优,以达到系统DDoS防护能力的最佳状态。
本篇作者
李宛真
亚马逊云科技技术客户经理,主要负责企业级客户的安全合规、成本管理和技术支持等工作。目前专注于协助客户落地在亚马逊云科技的安全合规工作。在加入亚马逊云科技前拥有丰富的视频云行业(如 CDN、直播、对象存储等)的技术支持经验。
崔俊杰
亚马逊云科技高级产品解决方案架构师,负责亚马逊云科技云边缘安全相关的服务产品。为亚马逊云科技用户提供DDoS防御、网站前端安全防御、域名安全相关的产品咨询。对Amazon Cloudfront、Amazon Shield、Amazon WAF、Amazon Route 53、Global Accelerator、Global Accelerator等云边缘安全相关产品有深入了解。在计算机安全、数据中心和网络领域有多年的工作经验。
星标不迷路,开发更极速!
关注后记得星标「亚马逊云开发者」
听说,点完下面4个按钮
就不会碰到bug了!
点击阅读原文查看博客!获得更详细内容!