我为用户拥有以下的 IAM 策略
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1395161912000",
"Effect": "Allow",
"Action": [
"s3:ListBucket",
"s3:PutObject",
"s3:*"
],
"Resource": [
"arn:aws:s3:::bucketname"
]
},
{
"Sid": "list",
"Effect": "Allow",
"Action": [
"s3:ListAllMyBuckets"
],
"Resource": [
"arn:aws:s3:::*"
]
}
]
}
目标是让用户将文件上传到存储桶,但不允许覆盖或删除。这是为了备份。我最初使用了ListBucket
和PutObject
,但由于没有起作用,所以添加了*
。甚至*
也不能让用户上传文件,只会显示Access Denied
。
当我尝试模拟器时,对于ListBucket
返回的是Denied - Implicitly denied (no matching statements found).
,这似乎很奇怪,因为我已经隐式地允许了它。
我已经尝试过Cyberduck和3Hub作为S3客户端。
有什么想法是出了什么问题吗?
sid
不是必需的吗? - Markus HedlundPutObject
权限,该权限允许覆盖对象,是吗?我认为没有办法将其分开。 - Xiong Chiamiov