Skip to main content

Prowler Compliance Overview

Triggers a Prowler scan for a configured provider, waits for it to complete, then collects compliance overview data summarizing passed, failed, and manual requirements per framework.

Sync Type: Cron

Requirements

Before configuring this input, you need to:

  1. Generate a Prowler API Key:

    • Log in to your Prowler account
    • Navigate to Settings > Integrations > API Keys
    • Click Create API Key
    • Copy and securely store the generated key (you will only see it once)
  2. Configure a Provider in Prowler:

    • Log in to Prowler Cloud
    • Navigate to Providers
    • Add a provider for your cloud environment if you haven't already
    • Note the alias (the name you assigned to the provider, e.g., "My AWS Account")
    • This alias will be used in the Provider Alias configuration field
  3. API Access:

    • Ensure your Prowler account has API access enabled
    • Confirm you have permissions to trigger scans and retrieve compliance data

Details

On each scheduled run, Monad:

  1. Resolves the provider — Looks up the provider's UUID by querying GET /api/v1/providers?filter[alias]={alias}
  2. Triggers a new scan — Calls POST /api/v1/scans with the resolved provider UUID
  3. Polls scan status — Calls GET /api/v1/scans/{id} every 15 seconds until the scan completes (state becomes "completed") or times out
  4. Fetches compliance data — Once the scan completes, retrieves compliance overview records filtered to that specific scan using GET /api/v1/compliance-overviews?filter[scan_id]={id}&page[size]=100&sort=compliance_id

State Management

If a run is interrupted during polling (e.g., context timeout), the pending scan ID is saved in state. The next run will resume polling that scan instead of triggering a new one, ensuring efficient use of Prowler's scan quota. The scan ID is cleared from state once compliance data has been successfully fetched.

Pagination

The connector fetches compliance data with page-based pagination (max 100 records per page). It stops when all pages have been fetched or when the response contains no pagination metadata.

Configuration

Settings

SettingTypeRequiredDescription
CronstringYesSchedule expression for how often to run (e.g., 0 2 * * * for daily at 2 AM UTC).
Provider AliasstringYesAlias of the Prowler provider to trigger a scan for. This is the name you set when adding the provider in the Prowler UI (e.g., "My AWS Account").
Use Synthetic DatabooleanNoGenerate synthetic demo data instead of connecting to the real data source. Useful for testing configuration without credentials.

Secrets

SecretTypeRequiredDescription
API KeystringYesProwler API key for authentication. Generate one in the Prowler UI under Settings > Integrations > API Keys. Use the value directly (the connector will prepend "Api-Key " automatically).

Rate Limits

ScopeLimitWindowNotes
Global5 RPSPer SecondConservative estimate. Prowler does not publish explicit rate limits in API documentation.

Headers: Authorization: Api-Key <key> Source: Prowler API documentation (rate limits inferred from API best practices)

Sample Record

{
"type": "compliance-overviews",
"id": "550e8400-e29b-41d4-a716-446655440000",
"attributes": {
"framework": "CIS",
"version": "1.4.0",
"requirements_passed": 127,
"requirements_failed": 18,
"requirements_manual": 5,
"total_requirements": 150,
}
}