阻止对我的图像的 s3 公共 url 访问,并仅在移动应用程序或网站中显示图像

Pre*_*and 1 amazon-s3 amazon-web-services web

我已将所有图像上传到 s3 存储桶中,并允许它使用 s3 url 显示在我的网站中,但是当我直接在浏览器中访问 s3 url 显示图像时,我想阻止这些访问

任何人都可以帮助我如何阻止我的图像的 s3 公共 url 访问,并且只在移动应用程序或网站中显示图像。

Joh*_*ein 5

默认情况下,Amazon S3 中的所有对象都是私有的。

可以通过多种方式授予对对象的访问权限:

  • 一个桶政策可以使整桶(或桶的一部分)公开给大家。还可以指定限制,例如 IP 地址和引用者。
  • 一个访问控制列表的对象可以使对象公开(每个人)上
  • 一个IAM策略可以授予访问特定对象IAM用户
  • 一个预签名URL可以提供私有对象临时访问

根据你的问题,我建议:

  • 保持对象私有(删除存储桶策略和 ACL)
  • 当用户希望访问图像或其他对象时,您的应用程序会确定是否允许用户访问该对象(此逻辑完全由您在应用程序中编写)
  • 如果允许,您的应用程序可以在几行代码中创建一个预先签名的 URL,这将允许移动应用程序或网站在您的应用程序指定的有限时间段(例如 5 分钟)访问对象。在此时间段之后,该 URL 将不再提供访问权限。

因此,您的应用程序可以完全控制是否允许某人访问图像,同时仍然直接从 Amazon S3 提供内容(例如,通过<img>标签在网页中)。

请参阅:与他人共享对象 - Amazon Simple Storage Service