Skip to content
Back to the blog

Cloud Detection · November 7, 2026

Reviewed

CloudTrail Triage Starts With Coverage and a Defensible Timeline

Preserve event outcomes, acting sessions, collection boundaries, and corroboration when investigating cloud changes.

CloudTrail Triage Starts With Coverage and a Defensible Timeline

Reviewed: 2026-11-07

A suspicious-looking API name is a lead. To explain what happened, preserve the original event and answer which principal made the request, what it targeted, what outcome was recorded, and what remains unknown.

Write the coverage note first

The CloudTrail event-history view is bounded by account, region, time, and event category. A trail or other event collection must be designed around the investigation questions you need to answer. In particular, data events need deliberate collection for object-level questions such as S3 reads.

An empty result can reflect a collection gap, a query limit, or the absence of one of your chosen signals. It does not establish the absence of unauthorized activity.

Preserve distinctions during normalization

The CloudTrail triage lab handles both trail Records and nested CLI lookup exports. Its regression tests cover failed requests, duplicate events, changed role bindings, root activity, and sessions that share a role without sharing a key identifier.

Account for Lambda’s versioned event names, such as CreateFunction20150331. Preserve the raw name as evidence while mapping documented variants to the API action used by your review rules.

The review queue uses failed_request when the event records an error. Otherwise it says no_error_recorded, leaving downstream completion and intent for corroboration. The event-record reference explains why fields must be interpreted in the context of the service and event.

Link observations to owned decisions

Review lead Corroborating evidence
Credential creation Target identity, owner approval, later use
Role-policy change Policy diff, deployment record, intended scope
Logging-stop request Recorded error, actual trail status, other collection paths
Function creation with a role Deployer, requested role, trust and runtime permissions

Keep the raw exports, evidence timestamps, analysis notes, and decision owner together. Investigate unfamiliar activity before treating it as confirmed compromise or launching destructive containment. The AWS Defender practice path connects this investigation work to credential, delegation, and storage reviews.