[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
  • Node.js - Install Node.js
  • 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
  • Run npm install in this folder
  • Update the .env with the correct values
  • Run node app.js
  • 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
  • When the success alert shows then come back to the terminal and press a key
  • Done!
  • For consequents runs just start from step 3.
    Feel free to share, copy and improve!

    27

    This website collects cookies to deliver better user experience

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