Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »

aws-profile-switcher

2.0.1 • Public • Published

AWS Profile Switcher

npm Build Status NPM Downloads Dependency Status GitHub issues XO code style Known Vulnerabilities

A simple command line utility that allows you to switch your default aws profile found at ~/.aws/credentials.

Let me know via GitHub if you notice any issues on a given OS. I'm open to any suggestions.

Install: npm install -g aws-profile-switcher

Usage: switcher <command> [options]


  Commands:

    list|ls               Lists available AWS profiles from [~/.aws/credentials]
    current|c             List the current default profile
    switch|sw [options]   Switches the default profile to a different, user-specified profile

  Global Options:

    -h, --help     output usage information
    -V, --version  output the version number 
  
  Switch Command Options:
  
    -p, --profile  <optional>  The name of the profile to make the default profile
    -i, --index    <optional>  The index of the profile to make the default profile (from list command)

*The alias for the 'current' command was 'curr' previous to v1.0.0

Examples

Given the following ~/.aws/credentials file. (This is not a sequence of commands. Assume each is done in a separate environment on the file below)

[default]
aws_access_key_id = PROFILE_2_ID
aws_secret_access_key = PROFILE_2_SECRET

[profile1]
aws_access_key_id = PROFILE_1_ID
aws_secret_access_key = PROFILE_1_SECRET

[profile2]
aws_access_key_id = PROFILE_2_ID
aws_secret_access_key = PROFILE_2_SECRET

[profile3]
aws_access_key_id = PROFILE_3_ID
aws_secret_access_key = PROFILE_3_SECRET
Command: switcher ls

Output:
    > Available profiles:
    > 1: profile1
    > 2: profile2
    > 3: profile3
    
Changes to file: <none>
Command: switcher curr

Output:
    > Current profile: profile2
    
Changes to file: <none>
Command: switcher sw

Output:
    > 1: profile1
    > 2: profile2
    > 3: profile3
    > prompt: index:
Input: 3
Output: Switching default aws profile to profile3

Changes to file:
      [default]
    - aws_access_key_id = PROFILE_2_ID
    - aws_secret_access_key = PROFILE_2_SECRET
      [default]
    + aws_access_key_id = PROFILE_3_ID
    + aws_secret_access_key = PROFILE_3_SECRET
Command: switcher sw -p profile1

Output: Switching default aws profile to profile1

Changes to file:
      [default]
    - aws_access_key_id = PROFILE_2_ID
    - aws_secret_access_key = PROFILE_2_SECRET
      [default]
    + aws_access_key_id = PROFILE_1_ID
    + aws_secret_access_key = PROFILE_1_SECRET
Command: switcher sw -i 3

Output: Switching default aws profile to profile3

Changes to file:
      [default]
    - aws_access_key_id = PROFILE_2_ID
    - aws_secret_access_key = PROFILE_2_SECRET
      [default]
    + aws_access_key_id = PROFILE_3_ID
    + aws_secret_access_key = PROFILE_3_SECRET

DISCLAIMER:

Yes, I'm aware of the built-in profile functionality that AWS CLI has. This little tool was written for many reasons:

  • Some AWS CLI wrappers don't have --profile as an option, so the export/set command is the only option
  • switcher sw is less characters and easier to remember than exports/set AWS_DEFAULT_PROFILE=profile1 (although a bash alias/function could shorten the # of characters)
  • BUT switcher sw lists out the profiles so that you don't have to remember the names
  • AND more people know how to install an npm package than how to update their ~/.bash_profile file correctly, most likely
  • Changing a profile applies to all shell instances for as long as it is set

install

npm i aws-profile-switcher

Downloadsweekly downloads

32

version

2.0.1

license

MIT

homepage

github.com

repository

Gitgithub

last publish

collaborators

  • avatar