DATA OPS

BigQuery Orphaned & Overdue Grant Audit with PagerDuty Escalation

Daily, cross-checks live BigQuery IAM bindings against the grant ledger to find untracked or long-overdue access, posts an audit summary to Slack.

CategoryData Ops
Enginesim
Difficultyadvanced
Triggerschedule
Steps6
Setup~25 min

How it runs

The automated pipeline, trigger to output.

  • TriggerDaily schedule triggers audit
  • ActionRead live BigQuery IAM bindingsGoogle BigQueryBigQuery
  • ActionRead expected grant ledgerPostgreSQLPostgres
  • LogicDiff sets, classify orphaned/overdue, score risk
  • ActionPost audit summary to SlackSlack
  • OutputPage on-call for high-risk findingsPagerDutyPagerDuty

What it does

This workflow audits the gap between what BigQuery actually grants and what your ledger says should exist. It reads live IAM bindings, compares them to the ledger, and flags two problems: orphaned grants (present in BigQuery but untracked) and overdue grants (long past expiry but never revoked). It reports findings to Slack and escalates genuinely risky cases to PagerDuty.

When to use it

Use it as a compliance and drift-detection backstop when your revocation automation can fail silently or when bindings get added out-of-band. Ideal for SOC2/audit-driven data teams that must prove access matches policy.

How it works

  1. 1A daily schedule triggers the audit.
  2. 2BigQuery returns the current IAM bindings across audited datasets.
  3. 3Postgres returns the expected active grant ledger.
  4. 4A logic step diffs the two sets to classify orphaned and overdue grants and assign risk.
  5. 5Slack receives a summary of all findings.
  6. 6If any high-risk grant is detected, PagerDuty opens an incident for on-call.

Set it up

What you configure once, before turning it on.

  1. 1
    Connect BigQueryDatasets, queries, schemas.
  2. 2
    Connect PostgresAny Postgres URL — query, write, migrate.
  3. 3
    Connect SlackChannels, DMs, threads, mentions.
  4. 4
    Connect PagerDutyIncidents, on-call, escalations.
  5. 5
    Set each agent's modelWe leave models unset so you pick the tier — fast + cheap, or top-quality.
  6. 6
    Tune it to your dataEdit the prompts, filters, and field mappings so it matches how your team works.
  7. 7
    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.