Using Prowler - SethBodine/audit-tools GitHub Wiki

Using Prowler

Prowler is an open-source cloud security tool that performs security assessments, audits, and compliance checks across AWS, Azure, GCP, Microsoft 365, and Kubernetes. It maps findings to frameworks including CIS, SOC2, ISO27001, GDPR, HIPAA, and more, and supports multiple output formats.

  • Multi-cloud: AWS, Azure, GCP, M365, Kubernetes
  • Output formats: CSV, JSON, HTML, and OCSF
  • Maps to CIS, SOC2, ISO27001, NIST, HIPAA, and other frameworks
  • Supports filtering by service, severity, region, and subscription

Prepare the Environment

Prowler runs in a Python virtual environment.

cd /opt/prowler/
. prowler.sh          # activates the venv; also updates Prowler on each run

Note: Prowler requires Python 3.12. Python 3.13 is not yet supported.

Gather Data

Prowler does not handle cloud authentication. Authenticate to your provider before running. See Cloud Authentication via CLI.

AWS

prowler aws -M csv json-asff json-ocsf html \
    --profile <profile> \
    --region <region>    # e.g. ap-southeast-2

Azure

prowler azure --az-cli-auth -M csv html
# Optionally scope to specific subscriptions
prowler azure --az-cli-auth -M csv html \
    --subscription-ids <subscription-id>

GCP

prowler gcp -M csv html

Microsoft 365

prowler m365 --az-cli-auth -M csv  html

Kubernetes

prowler kubernetes -M csv  html

Filtering by Check or Service

# Run only specific checks
prowler aws --checks s3_bucket_public_access s3_bucket_no_mfa_delete

# Run checks for a specific service
prowler aws --services s3 iam ec2

# Run only CRITICAL and HIGH severity checks
prowler aws --severity critical high

Known Issues

  • If Killed appears mid-execution, the container VM has insufficient memory. Recreate the Podman VM with more RAM (minimum 4GB recommended, 8GB for large environments).

Additional Information

⚠️ **GitHub.com Fallback** ⚠️