Git Product home page Git Product logo

aws-sso-cli's Introduction

AWS SSO CLI

Tests CodeQL golangci-lint Go Report Card License Badge Codecov Badge Check Markdown Links Publish Docs Build Release Binaries Last Release

Documentation | Demos | ChangeLog

About

AWS SSO CLI is a secure replacement for using the aws configure sso wizard with a focus on security and ease of use for organizations with many AWS Accounts and/or users with many IAM Roles to assume. It shares a lot in common with aws-vault, but is more focused on the AWS IAM Identity Center use case instead of static API credentials.

AWS SSO CLI requires your AWS account(s) to be setup with AWS IAM Identity Center, which was previously known as AWS Single Sign-On. If your organization is using the older SAML integration (typically you will have multiple tiles in OneLogin/Okta) then this won't work for you.

AWS SSO CLI focuses on making it easy to select a role via CLI arguments or via an interactive auto-complete experience with both automatic and user-defined metadata (tags) and exports the necessary AWS STS Token credentials to your shell environment in a variety of ways. It even supports sharing credentials via the AWS ECS Task IAM Role.

As part of the goal of improving the end-user experience with AWS SSO, it also supports using multiple AWS Web Console sessions and many other quality of life improvements!

Key Features

  • Enhanced security over stock AWS tooling
  • Auto-discover your AWS SSO roles and manage your ~/.aws/config file
  • Support selecting an IAM role via $AWS_PROFILE, CLI (with auto-completion) or interactive search
  • Ability to select roles based on user-defined and auto-discovered tags
  • Support for multiple active AWS Console sessions
  • Guided setup to help you configure aws-sso the first time you run
  • Advanced configuration available to adjust colors and generate named profiles via templates
  • Easily see how much longer your STS credentials are valid for
  • Written in GoLang, so only need to install a single binary (no dependencies)
  • Supports Linux, MacOS, and Windows

Security

Unlike the official AWS cli tooling, all authentication tokens and credentials used for accessing AWS and your SSO provider are encrypted on disk using your choice of secure storage solution. All encryption is handled by the 99designs/keyring library which is also used by aws-vault.

Credentials encrypted by aws-sso and not via the standard AWS CLI tool:

  • AWS SSO ClientID/ClientSecret -- ~/.aws/sso/cache/botocore-client-id-<region>.json
  • AWS SSO AccessToken -- ~/.aws/sso/cache/<random>.json
  • AWS Profile Access Credentials -- ~/.aws/cli/cache/<random>.json

As you can see, not only does the standard AWS CLI tool expose the temporary AWS access credentials to your IAM roles, but more importantly the SSO AccessToken which can be used to fetch IAM credentials for any role you have been granted access!

aws-sso-cli's People

Contributors

synfinatic avatar dependabot[bot] avatar monwolf avatar alezkv avatar ghthor avatar drboyer avatar jackjen avatar johngmyers avatar kevcube avatar guildencrantz avatar pacovk avatar mouchar avatar rgarrigue avatar skx avatar timothybondgr avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.