假设全球用户按一定比例访问CloudFront,一共消耗了40PB流量。那么按照CloudFront标准的阶梯价格,DTO流量费用是多少?可参考本文测算。
Continue reading “CloudFront 流量DTO的阶梯价格测算表”Category: Edge
CloudFront, CDN, and etc.
使用Athena分析Cloudfront Standard Log查询CNAME流量和5xx错误
更新于2024年7月,加入5xx错误排查方法。
本文的分析实现两个目的:1)确认一个发布点上绑定多个CNAME时各自的流量;2)找到CloudFront控制台的监控面板上5xx报错的原因。
一、背景
1、关于CloudFront日志种类
Cloudfront日志分成Standard Log标准日志和Realtime Log实时日志。后者时效性好,但是需要Kinesis等日志处理方案,成本更高。对于排查一般的错误,使用标准日志保存到S3上,用Athena查询分析即可。
Continue reading “使用Athena分析Cloudfront Standard Log查询CNAME流量和5xx错误”CloudFront/CDN服务相关汇总
为方便查找,CloudFront相关常用内容汇总如下。
Level 100
从CloudFront获取客户端真实IP地址、并使用CloudFront内置的IP地址库获取访问者所在国家
将CloudFront对S3源站的访问授权从原有的OAI切换为最新的OAC
使用CloudFront发布EC2上的应用并使用Managed prefix功能限制EC2只接受CloudFront回源流量
使用WAF检查Referer Header对外部引用进行干预
看懂一份AWS CloudFront(含Origin Shield)的CDN服务账单
Level 200
部署你的第一个边缘函数 Lambda@Edge并查看运行日志
通过CloudFront Functions边缘函数实现访问跳转
CloudFront Extensions官方使用指南的使用指南
使用Athena分析Cloudfront Standard Log查询CNAME流量和5xx错误
Level 300
CloudFront Extensions官方使用指南的使用指南
一、背景
Amazon CloudFront Extensions是亚马逊云科技开发的基于CloudFront的扩展方案,提供监控、版本控制、一键部署的Lambda@Edge函数等功能。目前CloudFront Extensions仅支持部署到AWS全球区域,不支持中国区域。
CloudFront Extensions作为AWS中国团队自开发的解决方案,通过CloudFormation堆栈进行部署,它包含了基于图形界面的WEB UI进行交互。However,官方文档编写不足,没有AWS基础的新用户上手困难。
本文针对以上痛点编写。
Continue reading “CloudFront Extensions官方使用指南的使用指南”通过CloudFront Functions边缘函数实现访问跳转
本文介绍如何使用CloudFront Functions实现访问跳转。
Continue reading “通过CloudFront Functions边缘函数实现访问跳转”看懂一份AWS CloudFront(含Origin Shield)的CDN服务账单
一、背景
CloudFront Origin Shield功能是在CloudFront区域缓存之下的一层额外缓存。当被加速的源站不在AWS上的时候,开启这个功能和优化访问体验。当被加速的源站是AWS上的资源时候,对源站请求会汇聚到Origin Shield所在的区域,可以起到优化缓存的作用。
开启了CloudFront Origin Shield之后,产生的云费用账单会有数条,此时如何分析每一项费用的产生是否合理、如何进行优化?
Continue reading “看懂一份AWS CloudFront(含Origin Shield)的CDN服务账单”部署你的第一个边缘函数 Lambda@Edge并查看运行日志
更新于2024年1月,创建的函数可使用Nodejs 16/18运行
一、背景
AWS的CDN服务CloudFront在Edge端(边缘侧)具有一定的算力,可运行简单程序满足应用交互需要,这些场景包括:
- 身份验证
- 无须连接源站(ALB/EC2/S3)的情况下进行业务逻辑运算给源站卸载(Offload)压力
- 按访问者的环境(如浏览器)、或访问设备等信息定制输出结果
- 为静态源站(S3)增加处理能力
- 防爬虫等应用层防护(可与ALB/WAF搭配防护)
实现这些场景,可通过Edge的边缘侧算力实现。具体实现又有两个产品:Lambda@Edge和CloudFront Function。
Continue reading “部署你的第一个边缘函数 Lambda@Edge并查看运行日志”使用CloudFront发布EC2上的应用并使用Managed prefix功能限制EC2只接受CloudFront回源流量
一、背景
CloudFront使用的一般场景是发布ALB上的应用,而ALB又是发布一组EC2应用。CloudFront也支持直接发布EC2不使用ALB。当然这是不推荐的,因为ALB会提供了更好的多机流量调度,通过目标组实现健康检查,确保要发布的应用正常对外提供服务,并具备水平扩展能力。
此前,如果希望对ALB和EC2做限制,使其只允许来自CloudFront回源流量,并且不再接受其他互联网访问,那么这个需求常见的解决方案是:
Continue reading “使用CloudFront发布EC2上的应用并使用Managed prefix功能限制EC2只接受CloudFront回源流量”CloudFront签名上手:使用CloudFront做S3存储桶的私有内容分发
本文的效果演示Demo视频参考这里。
一、背景
1、传统企业与内容分发
以往,私有内容分发一直是数字原生的互联网行业的技术需求,广泛用于经过会员体系验证的版权内容分发,包括但不限于视频播放、音频播放、游戏下载、软件分发等。
如今,随着传统企业的数字化转型越来越普遍,大量企业内部应用技术栈全面互联网化,许多企业的应用系统已经突破了传统的VPN内网概念,转而在互联网上运行。企业日常运营产生各种流程文档、数据文件、日志等需要被分发给员工和第三方合作伙伴。这种场景下如何能有保护地企业私有内容的安全分发,就成为了企业数字化转型的安全关键。
Continue reading “CloudFront签名上手:使用CloudFront做S3存储桶的私有内容分发”使用WAF检查Referer Header对外部引用进行干预
一、背景
在CloudFront的控制台上,提供了一个TOP Refer
的报表,这个报表用于显示本站的用户来源是来自哪个原始网站。这个机制是如何工作的呢?
假设如下的场景:
- 主网站名为 https://www.abc.com/index.html
- 图片的域名为 https://image.abc.com/image01.png
当客户端浏览器打开主网站时候,浏览器会向图片域名image.abc.com服务器的发送一个图片访问请求,并包含一个特殊的HTTP Header名为Referer。Referer Header的内容就是之前所在页面的域名,即www.abc.com。因此,图片服务器只需要检查Referer域名,即可获知引用此图片的原始网址。Referer Header可以被WEB应用服务器获取,并在应用层代码做判断。更高效的办法,是从客户访问前端的CloudFront和WAF上进行干预,来判断是否是合法的引用。
需要注意的是:检查Referer并不能完全阻断所谓的“盗链”和非法链接,因为攻击者可以简单去构造Referer Header来模拟一个正常请求。所以实施Referer检查的意义是可以避免图片等素材被其他网址的浏览器简单引用,可减少由此产生的外部流量等问题。如果需要100%的阻止外部访问且必须所有资源都经过身份验证,请参考CloudFront Signature签名功能。
下边介绍如何通过WAF检查Referer Header。
Continue reading “使用WAF检查Referer Header对外部引用进行干预”将CloudFront对S3源站的访问授权从原有的OAI切换为最新的OAC
一、背景
CloudFront对S3源站保护功能之前采用源访问身份Origin Access Identity(简称OAI)机制。由于OAI的权限管理颗粒度较粗,且不支持需要AWS Signature V4签名的POST方法,不支持SSE-KMS集成等。由于这一系列的局限,2022年起被新的源访问控制功能Origin Access Control (OAC)所取代。
本文讲述如何切换配置。需要注意的是,对生产环境修改配置可能导致访问失效,请务必提前做好技术储备和测试,生产环境谨慎调整。
Continue reading “将CloudFront对S3源站的访问授权从原有的OAI切换为最新的OAC”CloudFront签名Signed-URL和Signed-Cookie演示
如视频。(有解说,请调整音量)
Continue reading “CloudFront签名Signed-URL和Signed-Cookie演示”从CloudFront获取客户端真实IP地址、并使用CloudFront内置的IP地址库获取访问者所在国家
本文更新于2024年3月。
一、背景
CloudFront CDN服务是七层代理服务,接受最终用户的客户端连接和访问,并终结客户端的网络访问通道。然后,CloudFront会通过互联网回源站获取要分发的内容。此时,在后端的源站是无法获知客户端的真实IP地址的,源站只能看到CloudFront的公网IP地址。这样对于源站应用而言,不能准确的判断来访者所在地区和国家,无法实行不同国家的运营策略。本文介绍在CloudFront背后的源站如何能获取客户端的真实IP地址、以及访问者所在国家。
Continue reading “从CloudFront获取客户端真实IP地址、并使用CloudFront内置的IP地址库获取访问者所在国家”开启 AWS CloudFront CDN加速服务的HTTP3/QUIC协议支持
本文更新于2023年9月。
AWS Global全球区域的CloudFront在2022年8月正式宣布了HTTP3协议的支持。参考AWS官网链接。
那么HTTP3和QUIC是什么,又如何使用呢?
Continue reading “开启 AWS CloudFront CDN加速服务的HTTP3/QUIC协议支持”AWS WAF已经为Java Spring漏洞提供防护
请参考AWS Managed Rules changelog 更新日志:
https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-changelog.html
Known bad inputs managed rule group 规则组说明: