Skip to content

Instantly share code, notes, and snippets.

@ddepaoli3
Last active January 26, 2021 11:29
Show Gist options
  • Save ddepaoli3/b938425dcdd5fe6bbc928afd01ff7f38 to your computer and use it in GitHub Desktop.
Save ddepaoli3/b938425dcdd5fe6bbc928afd01ff7f38 to your computer and use it in GitHub Desktop.
AWS STS export environment variables
function setup_aws_credentials() {
profile_name=$1
role_arn=`/usr/bin/grep -A4 "$profile_name\]" ~/.aws/credentials|/usr/bin/grep role_arn|sed 's/^.*arn:/arn:/g'`
if [[ -z "$role_arn" ]]
then
role_arn=`/usr/bin/grep -A4 "$profile_name\]" ~/.aws/config|/usr/bin/grep role_arn|sed 's/^.*arn:/arn:/g'`
fi
local stscredentials
stscredentials=$(aws sts assume-role \
--profile $profile_name \
--role-arn "${role_arn}" \
--role-session-name something \
--query '[Credentials.SessionToken,Credentials.AccessKeyId,Credentials.SecretAccessKey]' \
--output text)
AWS_ACCESS_KEY_ID=$(echo "${stscredentials}" | awk '{print $2}')
AWS_SECRET_ACCESS_KEY=$(echo "${stscredentials}" | awk '{print $3}')
AWS_SESSION_TOKEN=$(echo "${stscredentials}" | awk '{print $1}')
AWS_SECURITY_TOKEN=$(echo "${stscredentials}" | awk '{print $1}')
region=$(/usr/bin/grep -A4 "\[$profile_name\]" ~/.aws/credentials|/usr/bin/grep region|sed s/'.*=[ ]'//g)
if [ $region ]
then
AWS_DEFAULT_REGION=$region
export AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY AWS_SESSION_TOKEN AWS_SECURITY_TOKEN AWS_DEFAULT_REGION
else
export AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY AWS_SESSION_TOKEN AWS_SECURITY_TOKEN
fi
echo "Default AWS region set to '$region'"
echo "AWS env variables set:"
printenv | /usr/bin/grep AWS | sed 's;=.*;;' | sort
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment