Skip to main content

Assume an AWS IAM role and execute a command with the assumed credentials

Project description

https://img.shields.io/pypi/v/envassume.svg https://img.shields.io/pypi/pyversions/envassume.svg https://img.shields.io/pypi/l/envassume.svg https://travis-ci.org/wamonite/envassume.svg?branch=master https://codecov.io/gh/wamonite/envassume/branch/master/graph/badge.svg

Assume an AWS IAM role and execute a command with the assumed credentials. AWS API credentials to assume the role must be set as environment variables, and the command and arguments are executed in the same manner as envdir.

envassume takes the effort out of assuming an AWS role from the command-line and copying/pasting the returned credentials to run a command. If you often need to do this:-

$ aws sts assume-role --role-arn arn:aws:iam::123456789012:role/s3_access --role-session-name s3_access_session
{
    "AssumedRoleUser": {
        "AssumedRoleId": "xxxxxxxxxxxxxxxxxxxxx:s3_access_session",
        "Arn": "arn:aws:sts::123456789012:assumed-role/s3_access/s3_access_session"
    },
    "Credentials": {
        "SecretAccessKey": "mmm",
        "SessionToken": "nnn",
        "Expiration": "2019-02-26T00:00:00Z",
        "AccessKeyId": "ooo"
    }
}
$ AWS_ACCESS_KEY_ID='ooo' AWS_SECRET_ACCESS_KEY='mmm' AWS_SESSION_TOKEN='nnn' aws s3 ls

It can be shortened to:-

$ envassume arn:aws:iam::123456789012:role/s3_access aws s3 ls

Useful if you often need to test roles, or run scripts with assumed roles on AWS instances using credentials from the instance profile.

Install

pip install envassume

Usage

usage: envassume [-h] [-i EXTERNAL_ID] [ARN] command [argument [argument ...]]

optional arguments:
    -h, --help              show this help message and exit
    -i, --id EXTERNAL_ID    external id
    ARN                     AWS role ARN to assume (required if not set by environment variable)

environment variables:
    environment must contain valid AWS API credentials

    AWS_ASSUME_ROLE=ARN
        no options can be present before the command if this is defined

    AWS_ASSUME_ID=EXTERNAL_ID

License

Copyright (c) 2017 Warren Moore

This software may be redistributed under the terms of the MIT License. See the file LICENSE for details.

Contact

      @wamonite     - twitter
       \_______.com - web
warren____________/ - email

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

envassume-1.0.6.tar.gz (4.3 kB view details)

Uploaded Source

Built Distribution

envassume-1.0.6-py2.py3-none-any.whl (6.5 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file envassume-1.0.6.tar.gz.

File metadata

  • Download URL: envassume-1.0.6.tar.gz
  • Upload date:
  • Size: 4.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/2.7.13

File hashes

Hashes for envassume-1.0.6.tar.gz
Algorithm Hash digest
SHA256 c88278e2301ce81cc48bf2becd8eb4c3e0a5a886b74916234f3c90a2571baa55
MD5 18a4f162321eed8811c05426eba5ec60
BLAKE2b-256 09ba08e952fe30e2ab67937e84e523b42f7b43c2de2637d0a870b918d86f6526

See more details on using hashes here.

File details

Details for the file envassume-1.0.6-py2.py3-none-any.whl.

File metadata

  • Download URL: envassume-1.0.6-py2.py3-none-any.whl
  • Upload date:
  • Size: 6.5 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/2.7.13

File hashes

Hashes for envassume-1.0.6-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 8ff0e8795a7aba096706388d8e85fa444905cc77be463f9da623d509f92e7f25
MD5 1a7d97cf53f436f93ff2d38fef1012ed
BLAKE2b-256 dbd473ef744767cf6e7cf51d2ad5cb6c3ecc6bd4c8ec2041813100e854f8402d

See more details on using hashes here.

Supported by

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