Skip to main content

configure AWS responsibly using profile names.

Project description


configure AWS responsibly using profile names and environment vars.

rather than changing your AWS SDK credentials with aws configure, AWS suggests
setting the ENV var AWS_DEFAULT_PROFILE to a [profile] in your ~/.aws/credentials.
when set, this ENV var will over-ride the profile set with aws configure.

caws will write to an rc file setting AWS_DEFAULT_PROFILE to the given profile name.
if you do not have the rc file caws will create it for you.

you'll need to add . .cawsrc to your RC file (using bash: .bashrc or .bash_profile)

add new profiles using $ aws configure --profile newname

one benefit of using AWS_DEFAULT_PROFILE method instead of aws configure is the
ability to add which AWS profile you're currently using to your command prompt.


aws cli


change AWS_DEFAULT_PROFILE to profilename
$ caws profilename

change AWS_DEFAULT_PROFILE to profilename and also update ~/.aws/credentials and ~/.aws/config
$ caws profilename --withcreds

show help and exit
$ caws -h

example bash usage

because python cannot source files on the parent process, caws has the unfortunate inability to update the ENV var it is updating.
therefore, a thin bash helper function can be used to run caws in the background:

kaws() {
 eval "caws $1 > /dev/null"
 . ~/.cawsrc  

example PS1 with colored path parts!

function color_path() {
    ROYGBIV=('\e[31m' '\e[38;5;208m' '\e[93m' '\e[92m' '\e[36m' '\e[94m' '\e[95m' '\e[97m' '\e[93m' '\e[38;5;208m' '\e[91m' '\e[95m' '\e[96m' '\e[34m' '\e[92m')
    exploded=$(echo $explode_path | tr "/" "\n")
    for part in $exploded
        x=$(expr $x + 1)
    printf $final
parse_git_branch() {
    local b=$(git symbolic-ref HEAD 2> /dev/null)
    if [ "${b#refs/heads/}" != "" ]
        printf " \e[38;5;208m(${b#refs/heads/})\e[0m"
PS1='\[\033[45m\]\u\[\033[0;96m\] aws:\[\033[92m\]$AWS_DEFAULT_PROFILE`parse_git_branch` \[\033[37m\]- `color_path`\[\033[37m\]\n$ \[\033[0m\]'

Usage Screep Cap

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

caws-0.0.3.tar.gz (4.5 kB view hashes)

Uploaded source

Built Distribution

caws-0.0.3-py3-none-any.whl (5.8 kB view hashes)

Uploaded py3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page