Skip to main content

Map the AWS blast radius of GitHub Actions workflows

Project description

ActionScope

Map the AWS blast radius of your GitHub Actions workflows.

PyPI License: MIT

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.

  1. Finds all .github/workflows/*.yml files
  2. Extracts AWS role ARNs and GITHUB_TOKEN permission declarations
  3. Finds matching IAM policies in Terraform or JSON files in your repo
  4. Classifies each IAM action by risk using the policy-sentry database
  5. 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 โ€” AWS Security Engineer. GitHub

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

actionscope-0.1.0.tar.gz (40.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

actionscope-0.1.0-py3-none-any.whl (36.6 kB view details)

Uploaded Python 3

File details

Details for the file actionscope-0.1.0.tar.gz.

File metadata

  • Download URL: actionscope-0.1.0.tar.gz
  • Upload date:
  • Size: 40.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for actionscope-0.1.0.tar.gz
Algorithm Hash digest
SHA256 8f03b58bcb8361fbac67583dae4f43bf6810fcab1b1ee0647c0000075ff69561
MD5 d0695749f8712832cd07be64fed163a8
BLAKE2b-256 33643e2fb230d8d0a96eea96f7e1769e8dbfc6aea159dd2347989f4f4645c5cd

See more details on using hashes here.

Provenance

The following attestation bundles were made for actionscope-0.1.0.tar.gz:

Publisher: release.yml on r12habh/ActionScope

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file actionscope-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: actionscope-0.1.0-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

Hashes for actionscope-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 483848ebbe1e5186576925c2212466a07c32f0e163d8f49c82986b599de5bbee
MD5 34279184911351474a2d080ef22d5f68
BLAKE2b-256 5e161f1ff194f105928179b6a9120ae78bd3850a088332fe47c43219246a2c47

See more details on using hashes here.

Provenance

The following attestation bundles were made for actionscope-0.1.0-py3-none-any.whl:

Publisher: release.yml on r12habh/ActionScope

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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