AWS S3请求失败,其中包含从TVM客户端获取的凭据

时间:2013-10-23 15:20:02

标签: ios amazon-web-services amazon-s3 tvm

在我的iOS应用中,我最近将AWS iOS库更改为1.7.0(从1.6.0开始),支持恢复/暂停分段上传。因此,所有大于5MB的文件上传都会失败,并使用temporary AWS credentials obtained from TVM。 (原始凭证工作没有任何问题)。错误为HTTP: 403, S3 Error Code: AccessDenied

失败的请求就是这样一个:GET https://s3.amazonaws.com/<my.bucket.name>/?uploads我不确定此请求是针对什么的,或者为什么会出现权限问题,因为我的TVM get_federation_tokenGET和{{1访问。

PUT

上传发生在{ "Version": "2012-10-17", "Statement": [ { "Action": ["s3:PutObject","s3:GetObject"], "Resource": ["arn:aws:s3:::my.bucket.name/*"], "Effect": "Allow" } ] } 位置。知道发生了什么事吗?

由于

1 个答案:

答案 0 :(得分:3)

更新我发布的初始政策不正确,s3:ListBucketMultipartUploads仅对广告有效。

S3TransferManager对超过5MB的文件使用分段上传,因此您需要在TVM策略中包含分段上传所需的操作。

{
"Version": "2012-10-17",
  "Statement": [
    {
      "Action":"s3:ListBucketMultipartUploads",
      "Resource":"arn:aws:s3:::my.bucket.name",
      "Effect": "Allow"
    },
    {
      "Action": ["s3:PutObject","s3:GetObject","s3:ListMultipartUploadParts","s3:AbortMultipartUpload"],
      "Resource": ["arn:aws:s3:::my.bucket.name/*"],
      "Effect": "Allow"
    }
  ]
}