ESLint for AWS IAM
Catch over-permissioned Terraform IAM policies in your PRs before they merge — automatically, as a GitHub required status check.
How it works
Set up in 5 minutes. Works automatically on every PR from that point on.
Install the GitHub App
Authorize iam-armor on your org or specific repos. No CI configuration needed.
Add .iamarmor.yml
Drop a config file in your repo root to set rule severities. Or skip it to use all defaults.
Open a PR
Every PR touching .tf files triggers an automatic IAM policy scan. No manual steps.
Merge clean
Violations block the merge with inline annotations. Fix them, re-push, and the check goes green.
Why iam-armor
Purpose-built for Terraform IAM. Not a generic SAST scanner.
GitHub App integration
Runs as a required status check. Block merges automatically. Inline annotations on exact lines.
Deterministic rules
No LLM flakiness. Each rule is a precise, documented check. Zero false positives by design.
Open-core CLI
The engine and CLI are Apache 2.0. Run locally, in any CI, or build your own tooling.
Privacy first
We scan only the PR diff. No full repo clones. No data retention beyond the check run.
Fully configurable
Set each rule to error, warn, or off. Exclude paths. Write custom rules (Business plan).
Terraform native
Understands aws_iam_role, aws_iam_policy, aws_iam_role_policy, and jsonencode() blocks.
Stop shipping over-permissioned IAM policies
Join teams using iam-armor to enforce least-privilege IAM as part of their normal PR workflow.
Install on GitHub — it's freeFree for public repos and small teams. No credit card required.