Skip to content

brett-fitz/aws-sso-manager

Repository files navigation

aws-sso-manager

License Issues

A simple AWS SSO Manager that makes authenticating between multiple profiles, roles, and SSO domains a breeze.

Overview

aws-sso-manager is a simple cli to manage auth for aws sso accounts and roles.

Setup

pip3 install awsssomanager
or
poetry add awsssomanager

Config file

Create a config file. You can create a config file for each ssoDomain.

ssoDomain: 'myssodomain'       # Your aws sso domain (<sso domain>.awsapps.com)
region: 'us-east-1'            # The aws region where your aws sso is configured.

default:
  loginAccount: '1234567890'   # The default account you want mapped to the profile: default

role_priority:
  - "ViewOnlyAccess"
  - "PowerUserAccess"
  - "PowerUserPlus"
  - "AdministratorAccess"

Configure ssoDomain

$ aws-sso-manager configure /path/to/config/file

All done!

Daily Operation

Whenever your tokens expire, you will need to run the command:

$ aws-sso-manager login

Easy Profiles

Profiles are automatically generated in the following formats and can be used directly after credentials are acquired:

<account_id>_<role_name>
<account_id>
<account_name>

Usage

$ AWS_PROFILE=<proile_name> aws s3 ls

Example

1234567890 = dev

$ AWS_PROFILE=dev aws s3 ls
$ AWS_PROFILE=1234567890 aws s3 ls
$ AWS_PROFILE=1234567890_AdministratorAccess aws s3 ls

Python

AWS_AIOSESSION = AioSession(profile='dev')
AWS_SESSION = Session(profile_name='dev')

Help 👷

Join us in discussions

I use GitHub Discussions to talk about all sorts of topics related to this repo.

Open an issue

First, check out the existing issues. If you spot something new, open an issue. We'll use the issue to have a conversation about the problem you want to fix, and I'll try to get to it as soon as I can.