SECOPS

Auto-revoke anomalous IAM privilege grants from CloudTrail

Watches CloudTrail logs in S3 for unexpected IAM policy attachments, scores them against a baseline of normal grants, and auto-revokes high-risk ones while paging on-call.

CategorySecOps
Enginesim
Difficultyadvanced
Triggerevent
Steps6
Setup~25 min

How it runs

The automated pipeline, trigger to output.

  • TriggerNew CloudTrail log object in S3AWS S3
  • LogicFilter to IAM grant events
  • LogicScore grant against baseline
  • ActionDetach high-risk policy via IAM APIAWS S3
  • ActionPage on-callPagerDutyPagerDuty
  • OutputPost timeline to secops channelSlack

What it does

This workflow continuously inspects AWS CloudTrail events delivered to S3 for IAM privilege grants — AttachUserPolicy, AttachRolePolicy, PutUserPolicy, and AddUserToGroup. It compares each grant against a baseline of who normally grants what, and when a grant looks anomalous (off-hours, privileged policy like AdministratorAccess, or an actor who never grants permissions), it detaches the offending policy and escalates.

When to use it

Run this when your AWS estate has more identities than humans can manually review and you need a tripwire for privilege escalation — whether from a compromised credential, a misconfigured automation, or an insider mistake. It is the safety net between a bad grant and a breach.

How it works

  1. 1New CloudTrail object lands in the S3 audit bucket and triggers the run.
  2. 2The workflow parses the event records and filters to IAM grant actions only.
  3. 3A decision step scores each grant against the baseline (actor, policy sensitivity, time of day).
  4. 4For high-risk grants it calls the AWS IAM detach API to revoke the privilege immediately.
  5. 5PagerDuty is paged with the actor, target principal, and policy ARN.
  6. 6A Slack message posts the full timeline to the secops channel for the audit trail.

Set it up

What you configure once, before turning it on.

  1. 1
    Connect AWS S3Buckets, objects, signed URLs.
  2. 2
    Connect PagerDutyIncidents, on-call, escalations.
  3. 3
    Connect SlackChannels, DMs, threads, mentions.
  4. 4
    Set each agent's modelWe leave models unset so you pick the tier — fast + cheap, or top-quality.
  5. 5
    Tune it to your dataEdit the prompts, filters, and field mappings so it matches how your team works.
  6. 6
    Test, then turn it onRun once against a sample, confirm the output, then enable the trigger.

Run this workflow in your colony.

14-day trial. No DevOps. No Sales call. Provisioned in under a minute.