我的目标是让浏览器只将表单上传到S3存储桶中。我按照这里的说明进行操作:
http://docs.aws.amazon.com/AmazonS3/latest/dev/HTTPPOSTExamples.html
在其中,需要创建策略文档,然后使用秘密访问密钥对其进行签名。如果我完全按照说明操作,使用我的管理员级帐户(例如访问所有内容),一切正常。
我希望为此功能设置一个特定于的用户帐户,并使用该用户的凭据对文档进行签名。这样,我可以随时轻松地弃用密钥(或整个用户)。但是,它没有在说明中列出(我也不能从谷歌/实验中找出)正是这个用户在IAM中需要什么权限才能签署文件。我甚至尝试过与下面的策略一样宽(我将桶名重命名为my-bucket),这足以让用户登录S3的Web界面并完全从那里管理存储桶。但是,使用上传表单仍然会拒绝访问。请注意,我希望的行为是允许此用户仅将文件上传到特定存储桶中的特定文件夹。不删除,获取等
{
"Statement":[
{
"Effect":"Allow",
"Action":[
"s3:ListAllMyBuckets"
],
"Resource":"arn:aws:s3:::*"
},
{
"Effect":"Allow",
"Action":[
"s3:ListBucket",
"s3:GetBucketLocation"
],
"Resource":"arn:aws:s3:::my-bucket"
},
{
"Effect":"Allow",
"Action":[
"s3:PutObject",
"s3:GetObject",
"s3:DeleteObject"
],
"Resource":"arn:aws:s3:::my-bucket/*"
}
]
}
答案 0 :(得分:0)
我遇到了同样的问题,但当我正在阅读这个问题以找到答案时,我再次尝试了它并且它适用于您的政策,我之前尝试了几次但是没有工作。以下是我的信息:我正在使用的上传是针对云端的,所以我认为缓存是问题,在使用您使用的策略更改策略后,我使我的发行版无效,它对我有用,我希望你解决了你的问题!!