Python SDK analytics export to S3 failing with 403

Getting a 403 Forbidden when my Python script tries to push Genesys Cloud analytics data to S3. I’m using the official SDK for the Genesys fetch and boto3 for the upload. The IAM role has PutObject permissions. Here is the upload snippet:

s3_client.upload_fileobj(data_stream, 'my-bucket', f'exports/{date}.csv')

The code runs fine locally with my admin creds but fails on the EC2 instance. Checked the trust policy and it looks right. Any ideas?