How do I set the name of the default profile in AWS CLI?
When I give the command aws config list
, I get the following output for the default profile:
Name Value Type Location
---- ----- ---- --------
profile <not set> None None
However, when I give the command for a named profile, I get a profile name
$ aws configure list --profile MyProfile
Name Value Type Location
---- ----- ---- --------
profile MyProfile manual --profile
I have tried aws configure set profile Default
to name the default profile as Default
by reading the 'set' CLI command, I also tried aws configure set StoreAs Default
because I thought that's what's the variable is named after I read this page. I want to do this because I want have two profiles and I want to switch between profiles using the AWS_DEFAULT_PROFILE
environment variable.
I have multiple profiles too, I use AWS_DEFAULT_PROFILE
to switch back and forth. However, I've named each profile something descriptive, like aws-engineering
and aws-production
. Then, I can use set AWS_DEFAULT_PROFILE=aws-engineering
and I'm good to go.
I have no DEFAULT profile specified in my ~/.aws/config
, this was intentional so that I always explicitly have to choose which environment I'm working on.
Setting the AWS_DEFAULT_PROFILE
environment variable at the command line should specify the profile.
See: Can I specify a default AWS configuration profile?
For example:
Linux, macOS, or Unix
export AWS_DEFAULT_PROFILE=user2
Note: To unset, run: unset AWS_DEFAULT_PROFILE
.
To make the change persistent, add above line into your ~/.bashrc
user's file.
Note: You can also use AWS_PROFILE
. See: Named Profiles.
Windows
set AWS_DEFAULT_PROFILE=user2
Source: User Guide » Configuring the AWS CLI » Named Profiles.
See also: A New and Standardized Way to Manage Credentials in the AWS SDKs.