Ape AWS KMS
Ape plugin to make transactions through AWS KMS
Dependencies
- python3 version 3.10 or greater, python3-dev
Installation
via pip
You can install the latest release via pip:
pip install ape-aws
via setuptools
You can clone the repository and use setuptools for the most up-to-date version:
git clone https://github.com/ApeWorX/ape-aws.git
cd ape-aws
python3 setup.py install
Quick Usage
pip install ape-aws
Using CLI tool
List commands:
ape aws -h
See logged in profile (useful for debugging auth in containers)
ape aws whoami
To create a new user (recommended for cloud usage)
ape aws users new USER
To delete this user (WARNING this is permanent)
ape aws users remove USER
Create an access key for this user (WARNING don't lose generated token)
ape aws users tokens new USER > .env.USER
To create a new Ethereum signing key (recommended to generate)
ape aws keys generate KEY
To schedule this signing key for deletion (WARNING takes 30 days)
ape aws keys remove KEY
To grant your user access to the signing key (don't forget to do this!)
ape aws keys grant KEY -u USER
IPython
First, create a KMS key with the CLI tool
ape console
In [1]: kms_signer = accounts.load("KEY")
In [2]: kms_signer.sign_message("12345")
Out[2]: <MessageSignature v=27, r=0x..., s=0x...>
Now to test your new IAM user's access, you can do the following
env $(echo .env.USER | xargs) ape console
and you should be able to do the same as the above!
Use the access token above to run with your containers by supplying them as environment variables
WARNING: Don't forget to cycle your access tokens on a regular basis to prevent access leakage!
Development
This project is in development and should be considered a beta. Things might not be in their final state and breaking changes may occur. Comments, questions, criticisms and pull requests are welcomed.
Prerequisites to AWS Setup
To begin, create a virtual environment set up and activate the virtual environment before doing anything for the setup of AWS
- You must have an AWS account
- Must be an AWS Identity and Access Management (IAM) user with administrator access
- Must have configured AWS credentials
- Must have Docker, Python3 and pip installed on your workstation
AWS Setup
For Mac and Linux
Create a ~/.aws folder in your home directory:
mkdir ~/.aws
Note: get your access key and key id from your IAM in you AWS account here.
Create a credentials file in the ~/.aws folder:
cat <<EOF > ~/.aws/credentials
[default]
aws_access_key_id = YOUR_ACCESS_KEY
aws_secret_access_key = YOUR_SECRET
EOF
Create a config file in the ~/.aws folder:
cat <<EOF > ~/.aws/config
[default]
region = YOUR_REGION
output = json
EOF
AWS KMS Key Import Steps
For manual setup, follow this article
License
This project is licensed under the Apache 2.0.
Metadata
Release files for ape-aws 0.8.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ape_aws-0.8.4.tar.gz | 26.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ape_aws-0.8.4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 46.5 kB
Release files / ape_aws-0.8.4.tar.gz
| Download URL | ape_aws-0.8.4.tar.gz |
|---|---|
| Size | 26.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a21f3fbaf790240b78ae59fd95dc74876fe39d79f7875ee35c793ce4850ec4ca
|
|
BLAKE2b-256 checksum How to use checksums |
32f064287a1ebbc8438d9f3865a4f480ad7d18bf6a893ae216714a9d8e25ddca
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on May 12, 2025.
Transparency logRelease files / ape_aws-0.8.4-py3-none-any.whl
| Download URL | ape_aws-0.8.4-py3-none-any.whl |
|---|---|
| Size | 20.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7d623daae8c1ef9f1b8c485f3b6d4f9b63d2c7aba9e996135d08608373c89093
|
|
BLAKE2b-256 checksum How to use checksums |
3817dd62d7ff33b9b7ed8b91bc80c8a63e7f234334f4983abc61f915bd298059
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on May 12, 2025.
Transparency log