【问题标题】:How can I only allow a specific origin to access content from Cloudfront/S3 Origins when requested via iFrame?当通过 iFrame 请求时,如何仅允许特定源访问来自 Cloudfront/S3 源的内容?
【发布时间】:2022-01-12 13:23:45
【问题描述】:

Here is an image of the general idea I want to accomplish

我有一个 react 应用程序,它通过来自 subdomain.zendesk.com 的 iFrame 作为 Zendesk 应用程序托管,iFrame 从 Cloudfront / S3(使用 S3 Origins)获取内容并将其显示在 Zendesk UI 中。

我正在尝试保护它并希望将对内容的访问限制在特定来源(例如 subdomain.zendesk.com),以便如果有人要直接查看 Cloudfront 分发(通过导航到 xxxx.cloudfront. net) 它会拒绝请求。

如何做到这一点?我已经尝试使用 AWS WAF 并创建一个规则来查看请求源标头并将其与子域 url 匹配(例如源:subdomain.zendesk.com)但这不起作用所以我认为我在叫错使用它的树。

我还尝试为分发行为创建自定义源请求策略,但同样没有产生任何结果。

Zendesk 确实提供了签名的 url 功能,其中初始请求变成了对服务器的 POST 请求,其中包含 JWT 作为请求负载中的表单数据,我读到可以使用 Lambda@edge 来完成这个,我试过了实现这一点,但到目前为止我还没有运气。

非常感谢任何关于我对这些服务的误解的提示、示例或大纲。

【问题讨论】:

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


    【解决方案1】:

    为了从社区获得更好的支持,请分享您问题中的具体用例,并详细分享您尝试过的内容和错误。

    有多种方法可以实现您在图片中提到的内容:

    • 为每个域创建多个 CloudFront 分配,它们可以根据需要具有相同或唯一的来源

    • 使用“路径”或“路由”而不是域来重定向流量,例如:same-domain.com/path1 same-domain.com/path2

    • 使用 Lambda@Edge 并根据域重定向流量

    您不能使用多个域进行重定向(CloudFront 的行为功能)

    【讨论】:

      猜你喜欢
      • 2018-03-30
      • 2022-01-09
      • 2012-07-04
      • 1970-01-01
      • 1970-01-01
      • 2021-02-03
      • 2018-10-27
      • 1970-01-01
      • 2020-12-29
      相关资源
      最近更新 更多