Map the AWS blast radius of GitHub Actions workflows
Project description
ActionScope
Map the AWS blast radius of your GitHub Actions workflows.
ActionScope reads your .github/workflows/ files, Terraform IAM resources,
and inline JSON IAM policies, then tells you โ in plain English โ what your
CI/CD pipelines can actually do to your AWS environment.
It answers the question no other tool answers: "If this workflow is compromised, what can an attacker do in AWS?"
Install
pip install actionscope
Quick Start
actionscope scan .
Example Output
ActionScope โ Blast Radius Report
Path: /my-repo | Workflows: 2 | Overall Risk: ๐ด CRITICAL
deploy.yml โ deploy โ Configure AWS credentials
AWS Role: arn:aws:iam::123456789012:role/github-deploy-role
Auth: OIDC โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโ
โ Action โ Access Level โ Risk โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโค
โ iam:PassRole โ Permissions mgmt โ ๐ด CRIT โ
โ ec2:TerminateInstances โ Write โ ๐ HIGH โ
โ s3:GetObject โ Read โ ๐ข LOW โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโ
โ ๏ธ iam:PassRole on * โ privilege escalation path exists
Use as a GitHub Action
- uses: r12habh/ActionScope@v0
with:
fail-on: high
comment-pr: true
How It Works
ActionScope performs static analysis only โ it never sends your code to any external service.
- Finds all
.github/workflows/*.ymlfiles - Extracts AWS role ARNs and GITHUB_TOKEN permission declarations
- Finds matching IAM policies in Terraform or JSON files in your repo
- Classifies each IAM action by risk using the policy-sentry database
- Outputs a plain-English blast radius report
What If My Policies Aren't in the Repo?
โน๏ธ Policy not found in repo for role: arn:aws:iam::123456:role/ci-deploy
๐ก Run with --aws-verify to fetch live policies from AWS (coming in v1.0)
In v1.0, --aws-verify will use read-only AWS API calls to fetch the real
attached policies for any role ARN found in your workflows.
Public Research
ActionScope includes a reproducible public-data research scaffold for analyzing
workflow-level AWS security patterns across public GitHub repositories. See
research/ for the scanner, methodology, and anonymized findings
template.
Built By
Rishabh Singh. GitHub
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file actionscope-0.1.1.tar.gz.
File metadata
- Download URL: actionscope-0.1.1.tar.gz
- Upload date:
- Size: 40.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
169c5b16aa1f381141cdedc14d08c8b9be96137497821fad0cfc52a5aa736034
|
|
| MD5 |
ff57f7b7e072d999bc1d664cdb0ed406
|
|
| BLAKE2b-256 |
3aca2dcee4b3ce001d131efb2a1d4518664f00e13eae172443ac048647621e4c
|
Provenance
The following attestation bundles were made for actionscope-0.1.1.tar.gz:
Publisher:
release.yml on r12habh/ActionScope
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
actionscope-0.1.1.tar.gz -
Subject digest:
169c5b16aa1f381141cdedc14d08c8b9be96137497821fad0cfc52a5aa736034 - Sigstore transparency entry: 1559098190
- Sigstore integration time:
-
Permalink:
r12habh/ActionScope@1b49b75d1aa9001b338f5a0cfc1994eedaebea08 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/r12habh
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@1b49b75d1aa9001b338f5a0cfc1994eedaebea08 -
Trigger Event:
push
-
Statement type:
File details
Details for the file actionscope-0.1.1-py3-none-any.whl.
File metadata
- Download URL: actionscope-0.1.1-py3-none-any.whl
- Upload date:
- Size: 36.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
503af9b8bfcdd9f9435f0685f53c388cc064133f29e656c116dd91f3b7d46bf6
|
|
| MD5 |
6a48d6c59d46bedef8c823bd889bd986
|
|
| BLAKE2b-256 |
7621b0b05d9e276b33c47bbe3ef5fe69e4c528bffc2c605a194f62913235874d
|
Provenance
The following attestation bundles were made for actionscope-0.1.1-py3-none-any.whl:
Publisher:
release.yml on r12habh/ActionScope
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
actionscope-0.1.1-py3-none-any.whl -
Subject digest:
503af9b8bfcdd9f9435f0685f53c388cc064133f29e656c116dd91f3b7d46bf6 - Sigstore transparency entry: 1559098310
- Sigstore integration time:
-
Permalink:
r12habh/ActionScope@1b49b75d1aa9001b338f5a0cfc1994eedaebea08 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/r12habh
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@1b49b75d1aa9001b338f5a0cfc1994eedaebea08 -
Trigger Event:
push
-
Statement type: