The AWS error message [ERROR] ClientError: An error occurred (AccessDenied) when calling the PutObject operation: Access Denied
might mean you don’t have s3:PutObject permission. Or, it might mean that the bucket is configured to require server side encryption in which case you need to add the ServerSideEncryption
argument to your boto3 put_object operation.
File under: things I learned the hard way.