Terraform: can't connect to AWS provider using shared config file or static variable
The easiest way I've found to properly set credentials for my local runs and remote terraform cloud runs is to use environment variables. Before running set the environment variables for 

AWS_ACCESS_KEY_ID
AWS_SECRET_KEY
AWS_DEFAULT_REGION


This should allow you to run in both Linux, PowerShell or even remote runs in Terraform cloud without issue.

I've gone between various approaches and this has provided me the easiest workflow. If you're doing this in AWS directly then of course you could use IAM instance role and avoid credentials altogether. This wouldn't allow you to keep the same workflow for local and remote though.