【问题标题】:Amazon AWS S3 bucket anonymous upload using curl使用 curl 的 Amazon AWS S3 存储桶匿名上传
【发布时间】:2017-10-14 15:04:06
【问题描述】:

我正在尝试设置一个 S3 存储桶以接受匿名上传,同时允许存储桶所有者拥有全部权限并阻止公共读取访问。按照here 的代码,我在下面设置了存储桶策略。我想使用 curl 上传到存储桶,但我得到的只是

访问被拒绝

这是存储桶策略:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "allow-anon-put",
            "Effect": "Allow",
            "Principal": {
                "AWS": "*"
            },
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::[mybucket]/uploads/*",
            "Condition": {
                "StringEquals": {
                    "s3:x-amz-acl": "bucket-owner-full-control"
                }
            }
        },
        {
            "Sid": "deny-other-actions",
            "Effect": "Deny",
            "NotPrincipal": {
                "AWS": "arn:aws:iam::[myid]:root"
            },
            "NotAction": [
                "s3:PutObject",
                "s3:PutObjectAcl"
            ],
            "Resource": "arn:aws:s3:::[mybucket]/*"
        }
    ]
}

还有 curl POST:

curl --request PUT --upload-file "thefile.gif" -k https://[mybucket].s3.amazonaws.com/uploads/

【问题讨论】:

  • 真的,真的,真的没有理由允许匿名上传。没有。但是,由于您的政策需要x-amz-acl: bucket-owner-full-control,您是否尝试过提出与您的政策一致的请求? curl ... -H 'x-amz-acl: bucket-owner-full-control'
  • 谢谢。那行得通。现在我正在考虑使用预签名的 POST URL 来提高安全性,但无法正确获取 curl 查询字符串。如果您可以提供帮助,请在此处创建一个新问题。 stackoverflow.com/q/43991783/3198281

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


【解决方案1】:

匿名上传是个坏主意,但至少这个政策约束要求上传者让你控制对象:

        "Condition": {
            "StringEquals": {
                "s3:x-amz-acl": "bucket-owner-full-control"
            }
        }

这并不直观,但拥有一个存储桶并不意味着您拥有这些对象。如果它们未使用您帐户中的凭据上传,则您不拥有它们。当然,您需要为它们付费,但是如果一个对象是由另一个帐户或匿名用户上传到您的存储桶中的,那么您最终可能获得的对该对象的唯一权限是您可以删除它——您最终可以无法下载或复制的对象,只需删除即可。

有了这个政策,上传必须遵守政策,设置对象 ACL 给你控制:

curl ... -H 'x-amz-acl: bucket-owner-full-control'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-12
    • 1970-01-01
    • 2015-12-07
    相关资源
    最近更新 更多