我想弄清楚我的S3存储桶是否可公开写入。
{
"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中的任何人。但重点是不要对系统/代码进行任何更改,只需找到弱点。
答案 0 :(得分:1)
您的存储桶策略(如图所示)仅授予读取权限。它不授予写权限。
但是,您的存储区ACL是:
目前,这允许世界上的任何人阅读和写入您的存储桶。
如果授予访问权限,如果这些方法中的任何一种授予访问权限,则是,您的存储桶是可公开写入的。
情景测试
这就是我的所作所为:
aws s3 ls
,并aws s3 cp
将对象复制到存储桶来自其他AWS账户的IAM用户呼叫显示对象访问权限授予读写访问权限。