# aws-mfa-session [![build status](https://github.com/AnderEnder/aws-mfa-session/workflows/Rust/badge.svg)](https://github.com/AnderEnder/aws-mfa-session/actions) [![codecov](https://codecov.io/gh/AnderEnder/aws-mfa-session/branch/master/graph/badge.svg)](https://codecov.io/gh/AnderEnder/aws-mfa-session) [![crates.io](https://img.shields.io/crates/v/aws-mfa-session.svg)](https://crates.io/crates/aws-mfa-session) A command line utility to generate temporary AWS credentials with virtual MFA device. Credentials could be exported into new shell or inserted into aws credentials file. ## Features * support only virtual MFA devices (current limitation of API) * select any profile from credential file * detect MFA device from user profile * generate temporary credentials (using sts) * update profile in the credential file with generated credentials ## Release page distributions Github Release page provides binaries for: * Windows * Linux * macOS ## Examples Generate session credentials with default profile, and print the credentials as exported environment variables ```sh aws-mfa-session --code 123456 -e ``` Could be used to inject variables into the current shell ```sh eval $(aws-mfa-session -c 464899 -e) ``` Generate session credentials with default profile and MFA arn: ```sh aws-mfa-session --arn arn:aws:iam::012345678910:mfa/username --code 123456 -e ``` Generate session credentials with default profile and non-default region: ```sh aws-mfa-session --region us-east2 --code 123456 -e ``` Generate session credentials with default profile, and run a new shell with new shell with exported environment variables ```sh aws-mfa-session --code 123456 -s ``` Generate session credentials with default profile, and create or update a new profile: ```sh aws-mfa-session --update-profile mfa-session --code 123456 ``` Generate session credentials with defined profile, and create or update a new profile: ```sh aws-mfa-session --profile dev --update-profile mfa-session --code 123456 ``` Generate session credentials with defined profile and non-default credential file, and create or update a new profile: ```sh aws-mfa-session --credentials-file .aws/credentials2 --profile dev --update-profile mfa-session --code 123456 ``` ## How to build and install Requirements: rust and cargo ```sh # Build cargo build --release # Install from local source cargo install # Install latest from git cargo install --git https://github.com/AnderEnder/aws-mfa-session # Install from crate package cargo install aws-mfa-session ```