In reading the docs over at Terraform it says there are 3 options for finding AWS credientials:
I am trying to have my setup just use the credential file. I've checked that the environment variables are cleared and I have left the relevant variables in Terraform blank.
When I do this and run 'Terraform Plan' I get the error:
No Valid credential sources found for AWS Provider.
I've even tried adding the location of my credentials file into my provider block and that didn't help either:
provider "aws" {
region = "${var.region}"
profile = "${var.profile}"
shared_credentials_file = "/Users/david/.aws/credentials"
profile = "testing"
}
Is there something I'm missing to get Terraform to read this file and not require environment variables?
To get multiple profiles to work with Terraform make sure that you supply the
aws_access_key_id
piece to your profile declaration. Each profile should look like this:
[profile_name]
aws_access_key=*****
aws_secret_access_key****
aws_access_key_id=*****
Technically you don't even need the aws_access_key as it seems the id version is what the underlying aws cli needs. Maybe it was me, but that was never clear in the documents I read.