AWS SNS
RunReveal publishes a JSON message to an Amazon SNS topic when a detection fires, a test runs, or another notification event triggers. Standard and FIFO (.fifo) topics work across all AWS partitions (aws, aws-us-gov, aws-cn).
Setup Instructions
Step 1: Create or Select an SNS Topic
Create or pick the SNS topic that will receive alerts and copy its Topic ARN (for example, arn:aws:sns:us-east-1:123456789012:runreveal-alerts).
On FIFO (.fifo) topics, RunReveal sets MessageGroupId to runreveal-<workspaceID> and MessageDeduplicationId to <historyID>-<pageIndex> so content-based deduplication does not drop multi-page alerts.
Step 2: Configure AWS Authentication
Authenticate with an IAM role that RunReveal assumes (recommended) or an AWS access key pair.
Create an IAM role in your AWS account with sns:Publish permission on the target topic:
If your SNS topic uses server-side encryption (SSE) with a customer-managed KMS key, also grant kms:GenerateDataKey and kms:Decrypt on that KMS key ARN.
Add a trust policy on the role so RunReveal can assume it with your External ID:
Note: BYOC, On-Prem, and BYODB customers must use their deployment's AWS account ID in the Principal ARN instead of 253602268883.
Step 3: Configure in RunReveal
- Open Notification Channels, click Connect a notification channel, and select AWS SNS.
- Enter a display name and paste your SNS Topic ARN (
arn:aws:sns:us-east-1:123456789012:my-alerts-topic). RunReveal fills in the AWS region from the ARN. - Pick Customer provided role (Role ARN and optional External ID) or AWS access key (Access Key ID and Secret Access Key).
- Click Test notification to publish a test message, then click Create Notification to save.
Payload Schema & Page Splitting
Each SNS message body is a JSON object matching the Webhook notification payload, with two differences for AWS.
Scheduled SQL detections include detection.results (an array of row objects) and omit the columnar columns and values arrays so rows are not duplicated in the payload.
AWS SNS caps messages at 256 KB (262,144 bytes). When a detection result exceeds 256 KB, RunReveal splits detection.results across multiple SNS messages and sets pageIndex (0, 1, 2, ...) and totalPages on each message.
Top-level fields
| Field | Type | Description |
|---|---|---|
title | string | Rendered notification title (from template). |
body | string | Rendered notification body (from template). |
channel | string | Always "sns" for this channel. |
pageIndex | number | 0-based index of this message page (0 when unsplit). |
totalPages | number | Total number of pages sent for this notification (1 when unsplit). |
detection | object | Present for detection alerts. |
test | object | Present for test notifications ({"status": true}). |
data | object | Present for other event types. |
Example payloads
Related Documentation
- AWS SQS Notifications - Send detection alerts to an Amazon SQS queue
- Webhooks - Full detection object field reference
- Notification Templates - Customize notification title and body
- Getting Started with Notifications - Attach notification channels to detections