【问题标题】:Block s3 public url access for my image and only show the image in mobile app or website阻止我的图像的 s3 公共 URL 访问,仅在移动应用程序或网站中显示图像
【发布时间】:2019-07-17 18:47:59
【问题描述】:

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

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

    根据您的问题,我建议:

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

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

    见:Share an Object with Others - Amazon Simple Storage Service

    【讨论】:

    • 非常感谢约翰,真的很有帮助,你能解释一下预签名的 URL 吗?会更有帮助
    猜你喜欢
    • 1970-01-01
    • 2017-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-15
    • 1970-01-01
    • 1970-01-01
    • 2013-08-18
    相关资源
    最近更新 更多