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