Welcome to simple_gh_aws_creds Documentation
simple_gh_aws_creds gives a GitHub repository its own AWS IAM user, and stores that user’s access key as the repository’s GitHub Actions secrets. One command sets it up, one command tears it down, and each step is safe to run again.
It fits when you want GitHub Actions to reach AWS in a few minutes, without setting up OIDC:
open source projects whose CI needs a small, well-scoped piece of AWS;
test and sandbox accounts, where one IAM user per repository is easy to track;
a quick start you may later replace with OIDC.
The access key is long-lived. For production accounts, prefer GitHub OIDC.
Quick Start
Describe the IAM user in a JSON config file:
{
"aws_region": "us-east-1",
"iam_user_name": "gh-ci-my-project",
"policy_document": {
"Version": "2012-10-17",
"Statement": [
{"Effect": "Allow", "Action": ["s3:ListBucket"], "Resource": "*"}
]
},
"path_access_key_json": "my_access_key.json",
"github_user_name": "my-github-user",
"github_repo_name": "my-project"
}
Create the IAM user, its access key, and the GitHub secrets. AWS credentials come from your AWS profile; the GitHub token from the GITHUB_TOKEN environment variable:
uvx simple-gh-aws-creds setup --config config.json --aws_profile my-profile
Use the secrets in a workflow:
jobs:
aws-job:
runs-on: ubuntu-latest
env:
AWS_DEFAULT_REGION: ${{ secrets.AWS_DEFAULT_REGION }}
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
steps:
- run: aws sts get-caller-identity
Read more:
Quick Start: the full walk-through, with prerequisites.
How It Works: what gets created, and the security trade-off.
CLI Reference: the config file and every command.
Python API: the same, from Python.
Troubleshooting: common errors and how to fix them.
Install
simple_gh_aws_creds is released on PyPI. Run the command line tool without installing it:
$ uvx simple-gh-aws-creds --help
Or install it, for the command line tool and the Python API:
$ pip install simple-gh-aws-creds
To upgrade to latest version:
$ pip install --upgrade simple-gh-aws-creds
Use with AI Coding Agents
This repo ships an Agent Skill that documents the public API of simple_gh_aws_creds, so an AI coding agent such as Claude Code can use the library without reading its source. It lives in .claude/skills/pypi-simple_gh_aws_creds. To use it in your project, copy it into your project’s .claude/skills/ folder. Run this from your project’s root:
$ git clone --depth 1 https://github.com/MacHu-GWU/simple_gh_aws_creds-project.git /tmp/simple_gh_aws_creds-project
$ mkdir -p .claude/skills
$ cp -R /tmp/simple_gh_aws_creds-project/.claude/skills/pypi-simple_gh_aws_creds .claude/skills/
Metadata
Release files for simple_gh_aws_creds 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| simple_gh_aws_creds-0.2.0.tar.gz | 22.4 kB | Without provenance | Details for simple_gh_aws_creds-0.2.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| simple_gh_aws_creds-0.2.0-py3-none-any.whl | Python 3 | none | any | Details for simple_gh_aws_creds-0.2.0-py3-none-any.whl |
Total release size: 40.5 kB
Release files / simple_gh_aws_creds-0.2.0.tar.gz
| Download URL | simple_gh_aws_creds-0.2.0.tar.gz |
|---|---|
| Size | 22.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
98084f00bc8db945011e7587e6cf13b24a6ddfee8f631b45988376ab56cdc51f
|
|
BLAKE2b-256 checksum How to use checksums |
32cb1bc7a0d2776d88e663f1ffd56c621c44dcfcba41d6ab5d5a479be72e0265
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / simple_gh_aws_creds-0.2.0-py3-none-any.whl
| Download URL | simple_gh_aws_creds-0.2.0-py3-none-any.whl |
|---|---|
| Size | 18.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
1fbaf09eab68aee1375e0f5dd98653b22075589f30ec2e6f1a05f533964fd4f1
|
|
BLAKE2b-256 checksum How to use checksums |
28b10270065278a70774a2ed837be5f10778be7ae81a5f9ab93e02b8513b80a2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Security for simple_gh_aws_creds 0.2.0
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.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.