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.
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?