SigSentrySigSentry

AWS CloudWatch

Connect AWS CloudWatch Logs to SigSentry using IAM credentials

The CloudWatch adapter uses CloudWatch Logs Insights to query log groups during analyses. You'll need an IAM principal with read access to the log groups you care about, plus the AWS region they live in.

Prerequisites

NeedNotes
AWS account with CloudWatch LogsLogs already flowing in
IAM credentialsAccess Key ID + Secret Access Key, optionally a session token
RegionThe AWS region where the log groups live
Log group namesAt least one; the dashboard can autocomplete from your account

IAM policy

Create an IAM user (or role) with this least-privilege policy. Replace <region> and <account-id> with your values.

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "logs:DescribeLogGroups",
        "logs:StartQuery",
        "logs:GetQueryResults",
        "logs:StopQuery"
      ],
      "Resource": "arn:aws:logs:<region>:<account-id>:log-group:*"
    }
  ]
}

DescribeLogGroups is what powers the dashboard's log-group autocomplete. StartQuery / GetQueryResults / StopQuery are the Insights query lifecycle.

For tighter scoping, replace :log-group:* with the specific ARNs of the log groups SigSentry should access — for example :log-group:/aws/lambda/checkout-api:*.

Setup walkthrough

Create an IAM user with the policy above

In the AWS console, IAM → Users → Create user. Attach an inline policy with the JSON from the previous section. After creation, go to Security credentials → Create access key and save the Access Key ID and Secret Access Key — the secret is shown only once.

In SigSentry, add the log source

Navigate to Project → Log Sources → Add log source. Pick AWS CloudWatch as the type and give it a descriptive name like prod-cloudwatch.

Enter credentials

FieldValue
Access Key IDAKIA... from IAM
Secret Access KeyThe secret you saved
RegionThe region where your log groups live, e.g. us-east-1
Session TokenOptional — for STS / assumed-role temporary credentials

Add log groups

Paste log group names into the Log groups textarea, one per line. Or click Load log groups to fetch them from your account using the credentials you just provided — the dashboard autocompletes a dropdown.

/aws/lambda/checkout-api
/aws/lambda/billing-worker
/aws/ecs/api-gateway

Test the connection

Click Test connection. SigSentry will query a small recent window of logs across the configured groups and show you a few sample lines plus a "Connected" indicator. If you don't see logs, widen the test window or confirm the groups have recent activity.

Save

Click Save. The source is now active and will be queried during the next analysis on this project.

What you'll see in results

Each CloudWatch log line shown in an analysis includes:

  • Timestamp
  • Log level (parsed from the message — DEBUG, INFO, WARN, ERROR, etc.)
  • Service name (extracted from the log stream path)
  • Message
  • Log stream and log group carried through as metadata

If your services log structured JSON, the level is detected from the JSON; otherwise from the message prefix.

Quirks

If your log group naming doesn't follow /app/<service>/..., the service field is inferred from the log-group path. To override, use the project's AI context to spell out which log streams correspond to which services.

For cross-region setups, create separate log sources — one per region.

Troubleshooting

ErrorFix
AccessDeniedExceptionIAM user lacks logs:StartQuery. Re-check the policy.
ResourceNotFoundExceptionA log group in your list doesn't exist in the configured region
"Test connection succeeded but no sample logs"The recent test window had no activity. Push a test log line and retry
ThrottlingExceptionHitting CloudWatch's per-account quota. Reduce query frequency or scope