This tool update the aws credentials file for the default profile from the aws sso login.
This solution mixed the following repositories:
- aws-sso-util AWS SSO has some rough edges, and aws-sso-util is here to smooth them out, hopefully temporarily until AWS makes it better.
- aws-sso-credentials A simple Python tool to simplify getting short-term credential tokens for CLI/Boto3 operations when using AWS SSO.
- src - The main folder with the aws_sso_magic folder with the .py files & the requirements.txt.
- docker-build.sh - A docker build tool (Linux/MacOS) to build the docker image locally.
sudo ./docker-build.sh
- pyproject.toml - The metadata file with the dependencies and application information.
- Dockerfile - The docker file with the instructions to build the aws-sso-magic cli.
- eks-login - A script tool to add on the /usr/local/bin (Only for linux/macOS or Windows WSL).
eks-login develop-readonly
NOTE: I got this interesting repo of marianonamoroso, He developed an awesome shell script to get information from the eks cluster, for more details click on https://github.com/marianonamoroso/kubernetes, and heyy give to him an star :).
- Python 3.9 installed.
- AWS CLI v2 installed, please click on the link depending of your OS.
-
Follow the pyp aw-sso-magic project instructions to install it.
Note: If you want upgrade it, please run this
pip install aws-sso-magic --upgrade
- Please follow the instructions from the docker hub repository of aws_sso_magic
These steps will create the config files on the paths $HOME/.aws and $HOME/.aws-sso-magic.
- Execute the following command to configure the sso tool:
aws-sso-magic configure
- Type the following information:
- SSO start URL
- SSO Region
- Select the default profile of SSO
- CLI default client Region
- CLI default output format
- CLI profile name. Eg: default
- Enter only the name of the proxy role to use by default. Eg: MyAdminRole or just press Enter (This option will mandatory for the --eks flag)
- Optional: In case that you want to set an account alias, you can modify the file on $HOME/.aws-sso-magic/config adding the [AliasAccounts] section with key (account name) and value (alias account) Eg:
making the above configuration, it will now show the aliases in the profile selection menu when aws-sso-magic login command is executed.
[AliasAccounts] test1 = dev test2 = qa test3 = staging test4 = prod
[?] Please select an AWS config profile: dev-admin > qa-admin staging-admin prod-admin
- Execute the following command to select and log into the aws accounts:
aws-sso-magic login
- Execute the following command to log:
aws-sso-magic login
and select the profile to use oraws-sso-magic login --profile ssoprofile
if you already know the profile name.
NOTE: If you don't want to copy the credentials to the default profile, you can use the --custom-profile flag to create the profile with the name that you prefer and copy the credentials there.
Eg: aws-sso-magic login --profile ssoprofile --custom-profile myprofile
- kubectl installed.
aws-sso-magic login
oraws-sso-magic login --profile myprofile
executed previouly.
-
Go to the file $HOME/.aws-sso-magic/config and replace the string "replacethis" on the section default-proxy-role-name if you want to use that role name for all profiles.
[default-proxy-role-name] proxy_role_name = replacethis
or just add the profile section in the file. Eg:
[myprofile] proxy_role_name = myrolename
-
Execute the following command to select and log the eks cluster:
aws-sso-magic login --eks
or if you have configured an aws account as trusted entity having granted to assume roles on the rest of the accounts from there, please executeaws-sso-magic login
selecting profile (account and role configured as trusted identity) and then executeaws-sso-magic login --eks --eks-profile env-eks-profile
. Eg:aws-sso-magic login --profile main-admin aws-sso-magic login --eks --eks-profile qa-admin
-
Please select the EKS cluster or send the cluster name using the flag --cluster. Eg:
aws-sso-magic login --eks --cluster myekscluster
-
Copy and paste the commands according to your OS.
NOTE: If you will select another profile, please first unset the AWS_PROFILE environment variable or close this terminal and open a new one