Skip to content

Instantly share code, notes, and snippets.

@markymarkus
Created February 9, 2021 10:58
Show Gist options
  • Save markymarkus/9defa002e8ac27992c83ca7d93d313cb to your computer and use it in GitHub Desktop.
Save markymarkus/9defa002e8ac27992c83ca7d93d313cb to your computer and use it in GitHub Desktop.
sh script to assume-role from Gitlab
#!/bin/sh
echo "Assuming role based on CI job name $CI_JOB_NAME"
case "$CI_JOB_NAME" in
*"prod")
AWS_DEPLOYMENT_ROLE=$AWS_DEPLOYMENT_ROLE_PROD
AWS_EXTERNALID=$AWS_EXTERNALID_PROD
;;
*"test")
AWS_DEPLOYMENT_ROLE=$AWS_DEPLOYMENT_ROLE_TEST
AWS_EXTERNALID=$AWS_EXTERNALID_TEST
;;
*"dev")
AWS_DEPLOYMENT_ROLE=$AWS_DEPLOYMENT_ROLE_DEV
AWS_EXTERNALID=$AWS_EXTERNALID_DEV
;;
esac
echo "Assumed role $AWS_DEPLOYMENT_ROLE"
KST="$(aws sts assume-role --role-arn "${AWS_DEPLOYMENT_ROLE}" --role-session-name "deployment-${CI_PROJECT_NAME}" --external-id "${AWS_EXTERNALID}")"
export AWS_ACCESS_KEY_ID=$(echo $KST | jq -r .Credentials.AccessKeyId)
export AWS_SECRET_ACCESS_KEY=$(echo $KST | jq -r .Credentials.SecretAccessKey)
export AWS_SESSION_TOKEN=$(echo $KST | jq -r .Credentials.SessionToken)
export AWS_DEFAULT_REGION=eu-west-1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment