Skip to main content

A tool and library for determining what AWS account and identity you're using

Project description

aws-whoami

Show what AWS account and identity you're using

You should know about aws sts get-caller-identity, which sensibly returns the identity of the caller. But even with --output table, I find this a bit lacking. That ARN is a lot to visually parse, it doesn't tell you what region your credentials are configured for, and I am not very good at remembering AWS account numbers. aws-whoami makes it better.

$ aws-whoami
Account:         123456789012
                 my-account-alias
Region:          us-east-2
AssumedRole:     MY-ROLE
RoleSessionName: ben
UserId:          SOMEOPAQUEID:ben
Arn:             arn:aws:sts::123456789012:assumed-role/MY-ROLE/ben

Note: if you don't have permissions to iam:ListAccountAliases, your account alias won't appear. See below for disabling this check if getting a permission denied on this call raises flags in your organization.

Install

I recommend you install aws-whoami with pipx, which installs the tool in an isolated virtualenv while linking the script you need.

# with pipx
pipx install aws-whoami

# without pipx
python -m pip install --user aws-whoami

If you don't want to install it, the aws_whoami.py file can be used on its own, with only a dependency on botocore (which comes with boto3).

Options

aws-whoami uses boto3, so it'll pick up your credentials in the normal ways, including with the --profile parameter.

If you'd like the output as a JSON object, that's the --json flag. The output is the WhoamiInfo object (see below) as a JSON object.

To full disable account alias checking, set the environment variable AWS_WHOAMI_DISABLE_ACCOUNT_ALIAS to true. To selectively disable it, you can also set it to a comma-separated list of values that will be matched against the following:

  • The beginning or end of the account number
  • The principal Name or ARN
  • The role session name

As a library

The library has a whoami() function, which optionally takes a Session (either boto3 or botocore), and returns a WhoamiInfo namedtuple.

The fields of WhoamiInfo are:

  • Account
  • AccountAliases (NOTE: this is a list)
  • Arn
  • Type
  • Name
  • RoleSessionName
  • UserId
  • Region
  • SSOPermissionSet

Type, Name, and RoleSessionName (and SSOPermissionSet) are split from the ARN for convenience. RoleSessionName is None for IAM users.

SSOPermissionSet is set if the assumed role name conforms to the format AWSReservedSSO_{permission-set}_{random-tag}.

To disable the account alias check, pass disable_account_alias=True to whoami(). Note that the AccountAliases field will then be an empty list, not None.

format_whoami() takes a WhoamiInfo object and returns the formatted string used for display.

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-whoami-1.2.0.tar.gz (8.7 kB view details)

Uploaded Source

Built Distribution

aws_whoami-1.2.0-py2.py3-none-any.whl (9.2 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file aws-whoami-1.2.0.tar.gz.

File metadata

  • Download URL: aws-whoami-1.2.0.tar.gz
  • Upload date:
  • Size: 8.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.0.5 CPython/3.8.3 Linux/4.19.128-microsoft-standard

File hashes

Hashes for aws-whoami-1.2.0.tar.gz
Algorithm Hash digest
SHA256 6b9de3a4cf6c3c5aa118a173c987d26916070273b677ef7cb30106403f862d18
MD5 c901da6f66598e42a3bf01da74afc06e
BLAKE2b-256 831227f6075ecbd893d12427858b3fe5242fb0c004c18248b65e6a58d5ff3a90

See more details on using hashes here.

File details

Details for the file aws_whoami-1.2.0-py2.py3-none-any.whl.

File metadata

  • Download URL: aws_whoami-1.2.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 9.2 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.0.5 CPython/3.8.3 Linux/4.19.128-microsoft-standard

File hashes

Hashes for aws_whoami-1.2.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 efec378716b3be074140c8623239cd2a0a708ffb8ae74d7486d0ee7b0b0feaa6
MD5 d581f9443e4f99ac306296020fc6535d
BLAKE2b-256 b546caaf1c289cc8afd17d4c4d13046de34b94b96be9e2ab9abed4656745699f

See more details on using hashes here.

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