0
0
Fork 0
mirror of https://github.com/ohmyzsh/ohmyzsh.git synced 2024-09-19 04:01:21 +02:00

feat(aws): add sso

This commit is contained in:
Hans Donner 2022-07-28 08:32:16 +02:00
parent 8362ae285a
commit 26202bfeb0

View file

@ -52,8 +52,25 @@ function acp() {
local aws_secret_access_key="$(aws configure get aws_secret_access_key --profile $profile)" local aws_secret_access_key="$(aws configure get aws_secret_access_key --profile $profile)"
local aws_session_token="$(aws configure get aws_session_token --profile $profile)" local aws_session_token="$(aws configure get aws_session_token --profile $profile)"
# Are we using SSO?
local sso_start_url="$(aws configure get sso_start_url --profile $profile)"
if [[ -n "sso_start_url" ]]; then
# And is the session still valid?
aws sts get-caller-identity --profile $profile > /dev/null
if [ $? -ne 0 ]; then
aws sso login --profile $profile
fi
if [ $? -eq 0 ]; then
export AWS_DEFAULT_PROFILE="$profile"
export AWS_PROFILE="$profile"
export AWS_EB_PROFILE="$profile"
unset AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY AWS_SESSION_TOKEN
echo "Switched to AWS Profile: $profile"
return
fi
fi
# First, if the profile has MFA configured, lets get the token and session duration # If the profile has MFA configured, lets get the token and session duration
local mfa_serial="$(aws configure get mfa_serial --profile $profile)" local mfa_serial="$(aws configure get mfa_serial --profile $profile)"
local sess_duration="$(aws configure get duration_seconds --profile $profile)" local sess_duration="$(aws configure get duration_seconds --profile $profile)"