我的S3桶是否可公开写入?

时间:2017-06-08 12:04:22

标签: amazon-web-services amazon-s3

我想弄清楚我的S3存储桶是否可公开写入。

这是ACL: enter image description here 以下是存储桶策略:

{
"Version": "2008-10-17",
"Statement": [
    {
        "Sid": "AllowPublicRead",
        "Effect": "Allow",
        "Principal": {
            "AWS": "*"
        },
        "Action": "s3:GetObject",
        "Resource": "arn:aws:s3:::bucket.name/*"
    }
]
}

我正在尝试使用S3 CLI:echo "hello" | aws s3 cp - s3://bucket.name/file.csv --region eu-west-1 --no-sign-request

但是我得到了:upload failed: - to s3://bucket.name/file.csv An error occurred (AccessDenied) when calling the PutObject operation: Access Denied

我的存储桶是否可以免于公开写入?

背景:

获得应用程序并尝试查找弱点/审核。可能最简单的是不给#34;写"访问ACL中的任何人。但重点是不要对系统/代码进行任何更改,只需找到弱点。

1 个答案:

答案 0 :(得分:1)

您的存储桶策略(如图所示)仅授予读取权限。它不授予写权限。

但是,您的存储区ACL是:

bucket ACL

目前,这允许世界上的任何人阅读和写入您的存储桶。

如果授予访问权限,如果这些方法中的任何一种授予访问权限,则是,您的存储桶是可公开写入的

情景测试

这就是我的所作所为:

  • 帐户A:创建了Bucket A,为对象访问分配了READ和WRITE的“公共权限”(没有权限访问 - 没有必要)
  • 帐户B:将AWS CLI与来自其他帐户(帐户B)的用户一起使用,并在存储桶上成功执行aws s3 ls,并aws s3 cp将对象复制到存储桶

来自其他AWS账户的IAM用户呼叫显示对象访问权限授予读写访问权限。