bms-repository/scripts/setup-aws-profile.sh
pfych 0029086b3f
Some checks failed
Build & Lint / build-lint (push) Failing after 2m10s
Deploy / setup (push) Failing after 1m3s
Init
2024-10-12 14:08:09 +11:00

57 lines
1.8 KiB
Bash
Executable File

#!/usr/bin/env bash
CURRENT_DIR="$(pwd -P)"
PARENT_PATH="$(
cd "$(dirname "${BASH_SOURCE[0]}")" || exit
pwd -P
)/.."
cd "$PARENT_PATH" || exit
# Sets REGION, APP_NAME, AWS_REGION, AWS_PROFILE
. ./scripts/project-variables.sh
if ! command -v aws &>/dev/null; then
echo "AWS CLI could not be found, please install it before continuing."
echo "You can find instructions here: https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html"
exit
fi
printf "Setup AWS profile [\033[32m%s\033[39m]\n" "$AWS_PROFILE"
printf "Enter the AWS Access Key: "
read -r AWS_ACCESS_KEY_ID
printf "Enter the AWS Secret Key: "
read -sr AWS_SECRET_ACCESS_KEY
printf "\nAWS Session Token (optional): "
read -sr AWS_SESSION_TOKEN
printf "\n"
echo "Configuring AWS...."
# If you specify a profile with --profile on an individual command, that overrides the setting specified in the environment variable for only that command.
aws configure set aws_access_key_id "${AWS_ACCESS_KEY_ID:-}" --profile "$AWS_PROFILE"
aws configure set aws_secret_access_key "${AWS_SECRET_ACCESS_KEY:-}" --profile "$AWS_PROFILE"
if [ "$AWS_SESSION_TOKEN" ]; then
echo "Setting session token"
aws configure set aws_session_token "${AWS_SESSION_TOKEN:-}" --profile "$AWS_PROFILE"
else
EXISTING_SESSION=$(aws configure get aws_session_token --profile "$AWS_PROFILE")
if [ "$EXISTING_SESSION" ]; then
echo "Existing session token found, removing"
aws configure set aws_session_token "" --profile "$AWS_PROFILE"
else
echo "No existing session token... ignoring"
fi
fi
echo "Testing AWS Keys..."
IAM_RESULT=$(aws sts get-caller-identity --query "Account" --output text --profile "$AWS_PROFILE")
if [ "$IAM_RESULT" ]; then
echo "Credentials work!"
else
echo "AWS Keys did not work!"
fi
echo "Done"
cd "$CURRENT_DIR" || exit