Pre-deployment review for cloud permission changes

Ship permission changes without shipping admin access.

AttackGraph AI finds new routes to admin roles and sensitive data in a cloud change, then tests the fix.

A reviewer sees one changed line. The risk lives in what that line completes: a build pipeline that can hand itself the deployment admin role.

1permission changed in the pull request
7 of 7conditions for the admin route now hold
0 β†’ 1high-risk paths, baseline to proposed
1 revocationcloses the path, verified in the model
2 of 2normal access checks still pass after the fix
Computed by the engine from the bundled demo snapshots. Synthetic data, no real account.

Permission reviews miss paths, because risk lives in combinations.

The question a reviewer needs answered: what new access does this change create, and which permission should go?

Diffs hide paths

Widening iam:PassRole reads as a one-word edit. Whether it hands out admin depends on grants made long before.

Single checks miss combinations

Each permission can look harmless alone. Passing a role, creating a function, invoking it and owning its code together mean running as admin.

Fixes are guesswork

Revoke the wrong grant and the deploy breaks. Revoke nothing and the path stays open.

Unknowns get read as safe

When a permission is not described, reviews tend to assume it is absent. AttackGraph AI calls it unknown and says so.

Find it, explain it, fix it. Every step traceable.

Map every route

Two explicit rules link permissions into routes from an entry point to protected roles and data. A missing fact stays unknown, never safe.

Explain it with Amazon Bedrock

Nova Pro writes the explanation from placeholder IDs. It cannot add findings, change severity or invent fixes.

Recorded Nova Pro reply

β€œThe proposed change allows principal CI deploy user (build pipeline) to pass role Deployment admin role to Lambda workload Post-build hook function, enabling CI deploy user (build pipeline) to run code as Deployment admin role.”

First sentence of a live reply: apac.amazon.nova-pro-v1:0, request ebf66418-50b4-4e8f-8ee2-8675d76a6fb0, 2026-09-30. The full reply is in the live demo.

Test the fix before you touch infrastructure

Revoke the new permission on a copy, rerun the whole analysis, and confirm the route is gone while normal access still works.

High-risk paths
1 β†’ 0
Proposed, then after the fix
Normal access
2 of 2
Expected-access checks that still pass
Open the live demo
Trust and limits

Built to be checked, not trusted.

Every result traces back to a line in the input files, and the limits are stated up front.

Synthetic data onlyNothing is deployed or executedThe AI explains, it never decidesLabels never reach the modelUnknown is never reported as safeEvery fact links to a JSON line
Does it connect to a real AWS account?

No. It reads two synthetic JSON snapshots. The only AWS call is to Amazon Bedrock, for the explanation text.

What does Amazon Bedrock do here?

Nova Pro turns the evidence behind one finding into a short explanation. It sees placeholder IDs, never labels, and every ID it cites is checked. Anything else is discarded and a deterministic summary is shown.

What does Verified in this model mean?

The engine reran the whole analysis with the permission revoked, the route disappeared, and every relationship stayed resolved. It is a statement about the synthetic model, not a guarantee for a real account.

Why is an unknown fact never treated as safe?

If the snapshot does not say whether a permission exists, the engine cannot rule the route out. It reports the result as incomplete instead of guessing.

Can it block a pull request?

Yes. The same engine runs as a command-line check that exits with an error when a change opens a new path or leaves the result incomplete. The repository's GitHub Actions workflow runs it on every pull request and marks the line responsible. The live demo shows it on the flagship change.

What is out of scope?

Terraform and raw IAM policy parsing, EC2, general AssumeRole chains, multi-account analysis and automatic remediation. The model covers two rules: direct S3 reads and role use through a Lambda function.

See the path before it ships. It takes one click.

No sign-up. Synthetic data only.