[NodeJs/AWS] Self-reload SSO keys in credentials file

AWS SSO Credentials Script

Hello everyone! I just wanted to share a script i made in Nodejs using the V3 AWS Sdk for javascript.
This is a script to (almost)automatically update your local credentials file.
I say almost because at some point you'll need to click a button (or two in the worst scenario).

Motivation

The SSO credentials expires every day, so I did not want to update this file manually. This script is very useful when you have a lot of accounts/roles in your organization.

Requirements

How to use

First of all download the code from github - aws-sso-creds-tool

git clone https://github.com/leandrosalo/aws-sso-creds-tool.git

Update .env file with the correct params

It is required to set the sso url like this:

SSO_URL="https://<your-project>.awsapps.com/start#/"

The credentials will be stored as [account-name_AWSRoleName].
If you want to store it as [123456789098_AWSRoleName] add this:

USE_ACCOUNT_ID=true

if you want a different profile name pattern update the code...

It uses us-east-1 as default aws region and searches for the credentials file in the default path.
If you want to change it, add this:

REGION=us-east-1
AWS_CREDENTIALS_PATH=/Users/you/.aws/credentials

First time use

  1. Run npm install in this folder
  2. Update the .env with the correct values
  3. Run node app.js
  4. At some point the aws webpage will popup
    1. Log in to aws if you are not already
    2. The code for device authentication will be auto filled
    3. Click on Sign In
  1. When the success alert shows then come back to the terminal and press a key
  1. Done!

For consequents runs just start from step 3.

Feel free to share, copy and improve!

24