php - 使用预签名 URL 限制对 S3 上静态站点的访问?
问题描述
我们有一个网站,上面有 iframed 静态网站。基本上,这些“网站”是基于 HTML 的杂志出版物,我们只是将它们 iframe 放入我们经过身份验证的用户的页面中。这不是一个理想的情况,被认为是暂时的。
出于各种原因,我们正在尝试使用 S3 来托管这些出版物。
现在,为索引页面获取一个预签名的 url 是完全可能且超级容易的,但当然所有链接的图像、样式和 js 都无法加载。我想知道是否有一种方法可以嵌入这些“站点”,而无需在 aws 中为我们的每个成员创建用户,也无需重新编写 HTML 以使用附加资源的预签名 URL。
提前致谢。
解决方案
与其使用直接到 S3 的方法,不如考虑使用CloudFront作为静态站点前面的层。
CloudFront 与 S3 类似,支持预签名 URL,但它还包括一个称为签名 cookie的功能。
通过使用签名 cookie,所有资产都可以通过其现有 URL 访问(无需在 HTML 内容中替换),而签名 cookie 将在页面加载时验证并显示来自特定域的所有内容。
推荐阅读
- c# - 绘制折线并显示其相关 ID
- python - 使用 python opengl (PyOpenGL) 创建几何着色器失败
- javascript - 提交而不重新加载页面
- django - 来自 Django Rest Api 框架的响应
- merge - “工作表”对象没有属性“_merged_cells”
- mysql - 错误:发送后无法设置标头。(jwt 身份验证)
- spring - 自动装配注释在 DAO 类中不起作用。使用弹簧
- syslinux - 从 U 盘启动 memtest86
- angularjs - Angularjs 1.7.7 + webpack - 只有 prod build 显示注入器模块错误。如何解决?
- android - Android:受信任的证书颁发机构的嵌入式列表如何更新?