Formal Security
Collect data access logs from Formal Security, including actor, network, and resource information for comprehensive visibility into data access patterns.
Formal Security supports multiple ingestion methods including S3, Azure Blob Storage, Google Cloud Storage, and Cloudflare R2.
Ingest Methods
Setup the ingestion of this source using one of the following guides.
- AWS S3 Bucket
- AWS S3 Bucket with Custom SQS
- Azure Blob Storage
- Google Cloud Storage
- Cloudflare R2 Bucket
If using an AWS S3 bucket use the following SNS topic ARN to send your bucket notifications.
arn:aws:sns:<REGION>:253602268883:runreveal_formal_securitySNS topic & Custom SQS. Use the ARN above in your event notification tied to your S3 bucket—the topic name must match (runreveal_…; hyphens in the source id become underscores). For Custom SQS, set the queue URL and region in RunReveal; see AWS S3 Bucket with Custom SQS.
Note: BYOC, On-Prem, and BYODB customers must use their AWS account ID in the ARN instead of 253602268883.
Setup
Formal Security logs can be ingested via object storage. Configure your Formal Security instance to export logs to one of the supported storage providers.
Verify It’s Working
Once added, the source logs should begin flowing within a few minutes.
You can validate we are receiving your logs by running the following SQL query.
SELECT * FROM runreveal.logs WHERE sourceType = 'formal-security' LIMIT 1Schema
The following columns are exposed for this source. RunReveal applies schema normalization across all sources, ensuring uniform field names and data types for cross-source queries and reusable detection logic.
Table: formal_security_logs (56 columns)
formal_security_logs (56 columns)| Column | Type |
|---|---|
sourceID | String |
sourceType | LowCardinality(String) |
sourceTTL | UInt32 |
receivedAt | DateTime |
id | String |
eventTime | DateTime |
eventName | String |
eventID | String |
srcIP | String |
srcASCountryCode | String |
srcASNumber | UInt32 |
srcASOrganization | String |
srcCity | String |
srcConnectionType | String |
srcISP | String |
srcLatitude | Float64 |
srcLongitude | Float64 |
srcUserType | String |
dstIP | String |
dstASCountryCode | String |
dstASNumber | UInt32 |
dstASOrganization | String |
dstCity | String |
dstConnectionType | String |
dstISP | String |
dstLatitude | Float64 |
dstLongitude | Float64 |
dstUserType | String |
| Column | Type |
|---|---|
actor | Map(String, String) |
tags | Map(String, String) |
resources | Array(String) |
serviceName | String |
enrichments | Array(Tuple(data Map(String, String), name String, provider String, type String, value String)) |
readOnly | Bool |
rawLog | String |
formalEventId | String |
formalTimestamp | String |
sendAt | String |
receivedAtTimestamp | String |
connectorName | String |
connectorInstance | Raw |
resourceName | String |
resourceTechnology | String |
resourceType | String |
resourceDatastore | Raw |
resourceInstance | Raw |
requestS3 | Raw |
requestQuery | Raw |
requestHttp | Raw |
responseDatastore | Raw |
responseHttp | Raw |
sessionConnectionType | String |
sessionStartTime | String |
spaceName | String |
userFormal | Raw |
userNative | Raw |