From b33f63fdd488842d7756c8fae3ed7b686d3ce46b Mon Sep 17 00:00:00 2001 From: Adar Nimrod <nimrod@shore.co.il> Date: Mon, 24 Oct 2022 23:35:31 +0300 Subject: [PATCH] AWS assume rule CLI improvements. - Use a generic name for the session name. - Allow using a IAM role ARN or name. --- Documents/bin/assume-role | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/Documents/bin/assume-role b/Documents/bin/assume-role index a837719..98d869e 100755 --- a/Documents/bin/assume-role +++ b/Documents/bin/assume-role @@ -6,7 +6,7 @@ set -eu # AWS_SESSION_TOKEN) and executes the command given. usage() { - echo "$(basename "$0"): [-h|--help] ROLE_ARN COMMAND [PARAMETER [PARAMETER ...]]" + echo "$(basename "$0"): [-h|--help] ROLE_ARN|ROLE_NAME COMMAND [PARAMETER [PARAMETER ...]]" } command -v aws > /dev/null || { echo 'Cannot find the AWS CLI, exiting.' >&2; exit 1; } @@ -17,14 +17,21 @@ then exit 1 fi -role_arn="$1" +role="$1" shift +if [ "$role" = "${role##arn:}" ] +then + role_arn="$(aws iam list-roles --query "Roles[?RoleName==\`${role}\`].Arn" --output text)" +else + role_arn="$role" +fi + credentials="$(aws sts assume-role \ --output text \ --duration-seconds 3600 \ --role-arn "$role_arn" \ - --role-session-name 'CircleCI_executor')" + --role-session-name 'assume-role-cli')" AWS_ACCESS_KEY_ID="$(echo "$credentials" | awk 'NR == 2 {print $2}')" AWS_SECRET_ACCESS_KEY="$(echo "$credentials" | awk 'NR == 2 {print $4}')" -- GitLab