我有一个有一个IAM用户的小组。本集团附有此政策:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1449507915000",
"Effect": "Allow",
"Action": [
"s3:*"
],
"Resource": [
"arn:aws:s3:::fouraxis"
]
},
{
"Sid": "ListAllBuckets",
"Action": "s3:ListAllMyBuckets",
"Effect": "Allow",
"Resource": "*"
}
]
}
当用户尝试上传文件时,他会收到一条消息:
我尝试使用admin用户上传相同的文件,但它确实有效。谢谢你的帮助,我有点迷失在这里。
答案 0 :(得分:2)
好。这是您的政策的一部分:
"Action": [
"s3:*"
],
"Resource": [
"arn:aws:s3:::fouraxis"
]
问题是您已经为广告素材提供了广泛的s3访问权限 。但是你试图将一个密钥放在桶中,它有自己的资源。例如,我将goat-8.jpg
添加到您的存储桶中,因此它具有此arn:arn:aws:s3:::fouraxis/goat-8.jpg
。
要允许上传到所有密钥,您可以提供通配符ARN:
"arn:aws:s3:::fouraxis/*"
所以,把它放在政策中:
"Action": [
"s3:*"
],
"Resource": [
"arn:aws:s3:::fouraxis",
"arn:aws:s3:::fouraxis/*"
]
这将使工作。如果您不希望用户删除或执行任何恶作剧,您可以选择使用操作位获得更多限制。这是一个例子:
"Action": [
"s3:GetObject",
"s3:PutObject"
],
"Resource": [
"arn:aws:s3:::fouraxis",
"arn:aws:s3:::fouraxis/*"
]
答案 1 :(得分:1)