From f3d6490a8c8055d412d88138978d68922875bc73 Mon Sep 17 00:00:00 2001 From: fidelis-ogunsanmi Date: Tue, 28 Jun 2022 13:03:18 -0400 Subject: [PATCH 1/2] added files for module 00 --- 00-dev-environment/answers.md | 8 ++++++ 00-dev-environment/creds.sh | 46 +++++++++++++++++++++++++++++++++++ 2 files changed, 54 insertions(+) create mode 100644 00-dev-environment/answers.md create mode 100755 00-dev-environment/creds.sh diff --git a/00-dev-environment/answers.md b/00-dev-environment/answers.md new file mode 100644 index 00000000..b404c79e --- /dev/null +++ b/00-dev-environment/answers.md @@ -0,0 +1,8 @@ +# This file holds all answers and reference to scripts for module 00 + +## Exercise 0.1.1: MFA Script + +- The script "creds.sh" helps reduce the manual effort of gathering and assigning of the temporary AWS MFA credentials + +- All you need to do is run the script like this below: + - ./creds.sh -e -t diff --git a/00-dev-environment/creds.sh b/00-dev-environment/creds.sh new file mode 100755 index 00000000..73ce49f2 --- /dev/null +++ b/00-dev-environment/creds.sh @@ -0,0 +1,46 @@ +#!/bin/bash +# inputs needed - environment (ENV) and code (TOKEN) +echo $@ +POSITIONAL=() +while [[ $# -gt 0 ]] +do +key="$1" + +case $key in + -e|--env) + ENV="$2" + shift # past argument + shift # past value + ;; + -t|--token) + TOKEN="$2" + shift # past argument + shift # past value + ;; + *) # unknown option + POSITIONAL+=("$1") # save it in an array for later + shift # past argument + ;; +esac +done +set -- "${POSITIONAL[@]}" # restore positional parameters + +if [ "${ENV}" = "lab" ]; then + SERIAL='arn:aws:iam::324320755747:mfa/fidelis.ogunsanmi.labs' +fi + +echo "Configuring $ENV with token $TOKEN" +CREDJSON="$(aws sts get-session-token --serial-number $SERIAL --profile $ENV --token-code $TOKEN)" + +ACCESSKEY="$(echo $CREDJSON | jq '.Credentials.AccessKeyId' | sed 's/"//g')" +SECRETKEY="$(echo $CREDJSON | jq '.Credentials.SecretAccessKey' | sed 's/"//g')" +SESSIONTOKEN="$(echo $CREDJSON | jq '.Credentials.SessionToken' | sed 's/"//g')" +PROFILENAME="$ENV" + +# echo "Profile $PROFILENAME AccessKey $ACCESSKEY SecretKey $SECRETKEY" +# echo "SessionToken $SESSIONTOKEN" + +aws configure set aws_access_key_id $ACCESSKEY --profile $PROFILENAME +aws configure set aws_secret_access_key $SECRETKEY --profile $PROFILENAME +aws configure set aws_session_token $SESSIONTOKEN --profile $PROFILENAME + From 582a10b68f35e8bb04b6e45aa45eadfe88cfe5ac Mon Sep 17 00:00:00 2001 From: fidelis-ogunsanmi Date: Wed, 29 Jun 2022 06:16:35 -0400 Subject: [PATCH 2/2] modified script --- 00-dev-environment/creds.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/00-dev-environment/creds.sh b/00-dev-environment/creds.sh index 73ce49f2..24c74a6b 100755 --- a/00-dev-environment/creds.sh +++ b/00-dev-environment/creds.sh @@ -35,7 +35,7 @@ CREDJSON="$(aws sts get-session-token --serial-number $SERIAL --profile $ENV --t ACCESSKEY="$(echo $CREDJSON | jq '.Credentials.AccessKeyId' | sed 's/"//g')" SECRETKEY="$(echo $CREDJSON | jq '.Credentials.SecretAccessKey' | sed 's/"//g')" SESSIONTOKEN="$(echo $CREDJSON | jq '.Credentials.SessionToken' | sed 's/"//g')" -PROFILENAME="$ENV" +PROFILENAME="$ENV"mfa # echo "Profile $PROFILENAME AccessKey $ACCESSKEY SecretKey $SECRETKEY" # echo "SessionToken $SESSIONTOKEN"