Skip to content

Instantly share code, notes, and snippets.

@huevos-y-bacon
Created August 3, 2023 10:34
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save huevos-y-bacon/ede9179c33fb842847c3cb5ae6dd702d to your computer and use it in GitHub Desktop.
Save huevos-y-bacon/ede9179c33fb842847c3cb5ae6dd702d to your computer and use it in GitHub Desktop.
Install (Common Fate) granted on Mac or (Amazon) Linux
#!/usr/bin/env bash
set -e
# See:
# - https://docs.commonfate.io/granted/getting-started/
# - https://docs.commonfate.io/granted/usage/automatic-config-generation
# Remember to update MY_ORG_NAME!
SSO_URL=https://MY_ORG_NAME.awsapps.com/start/
SSO_ORG=$(echo $SSO_URL | awk -F. '{print $1}' | awk -F/ '{print $NF}')
SSO_REGION=us-east-1
mkdir -p ${HOME}/.aws
if ! command -v aws &> /dev/null
then
echo "awscli could not be found"
exit 1
fi
OS=$(uname -s)
echo "Install Granted"
if [[ "$OS" == "Darwin" ]]; then
if ! command -v brew &> /dev/null
then
echo "homebrew could not be found"
exit 1
fi
brew tap common-fate/granted
brew install granted
elif [[ "$OS" == "Linux" ]]; then
yum -y update && yum -y install curl
curl -OL releases.commonfate.io/granted/v0.14.0/granted_0.14.0_linux_x86_64.tar.gz
sudo tar -zxvf ./granted_0.14.0_linux_x86_64.tar.gz -C /usr/local/bin/
echo alias assume=\"source /usr/local/bin/assume\" >> ~/.bashrc
else
echo "Not Darwin or Linux - TO DO"; exit 0
fi
echo "Generate AWS SSO Config"
granted sso generate --sso-region ${SSO_REGION} ${SSO_URL} > "${HOME}/.aws/config_granted_${SSO_ORG}"
if [[ -f "${HOME}/.aws/config" ]]; then
echo "Backup ${HOME}/.aws/config to ${HOME}/.aws/config_backup"
mv "${HOME}/.aws/config" "${HOME}/.aws/config_old"
fi
echo "Create symlink ${HOME}/.aws/config_granted_${SSO_ORG} > ${HOME}/.aws/config"
ln -f -s "${HOME}/.aws/config_granted_${SSO_ORG}" "${HOME}/.aws/config"
if [[ "$SHELL" == *"zsh" ]]; then
echo alias assume=\"source /usr/local/bin/assume\" >> ~/.zshrc
echo "Run \"source ~/.zshrc\", then run \"assume\""
else
echo alias assume=\"source /usr/local/bin/assume\" >> ~/.bashrc
echo "Run \"source ~/.bashrc\", then run \"assume\""
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment