上个月,我成功地将Cognito与iOS SDK结合使用,在我的应用程序中从s3存储桶中上传和下载文件。我最近创建了一个新的存储桶来代替存储文件,但是我突然不能下载任何东西(尽管上传继续工作)。我得到了这个错误:
Error downloading from S3: Error Domain=com.amazonaws.AWSS3ErrorDomain
Code=1 "The operation couldn’t be completed.
(com.amazonaws.AWSS3ErrorDomain error 1.)" UserInfo=0x157da330
{HostId=xlPbd8nAQvYPesh0JZ5yH7LFuV562FK85qd5MEgg3DNXn9U0m1K6e8kji
CsC4NXf, Code=AccessDenied, Message=Access Denied,
RequestId=EF39DF70A50540EA}
我使用与旧存储桶完全相同的配置,但新存储桶的名称在需要的位置进行了更改。
下面是我一直在使用的Unauth IAM策略:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"mobileanalytics:PutEvent",
"cognito-sync:*"
],
"Resource": [
"*"
]
},
{
"Action": [
"s3:GetObject",
"s3:PutObject"
],
"Effect": "Allow",
"Resource": [
"*"
]
}
]
}
这是我的存储桶策略:
{
"Version": "2008-10-17",
"Statement": [
{
"Sid": "AllowPublicRead",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::bucket_name/*"
}
]
}
新的存储桶和旧的存储桶是相同的地域。现在,我完全不知所措,不知道在新的存储桶中更改了什么(以及为什么上传可以,但下载不能)。如果相关,我的文件现在存储在存储桶的子目录中,但我已经更新了客户端上的所有键字符串。非常感谢你的帮助。
发布于 2015-03-08 01:09:39
我在IAM策略中看到您的资源设置为*。尝试明确说明IAM策略中的资源
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::mybucketname"
]
},
{
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:GetObject",
"s3:DeleteObject"
]
}
]
}
https://stackoverflow.com/questions/28914927
复制相似问题