Security

Send AWS Inspector alerts to on-call with CallHeim.

Amazon Inspector v2 findings via EventBridge → webhook. CallHeim maps the payload, collapses repeats within five minutes, and pages whoever is on call for the service it belongs to.

awsinspectorAWSalso accepts: aws-inspector, inspector2, aws.inspector2

You build the connection

AWS Inspector has no native outbound webhook for this. It requires a forwarder, script or template that you set up; CallHeim provides the ingest URL and understands the payload shape once it arrives.

Setting it up

Create an Integration in CallHeim and choose AWS Inspector from the Catalog. You get an ingest URL for that integration — paste it into AWS Inspector’s webhook configuration. The snippet beside this is the shape it expects, with {{WEBHOOK_URL}} replaced by your real URL.

If you enable request signing on this integration, CallHeim requires a valid HMAC-SHA256 signature in the X-ItOnCall-Signature or X-Hub-Signature-256 header on every request to it. Without a signing secret, the ingest URL itself is the credential.

CallHeim includes a payload mapping for AWS Inspector’s webhook format, built and tested against sample payloads.

AWS Inspector webhook documentation →

Setup snippetawsinspector
# Amazon Inspector findings reach CallHeim through an EventBridge rule you create in your own AWS account — nothing forwards them for you.
# EventBridge → API destinations → Connections → Create connection. Authorization type: API Key, with API key name X-Placeholder and any value. EventBridge requires one; CallHeim does not read it. Do not use Authorization or an X-CallHeim- / X-ItOnCall- header name, which CallHeim does read.
# EventBridge → API destinations → Create API destination: endpoint {{WEBHOOK_URL}}, HTTP method POST, using the connection you created above.
# EventBridge → Rules → Create rule on the default event bus, with this event pattern:
{"source":["aws.inspector2"],"detail-type":["Inspector2 Finding"],"detail":{"status":["ACTIVE","CLOSED"]}}
# Target: EventBridge API destination → the API destination you created above. Keep the target input as "Matched events" — no input transformer — so CallHeim receives the event exactly as EventBridge emits it. Let the console create the rule's execution role (it needs events:InvokeApiDestination on the destination).
# An ACTIVE finding opens an incident; the same finding sent again as CLOSED resolves it. SUPPRESSED is left out of the pattern because it would open an incident.
# EventBridge rules, connections and API destinations are regional: repeat the connection, API destination and rule in every region you want covered.
Example shape written by us; check AWS Inspector’s current documentation.

After it arrives

What CallHeim does with AWS Inspector alerts.

Detection alerts are the case where sending content to an external model is least acceptable. Severity and correlation for these alerts are computed by rule-based code inside our own AWS environment; no finding is sent to an external AI model. An optional Amazon Bedrock path exists in the code and is switched off.

CallHeim maps AWS Inspector’s own severity to a P1–P5 level and shows a separate, explainable severity suggestion — a published keyword ruleset plus your own resolved-incident history — that a person can apply. How severity is suggested →

Each alert source is bound to a service, and the service’s escalation policy (or its team’s) sets who is paged. Alerting and escalation →

CallHeim closes an incident on a recovery event only for sources whose recovery payload it recognises (or that you map). For the others, a person resolves the incident.

The thresholds it passes through

Dedup window
300s
Flap threshold
4 transitions / 600s
Title correlation
similarity ≥ 0.6, same source and service
Group window default
600s

All defaults are published. You can turn title correlation off or change its threshold, and set the window on your own noise rules; the dedup window and the flap settings are fixed. How alerts are processed →

CallHeim

Point AWS Inspector at CallHeim and see what it does with your alerts.

Explore the platform, connect one source, and send yourself a test page by e-mail (early access).

Early access · every workspace starts with a 14-day trial for up to 5 seats, no card required