【问题标题】:Amazon CloudFront vs. S3 --> restrict access by domain?Amazon CloudFront 与 S3 --> 按域限制访问?
【发布时间】:2020-05-22 07:33:23
【问题描述】:

在 Amazon S3 上,您可以按域限制对存储桶的访问。

但据我从有帮助的 StackOverflow 用户那里了解到,您无法在 CloudFront 上执行此操作。但为什么?如果我是正确的,CloudFront 只允许基于时间的限制或 IP 限制(--> 所以我需要知道随机访问者的 IP ......?)或者我错过了什么?

以下是 S3 文档中的一段引述,表明可以进行每个域的限制:

---> " 要允许从您的网站读取这些对象,您可以添加一个允许 s3:GetObject 权限的存储桶策略,使用 aws:referer 键,获取请求必须来自特定网页。”

--> 有没有办法让这个方法也适用于 CloudFront?或者为什么 CloudFront 上没有类似的功能?

--> 有没有类似的服务可以做到这一点,更容易设置?

【问题讨论】:

    标签: amazon-web-services amazon-s3 amazon-cloudfront


    【解决方案1】:

    将 CloudFront 与 WAF(Web 应用程序防火墙)结合使用,您可以根据 IP 地址、引荐来源网址或域来限制请求。

    这是关于限制“盗链”的 AWS 博客教程。

    https://blogs.aws.amazon.com/security/post/Tx2CSKIBS7EP1I5/How-to-Prevent-Hotlinking-by-Using-AWS-WAF-Amazon-CloudFront-and-Referer-Checkin

    在此示例中,它禁止 Referrer: 标头与特定域不匹配的请求。

    【讨论】:

    • 谢谢!文章说:“第 1 步:确定您需要保护的内容。因为我的所有静态文件都在一个单独的子域 (static.example.com) 上,只能从 example.com 访问,所以我将阻止在 static.example.com 下没有以 example.com 结尾的 Referer 的任何文件的热链接。” --> 但是我的视频文件会放在 S3 和 CloudFront 上,带有 CloudFront URL,而不是放在我自己的 static.example.com 上,不是吗?那么,当文章谈到文件位于 static.example.com 上时,WAF 如何保护我的 CloudFront 文件?我误会了什么?
    • 我以为您想确保引荐来源网址来自您的域。请说明您的情况(具体说明)以及您希望保护文件的标准。
    • 我的网站 - www.example.com - 在 Hostgator 共享服务器上。我必须显示 360 度视频。 360video 播放器是 Pano2VR 的自定义播放器。这是一个简单的 JS 文件(我们称之为 PLAYER.JS),它位于我的 www.example.com 上。这个 JS 文件直接指向我的 MP4 文件。 MP4 文件不在我的 www.example.com 上,而是在连接到 CloudFront 的 Amazon S3 上。他们现在有一个 CloudFront URL。目标:只有 www.example.com 上的 PLAYER.JS 可以播放 CloudFront MP4 视频。链接到该文件的其他人应该被拒绝访问。我希望它更清楚?如果不让我知道。谢谢!
    • 是的,所以在这种情况下,上面的示例应该就是您要查找的内容:执行引荐来源网址以确保引荐来源网址仅为 www.example.com。但是,您需要验证 PLAYER.JS 在加载视频时是否设置了 Referrer: 标头。
    • 知道了,帮了大忙!!
    猜你喜欢
    • 2018-11-10
    • 2019-04-13
    • 1970-01-01
    • 2017-12-30
    • 2019-11-17
    • 2016-02-08
    • 2015-05-21
    • 2023-03-11
    • 2019-04-23
    相关资源
    最近更新 更多