In my iOS app I recently changed the AWS iOS Library to 1.7.0 (from 1.6.0) which supports resuming/pausing multipart upload. As a result all file uploads greater than 5MB fails which uses temporary AWS credentials obtained from TVM. (Original credentials work without any problem). The error being HTTP: 403, S3 Error Code: AccessDenied.
The request that fails is this one: GET https://s3.amazonaws.com/<my.bucket.name>/?uploads I am not sure what this request is for or why there is a permission issue because my TVM get_federation_token has GET and PUT access.
{
"Version": "2012-10-17",
"Statement": [
{
"Action": ["s3:PutObject","s3:GetObject"],
"Resource": ["arn:aws:s3:::my.bucket.name/*"],
"Effect": "Allow"
}
]
}
The uploads are happening to the location /<my.bucket.name>/. Any idea what is going on?
Thanks
UPDATE The initial policy I posted was incorrect,
s3:ListBucketMultipartUploadsis only effective on the bucket.The S3TransferManager uses multipart uploads for files over 5MB, so you will need to include operations necessary for multipart uploads in your TVM policy.