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”