While working continuously on the AWS CLI, I found it tedious to switch between users by manually exporting the AWS_ACCESS_KEY_ID & AWS_SECRET_ACCESS_KEY as these credentials need to be set in every session of the shell. So I have created a bash script to automate this selection in which you can provide a named profile & based on the access key ID & secret access key the above environment variables would be set automatically.
To understand more on named profiles, please go through the AWS documentation link:
https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html
The .aws/credentials file created follows a format shown below:
[default]
aws_access_key_id=AKIAIOSFODNN7EXAMPLE
aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
[user1]
aws_access_key_id=AKIAI44QH8DHBEXAMPLE
aws_secret_access_key=je7MtGbClwBF/2Zp9Utk/h3yCo8nvbEXAMPLEKEY
In case I do not specify any named profile, the default profile would be applied as below
aws ec2 describe-instances
else if I want a specific profile to be applied to my command I can :
aws ec2 describe-instances --profile user1
This will list the ec2 instances for the user profile of user1.
You can automate this so that every time you open a shell you just provide the named profile to the script & it will set the access credentials for you that will be valid for the entire session.
While working on this automation I came across Ben Kehoe's article regarding the same & this worked as an inspiration to write my own script:
https://ben11kehoe.medium.com/aws-configuration-files-explained-9a7ea7a5b42e
I have placed the bash script my GitHub repository:
https://github.com/neetu-mallan/AutomateCLINamedProfileSelection
Check the README.md file to understand what the script does:
https://github.com/neetu-mallan/AutomateCLINamedProfileSelection/blob/main/README.md
Top comments (0)