skip to navigation
skip to content

byu-awslogin 0.10.7

An aws-adfs spinoff that fits BYU's needs

Latest Version: 0.12.4

Python script for CLI and SDK access to AWS via ADFS while requiring MFA access using https://duo.com/

History and Purpose

BYU used to use the great aws-adfs CLI tool to login to our AWS accounts. It worked great, especially the DUO 2FA support. Eventually, we decided to write our own similar tool but make it BYU-specific so that we could taylor it to our needs (which basically means hard-code certain BYU-specific things) and remove some of the required parameters. Since this tool will be used by BYU employees only we had that option. We then morphed it a little more for our use cases. This isn’t something that you could use outside of BYU, sorry.

Installation

Usage

awslogin defaults to the default profile in your ~/.aws/config and ~/.aws/credentials files. *If you already have a default profile you want to save in your ~/.aws files make sure to do that before running awslogin.*

Once you’re logged in, you can execute commands using the AWS CLI or AWS SDK. Try running aws s3 ls.

Currently, awslogin tokens are only valid for 1 hour due to the assume_role_with_saml AWS API call has a max timeout of 1 hour.

To use it:

  • Run awslogin and it will prompt you for the AWS account and role to use.
  • Run awslogin --account <account name> --role <role name> to skip the prompting for account and name. You could specify just one of the arguments as well.
  • Run awslogin --profile <profile name> to specifiy an alternative profile
  • Run awslogin -- --help for full help message

Reporting bugs or requesting features

  • Enter an issue on the github repo.
  • Or, even better if you can, fix the issue and make a pull request.

Deploying changes

  • Update the version in the VERSION file.
  • Commit the change and push. Handel-codepipeline will run the automated tests and if they pass it will build and upload a new version to pypi.

TODO

  • gracefully handle the error case when the duo push is rejected
  • Add support for profiles (@dsw88 is this already done?)
  • Authenticate once for 8 hours and rerun awslogin to relogin
  • Write tests - roles.py - assume_role.py
 
File Type Py Version Uploaded on Size
byu_awslogin-0.10.7-py3-none-any.whl (md5) Python Wheel py3 2017-07-17 15KB
byu_awslogin-0.10.7.tar.gz (md5) Source 2017-07-17 10KB