it depends. If you’re mostly using simple solutions, like Serverless, with minimal dependencies, CloudFormation or CDK will serve you well enough. This is also true if you intend to keep you infrastructure exclusively on AWS. However, if you use a mutli-cloud environment, or see this as a future possibility, Terraform’s platform agnostic nature offers a definite advantage
User: arn:aws:iam::xxx:user/xxxx is
not authorized to perform: cloudformation:CreateUploadBucket
because no identity-based policy allows the cloudformation:CreateUploadBucket action