Skip to main content

Unified CLI tool for streamlined AWS operations

Project description

aws fusion

Unified CLI tool for streamlined AWS operations, enhancing developer productivity

Tag Tagging

Installation

Via Pip directly

Install via pip install. note this also requires git to be present

pip install git+https://github.com/snigdhasjg/aws-fusion.git@main

Manually

Simply clone this repository and run pip install

git clone https://github.com/snigdhasjg/aws-fusion.git
cd aws-fusion
pip install .

Command line tool

To invoke the cli, there are 2 option

  1. Directly use aws-fusion command
  2. Use it via aws cli alias with aws fusion

Usage of open-browser

Try aws-fusion open-browser --help for detailed parameter

  • Make AWS credentials available via aws profile
  • Execute the script: aws-fusion open-browser --profile my-profile
  • :tada: Your browser opens, and you are signed in into the AWS console

Use cases

This only works with assume-role and federated-login, doesn't work with IAM user or user session.

IAM assume role

Profiles that use IAM roles pull credentials from another profile, and then apply IAM role permissions.

In the following examples, iam-user is the source profile for credentials and iam-assume-role borrows the same credentials then assumes a new role.

Credentials file

[profile iam-user]
aws_access_key_id=AKIAIOSFODNN7EXAMPLE
aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

Config file

[profile iam-user]
region = us-east-1
output = json

[profile iam-assume-role]
source_profile = iam-user
role_arn = arn:aws:iam::777788889999:role/user-role
role_session_name = my-session
region = ap-south-1
output = json

Federated login

Using IAM Identity Center, you can log in to Active Directory, a built-in IAM Identity Center directory, or another IdP connected to IAM Identity Center. You can map these credentials to an AWS Identity and Access Management (IAM) role for you to run AWS CLI commands.

In the following examples, using aws-sso profile assumes sso-read-only-role on 111122223333 account.

Config file

[profile aws-sso]
sso_session = my-sso-session
sso_account_id = 111122223333
sso_role_name = sso-read-only-role
role_session_name = my-session
region = us-east-1
output = json

[sso-session my-sso-session]
sso_region = us-east-2
sso_start_url = https://my-sso-portal.awsapps.com/start
sso_registration_scopes = sso:account:access

Refer

The docs


Usage of store-iam-user-credentials

Try aws-fusion store-iam-user-credentials --help for detailed parameter

Store AWS credentials in system default credential store

Use cases

To store IAM user credential in the system credential store for best security rather than plain text ~/.aws/credentials file.

Manually the save the credential in the store using

aws-fusion store-iam-user-credentials \
    --access-key 'AKIAIOSFODNN7EXAMPLE' \
    --secret-key 'wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY' \
    --account-id '123456789012' \
    --username 'my-iam-user'

Usage of get-iam-user-credentials

Try aws-fusion get-iam-user-credentials --help for detailed parameter

Retrieve AWS credentials from system default credential store. Optionally plug the CLI to aws external credential process.

Use cases

Configure aws config file to use credential process

Config file

[profile iam-user]
region = us-east-1
output = json
credential_process = aws-fusion get-iam-user-credentials --account-id 123456789012 --username 'my-iam-user' --access-key 'AKIAIOSFODNN7EXAMPLE' --credential-process

Refer

The docs


Usage of generate-okta-device-auth-credentials

Try aws-fusion generate-okta-device-auth-credentials --help for detailed parameter

Simplifies the process of obtaining AWS session credentials using SAML assertion from Okta device authentication

Use cases

Configure aws config file to use credential process

Config file

[profile iam-user]
region = us-east-1
output = json
credential_process = aws-fusion generate-okta-device-auth-credentials --org-domain my.okta.com --oidc-client-id 0pbs4fq1q2vbGoFkC1m7 --aws-acct-fed-app-id 0oa8z9xa8BS9b2AFb1t7 --aws-iam-role arn:aws:iam::123456789012:role/PowerUsers --credential-process

License

This project is licensed under the MIT License - see the LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aws-fusion-1.1.tar.gz (11.8 kB view details)

Uploaded Source

Built Distribution

aws_fusion-1.1-py3-none-any.whl (12.5 kB view details)

Uploaded Python 3

File details

Details for the file aws-fusion-1.1.tar.gz.

File metadata

  • Download URL: aws-fusion-1.1.tar.gz
  • Upload date:
  • Size: 11.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.2 CPython/3.11.6

File hashes

Hashes for aws-fusion-1.1.tar.gz
Algorithm Hash digest
SHA256 b0e918667375a18b8e6de83360ac05ff9b98967f023483b1726eaa67aa397026
MD5 646d7eeda4affdba73798693d16bd6b4
BLAKE2b-256 bf2accc4a2b65820379d64ab674cf2ad9787a8b5491c3b436414b07d1b67f94b

See more details on using hashes here.

Provenance

File details

Details for the file aws_fusion-1.1-py3-none-any.whl.

File metadata

  • Download URL: aws_fusion-1.1-py3-none-any.whl
  • Upload date:
  • Size: 12.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.2 CPython/3.11.6

File hashes

Hashes for aws_fusion-1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 a8c3befc7c13a02127afc0cb6f1b0bf05dadc404b5b8aba0eb8f81323b1da4c4
MD5 b39df89991e161a8c8cfc39e4673aa41
BLAKE2b-256 0a07dc1ea1f871edc6ab82af99a503dcd661318e38ff3bc0d0fe54015c83167b

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page