An error occurred (AccessDenied) when calling the PutObject operation
Your AWS credentials don’t have permission for this action.
Fix 1: Check your credentials
aws sts get-caller-identity
Make sure you’re using the right profile/account.
Fix 2: Check IAM policy
The user/role needs the right permissions. Example for S3:
{
"Effect": "Allow",
"Action": ["s3:PutObject", "s3:GetObject"],
"Resource": "arn:aws:s3:::my-bucket/*"
}
Fix 3: Check bucket policy
S3 buckets can have their own policies that deny access:
aws s3api get-bucket-policy --bucket my-bucket
Fix 4: Check for explicit denies
An explicit Deny always wins over Allow. Check all policies attached to the user/role.