title: AWS 403 Unauthorised Error while trying to create temporary credentials using IAM user
body: <p>I am trying to get temporary credentials to upload files to S3 bucket. I am using credentials of an IAM user to call STS assumeRole method. The Role is created via AWS Cognito. Below is the IAM user Policy and the role Policy, </p>
  
  <p><strong>Error Msg:</strong> </p>
  
  <pre><code>POST https://sts.amazonaws.com/ 403 (Forbidden)
  
  User: arn:aws:iam::########:user/iamUser  is not authorized to perform: sts:AssumeRole on resource: arn:aws:iam::#########:role/myRole
  </code></pre>
  
  <p><strong>IAM User Policy</strong></p>
  
  <pre><code>{
   "Statement": [
     {
       "Effect": "Allow",
       "Action": ["s3:GetBucketLocation", "s3:ListAllMyBuckets"],
       "Resource": "arn:aws:s3:::*"
     },
     {
       "Effect": "Allow",
       "Action": ["s3:ListBucket" ],
       "Resource": [ "arn:aws:s3:::myBucket"]
     },
     {
       "Effect": "Allow",
       "Action": [ "s3:PutObject", "s3:GetObject", "s3:DeleteObject", "s3:GetObjectAcl","s3:PutObjectAcl"],
       "Resource": [ "arn:aws:s3:::myBucket/*"]
     },
     {
     "Effect": "Allow",
     "Action": "iam:PassRole",
     "Resource": ["arn:aws:iam::###########:role/myRole"]
     },
     {
     "Effect": "Allow",
     "Action": "sts:AssumeRole",
     "Resource": ["arn:aws:iam::###########:role/myRole"]
     }
   ]
  } 
  </code></pre>
  
  <p><strong>Role Policy</strong></p>
  
  <pre><code>{
   "Version": "2012-10-17",
   "Statement": [
     {
       "Sid": "Stmt1420643359000",
       "Effect": "Allow",
       "Action": [
         "s3:*"
       ],
       "Resource": [
         "arn:aws:s3:::myBucket"
       ]
     }
   ]
  } 
  </code></pre>