 <p>Your IAM role only gives access to GetObject and ListObject. Copying also requires PutObject as you write to S3. I think this should work:</p> <pre><code>{ "Version": "2008-10-17", "Id": "Policy1458587151478", "Statement": [ { "Sid": "AllowPublicRead", "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": ["s3:GetObject","s3:PutObject"], "Resource": "arn:aws:s3:::bucketname/*" }, { "Sid": "AllowPublicList", "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::bucketname" } ] } </code></pre>