首页 > 解决方案 > 使用预签名 URL 限制对 S3 上静态站点的访问?

问题描述

我们有一个网站,上面有 iframed 静态网站。基本上,这些“网站”是基于 HTML 的杂志出版物,我们只是将它们 iframe 放入我们经过身份验证的用户的页面中。这不是一个理想的情况,被认为是暂时的。

出于各种原因,我们正在尝试使用 S3 来托管这些出版物。

现在,为索引页面获取一个预签名的 url 是完全可能且超级容易的,但当然所有链接的图像、样式和 js 都无法加载。我想知道是否有一种方法可以嵌入这些“站点”,而无需在 aws 中为我们的每个成员创建用户,也无需重新编写 HTML 以使用附加资源的预签名 URL。

提前致谢。

标签: phpamazon-web-servicesamazon-s3

解决方案


与其使用直接到 S3 的方法,不如考虑使用CloudFront作为静态站点前面的层。

CloudFront 与 S3 类似,支持预签名 URL,但它还包括一个称为签名 cookie的功能。

通过使用签名 cookie,所有资产都可以通过其现有 URL 访问(无需在 HTML 内容中替换),而签名 cookie 将在页面加载时验证并显示来自特定域的所有内容。


推荐阅读