【问题标题】:confusing s3 bucket policy upload issue令人困惑的 s3 存储桶策略上传问题
【发布时间】:2021-06-04 23:59:44
【问题描述】:

我希望我的应用能够将对象放入 s3 存储桶中,并且我希望公众能够读取这些对象。出于某种原因,除非我阻止所有公共访问,否则上传无法正常工作。日志显示此错误:Aws::S3::Errors::AccessDenied

我的阻止公共访问设置如下所示:

我的 Bucket 策略如下所示:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "GetPhoto",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::site-public/photo/*"
        }
    ]

公共访问设置表明他们阻止存储桶策略,但该功能仍被阻止。为什么?

【问题讨论】:

  • 什么功能被阻止(你的客户实际上在做什么?)以及错误代码/消息是什么?
  • 如果您尝试使用公共 ACL 上传对象,除非您关闭所有选项,否则它将被阻止。 Blocking public access S3 Bucket
  • @jarmod 客户端正在上传图片,错误为Aws::S3::Errors::AccessDenied。 @samtoddler 我一直对这个问题感到困惑。我的上传选项中有acl: "public-read"。我不应该阻止某些访问吗?我不希望每个人都能够上传,但我确实希望每个人都能够获取文件。如何在不暴露整个存储桶的情况下上传这些文件?
  • 如果您希望能够使用公开读取 ACL 来selectively make objects public,那么您需要禁用与 ACL 相关的 BPA 设置。
  • 您是如何尝试检索文件的,它们肯定在s3://site-public/photo/ 下吗?

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


【解决方案1】:

您似乎需要能够使用公共读取 ACL 选择性地使对象公开可读,因此您需要禁用与 ACL 相关的阻止公共访问设置。

【讨论】:

    猜你喜欢
    • 2019-02-26
    • 1970-01-01
    • 1970-01-01
    • 2014-01-28
    • 2011-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-26
    相关资源
    最近更新 更多