【问题标题】:s3boto and presigned s3 urlss3boto 和预签名的 s3 url
【发布时间】:2020-07-27 18:50:26
【问题描述】:

我正在使用 django-storages 和 s3boto。

我能够生成在 x 秒后过期的预签名 URL。这可以按需要运行,并且 url 在 x 秒后不再有效。网址如下所示。

https://mybucket.s3.us-east-2.amazonaws.com/media/Users/sale-20200727053948.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAQVNWS6JIFDS34635fasdFS%2Fus-east-2%2Fs3%2Faws4_request&X-Amz-Date=20200727T061840Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=e26a5521268623513182e170fda433kj3lfklejfaslkjdsf

现在,我发现我可以删除“?”之后的内容在字符串中获取以下url,并且永远不会过期。

https://mybucket.s3.us-east-2.amazonaws.com/media/Users/sale-20200727053948.jpg

如果没有预签名 URL 上的参数,我需要什么设置才能确保无法访问图像?

谢谢!

【问题讨论】:

    标签: django amazon-s3 boto


    【解决方案1】:

    Amazon S3 中的对象默认为私有

    如果无需任何身份验证即可读取该对象,则以下至少一项为真:

    • 存储桶有一个存储桶策略,授予对所有或部分存储桶的公共访问权限。
    • 对象有一个访问控制列表(ACL),授予对象的公共访问权限。这可能是在上传对象时设置的,或者之后通过 S3 管理控制台中的“公开”命令设置。

    为了测试,手动将新对象上传到存储桶,然后通过显示的 URL 访问它。 (单击显示的链接。不要使用“打开”按钮,因为它提供了一个签名 URL。)如果该对象可立即访问,则通过存储桶策略授予访问权限。如果无法访问,则上述文件必须在上传过程中被赋予了public-read ACL。

    【讨论】:

      猜你喜欢
      • 2018-12-27
      • 1970-01-01
      • 2014-09-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-18
      • 1970-01-01
      相关资源
      最近更新 更多