{"library":"prowler","title":"Prowler","description":"Prowler is an Open Source Cloud Security Platform that automates security and compliance across AWS, GCP, Azure, Kubernetes, Microsoft 365, GitHub, Infrastructure as Code, and MongoDB Atlas environments. It provides hundreds of ready-to-use security checks aligned with various compliance frameworks like CIS, NIST, PCI-DSS, SOC2, and AWS Well-Architected. Currently at version 5.24.0, Prowler has a regular release cadence, with minor versions released frequently, often weekly or bi-weekly, to introduce new features, checks, and bug fixes.","language":"python","status":"active","last_verified":"Mon May 18","install":{"commands":["pip install prowler"],"cli":{"name":"prowler","version":""}},"imports":["import subprocess\nsubprocess.run([\"prowler\", \"aws\"])"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import subprocess\nimport os\n\n# Ensure AWS credentials are configured (e.g., via AWS CLI or environment variables)\n# Example: export AWS_ACCESS_KEY_ID='AKIA...'\n#          export AWS_SECRET_ACCESS_KEY='...'\n#          export AWS_SESSION_TOKEN='...'\n\nprint(\"Running a basic Prowler scan for AWS. This may take a while...\")\n\ntry:\n    # Run a basic AWS scan and output to the terminal\n    # For a full scan, remove --checks CHECK_AWS_EC2_01. For specific frameworks, use --compliance.\n    result = subprocess.run(\n        [\"prowler\", \"aws\", \"--checks\", \"CHECK_AWS_EC2_01\", \"--output-modes\", \"json\", \"text\"],\n        capture_output=True, text=True, check=True\n    )\n    print(\"Scan completed successfully.\")\n    print(\"--- Standard Output ---\")\n    print(result.stdout)\n    if result.stderr:\n        print(\"--- Standard Error ---\")\n        print(result.stderr)\nexcept subprocess.CalledProcessError as e:\n    print(f\"An error occurred during the Prowler scan: {e}\")\n    print(f\"Command: {e.cmd}\")\n    print(f\"Return Code: {e.returncode}\")\n    print(f\"Output: {e.stdout}\")\n    print(f\"Error Output: {e.stderr}\")\nexcept FileNotFoundError:\n    print(\"Error: 'prowler' command not found. Please ensure Prowler is installed and in your PATH.\")\n","lang":"python","description":"This quickstart demonstrates how to run a basic Prowler AWS scan using Python's `subprocess` module. Prowler automatically uses configured cloud credentials (e.g., from AWS CLI, environment variables, or IAM roles). The example runs a specific check for brevity, but you can configure full scans or compliance frameworks using various CLI flags. Output is captured for programmatic access.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-18","installed_version":"5.26.1","pypi_latest":"5.26.1","is_stale":false,"summary":{"python_range":"3.10–3.9","success_rate":30,"avg_install_s":64.4,"avg_import_s":0.02,"wheel_type":"sdist"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"prowler","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"prowler","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":111.3,"import_time_s":0.01,"mem_mb":0.5,"disk_size":"1.8G"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"prowler","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"prowler","exit_code":1,"wheel_type":null,"failure_reason":"timeout","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"prowler","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":0.1,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"prowler","exit_code":1,"wheel_type":null,"failure_reason":"timeout","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"prowler","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.02,"mem_mb":1,"disk_size":"356.6M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"prowler","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":17.5,"import_time_s":0.02,"mem_mb":0.8,"disk_size":"358M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"prowler","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"prowler","exit_code":1,"wheel_type":null,"failure_reason":"timeout","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null}]}}