Get AWS credentials from a profile to inject into other programs
Project description
aws-export-credentials
Get AWS credentials from a profile to inject into other programs
There are a number of other projects that extract AWS credentials and/or inject them into programs, but all the ones I've seen use the CLI's cache files directly, rather than leveraging botocore's ability to retrieve and refresh credentials. So I wrote this to do that.
botocore (the underlying Python SDK library) has added support for loading credentials cached by aws sso login
as of version 1.17.0.
aws-export-credentials
now requires botocore >= 1.17.0, and so supports AWS SSO credentials as well.
If all you want is AWS SSO support for an SDK other than Python, take a look at aws-sso-credential-process, which doesn't require the credential injection process that aws-export-credentials
does.
Quickstart
I recommend you install pipx
, which installs the tool in an isolated virtualenv while linking the script you need.
# with pipx
pipx install aws-export-credentials
# without pipx
python3 -m pip install --user aws-export-credentials
# run it
aws-export-credentials
{
"Version": 1,
"AccessKeyId": "<your access key here>",
"SecretAccessKey": "<shhh it's your secret key>",
"SessionToken": "<do you ever wonder what's inside the session token?>"
}
Usage
Profile
Profiles work like in the AWS CLI (since it uses botocore); it will pick up the AWS_PROFILE
or AWS_DEFAULT_PROFILE
env vars, but the --profile
argument takes precedence.
JSON
aws-export-credentials --profile my-profile --json [--pretty]
Print the credentials to stdout as a JSON object compatible with the credential_process
spec. If --pretty
is added, it'll be pretty-printed.
Env vars
aws-export-credentials --profile my-profile --env
export $(aws-export-credentials --profile my-profile --env)
eval $(aws-export-credentials --profile my-profile --env-export)
Print the credentials as environment variables. With --env-export
, the lines are prefixed
by "export
".
Exec wrapper
aws-export-credentials --profile my-profile --exec echo 'my access key id is $AWS_ACCESS_KEY_ID'
Execute the arguments after --exec
using os.system()
, injecting the credentials through
environment variables.
~/.aws/credentials
aws-export-credentials --profile my-profile --credentials-file-profile my-exported-profile
aws-export-credentials --profile my-profile -c my-exported-profile
Put the credentials in the given profile in your shared credentials file, which is typically ~/.aws/credentials
but can be controlled using the environment variable AWS_SHARED_CREDENTIALS_FILE
.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for aws-export-credentials-0.5.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 00145e7352f4d9f4c4f07bd82f136aa423a6fb8d1040ce089cc88a8ae088f701 |
|
MD5 | 4b70bc96dc2acf4a24cbbfa0e20d5062 |
|
BLAKE2b-256 | d2696895d7edfec8f3ccd8c3aaa1478ea8a9f5d1541b060c2f9c17191ac59b0a |
Hashes for aws_export_credentials-0.5.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 04e115f5046643b0ddf1252a5f42bd9cde2c58c278c96bb20f0c721ecd6746ec |
|
MD5 | 040cc8d2c89d43e0c33dfaa36492e897 |
|
BLAKE2b-256 | 3a4bc0dc778911ff0b44f4da14df31a4e45265f85e2ee05fca3fb3b0037b7a25 |