AWS s3 create pre signed post does not work on deploy

I am creating presigned url using aws-sdk’s nodejs/createPresignedPost method. Its all working via serverless-offline plugin on my local, cause my personal accesskey has all accesses. But when I deploy it errors out with HTTP 403 and the error in browser reads as follows

The AWS Access Key Id you provided does not exist in our records.
The key starts with ASIAASIAQDGRI5OSPEXMAPLE
I have granted all action permission to my lambda on target bucket.

My Api gateway and lambdas that return the signed url are in ‘us-east-1’ region and the bucket is in ‘ap-south-1’ region.

I am sure I am missing some IAM permissions but I can not figure it our. Can some one help me here?