boogy/IAM Validator

Validate AWS IAM policies for correctness and security. Standalone action with built-in checks and AWS Access Analyzer.

View on GitHub

Trust Signals

Scorecard Score
not yet scored
Maintenance Recency
Activelast commit Jul 6, 2026
License
MIT

Pinned Snippet

workflow.ymlSHA-pinned
uses: boogy/iam-policy-validator@7be328de3172fa6e3667b5ba81ca9372b730420a # v1.21.1

tags can be moved; commit SHAs can't. why a SHA?

namedescriptionrequireddefault
pathPath(s) to IAM policy JSON/YAML file or directory (relative to repository root). For multiple paths, use newline-separated valuesyes
config-filePath to custom configuration file (iam-validator.yaml)no""
fail-on-warningsFail validation if warnings are found (default: only fail on errors)nofalse
post-commentPost validation results as PR commentnotrue
create-reviewCreate line-specific review comments on PR (requires post-comment: true)notrue
off-diff-comment-modeHow to handle findings on unchanged lines: 'summary_only' (default), 'individual', or 'modified_statements_only'nosummary_only
comment-tagOptional run scope (1-32 chars, [A-Za-z0-9._-]) appended to PR summary, review, analyzer, and ignored-findings markers. Use a different tag per parallel run on the same PR (e.g. 'policy', 'role', 'scp') so comments do not overwrite each other. no""
allow-owner-ignoreAllow CODEOWNERS to ignore findings by replying 'ignore' to review commentsnotrue
github-summaryWrite summary to GitHub Actions job summary (visible in Actions tab)nofalse
show-console-outputShow enhanced validation results in job logs (CI mode). Set to 'false' to suppress console outputnotrue
formatOutput format (console, enhanced, json, markdown, sarif, csv, html)noconsole
output-filePath to save output file (for json, markdown, sarif, csv, html formats)no""
upload-sarifUpload SARIF results to GitHub Code Scanning (requires format: sarif and output-file to be set)nofalse
recursiveRecursively search directories for policy filesnotrue
streamProcess files one-by-one (memory efficient for large repos with many policies)nofalse
batch-sizeNumber of policies to process per batch when streaming (default: 10)no10
summaryShow Executive Summary section in enhanced format outputnofalse
severity-breakdownShow Issue Severity Breakdown section in enhanced format outputnofalse
use-access-analyzerUse AWS IAM Access Analyzer for validation (requires AWS credentials)nofalse
access-analyzer-regionAWS region for Access Analyzer (default: us-east-1)nous-east-1
policy-typePolicy type (IDENTITY_POLICY, RESOURCE_POLICY, TRUST_POLICY, SERVICE_CONTROL_POLICY, RESOURCE_CONTROL_POLICY)noIDENTITY_POLICY
run-all-checksRun custom checks after Access Analyzer (only if use-access-analyzer: true)nofalse
check-access-not-grantedActions that should NOT be granted (space-separated, max 100). Example: 's3:DeleteBucket iam:CreateAccessKey'no""
check-access-resourcesResources to check with check-access-not-granted (space-separated, max 100). Example: 'arn:aws:s3:::prod-* arn:aws:iam::*:role/*'no""
check-no-new-accessPath to existing/baseline policy to compare against for new access checks (relative to repository root)no""
check-no-public-accessCheck that resource policies do not allow public access (RESOURCE_POLICY only)nofalse
public-access-resource-typeResource type(s) for public access check. Use 'all' to check all 29 types, or specify space-separated types. Options: all, AWS::S3::Bucket, AWS::Lambda::Function, AWS::KMS::Key, AWS::SNS::Topic, AWS::SQS::Queue, etc.noAWS::S3::Bucket
custom-checks-dirPath to directory containing custom validation checks (relative to repository root). WARNING: every .py file in the directory is executed — never enable for workflows that run on untrusted forks (e.g. pull_request_target)no""
aws-services-dirPath to directory containing pre-downloaded AWS service definitions for offline mode (relative to repository root). Use 'iam-validator download-services' to create this directory. When specified, disables automatic caching and API calls.no""
log-levelLogging level (debug, info, warning, error, critical)nowarning
github-tokenGitHub token for posting comments and reviews. Defaults to automatic github.tokenno${{ github.token }}
namedescription
validation-resultValidation result (success or failure)
total-policiesTotal number of policies validated
valid-policiesNumber of valid policies
invalid-policiesNumber of invalid policies
total-issuesTotal number of issues found