Ansible Unable to Locate AWS Credentials

I have been trying to connect to AWS ec2 instance with ansible and as per the instructions from the ansible documentation I have placed my credentials in ~/.aws/credentials but somehow botocore was not picking it up and I have spent at least 10 hours debugging this. Trying all the possible combinations in all the possible places where ansible ec2 module will look for the credentials. But still could not find a solution.

So I placed the credentials directly into my ansible playbooks (which I didn’t want to do) just to get things running.

Now, after all the searches and reading what I have found is that the credential values to pass for ENVIROMENT VARIABLES or in the playbook are named differently.

What I put in ~/.aws/credentials file was the following

aws_access_key=ACCESS_KY_FROM_AWS_IAM
aws_secret_key=SECRET_KEY_FROM_IAM

The above credentials were not read by botocore or boto3 python module.

Here is how I fixed the problem

[default]
aws_access_key_id=ACCESS_KY_FROM_AWS_IAM
aws_secret_access_key=SECRET_KEY_FROM_IAM

Notice the change in the variable name.


Enjoy!