iam-policy-validator 1.6.0__tar.gz → 1.7.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/PKG-INFO +13 -6
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/README.md +12 -5
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/action.yaml +43 -10
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/configs/full-reference-config.yaml +36 -4
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/iam_validator/__version__.py +1 -1
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/iam_validator/checks/action_condition_enforcement.py +1 -1
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/iam_validator/checks/action_resource_matching.py +23 -6
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/iam_validator/checks/full_wildcard.py +5 -1
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/iam_validator/checks/policy_size.py +3 -7
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/iam_validator/checks/policy_type_validation.py +9 -3
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/iam_validator/checks/principal_validation.py +1 -1
- iam_policy_validator-1.7.0/iam_validator/checks/resource_validation.py +138 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/iam_validator/checks/sensitive_action.py +5 -1
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/iam_validator/checks/service_wildcard.py +3 -1
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/iam_validator/checks/wildcard_action.py +7 -2
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/iam_validator/checks/wildcard_resource.py +5 -1
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/iam_validator/commands/analyze.py +98 -1
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/iam_validator/commands/validate.py +4 -2
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/iam_validator/core/access_analyzer.py +5 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/iam_validator/core/access_analyzer_report.py +2 -5
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/iam_validator/core/aws_fetcher.py +14 -4
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/iam_validator/core/config/config_loader.py +3 -6
- iam_policy_validator-1.7.0/iam_validator/core/constants.py +74 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/iam_validator/core/models.py +29 -13
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/iam_validator/core/pr_commenter.py +104 -18
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/iam_validator/core/report.py +49 -36
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/iam_validator/integrations/github_integration.py +21 -1
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/iam_validator/sdk/arn_matching.py +108 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/pyproject.toml +1 -1
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/tests/test_action_resource_matching.py +176 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/tests/test_comment_truncation.py +3 -3
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/tests/test_multipart_comments.py +3 -2
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/uv.lock +1 -1
- iam_policy_validator-1.6.0/iam_validator/checks/resource_validation.py +0 -108
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/.github/dependabot.yml +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/.github/workflows/ci.yml +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/.github/workflows/release.yml +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/.gitignore +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/.python-version +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/CONTRIBUTING.md +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/DOCS.md +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/LICENSE +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/Makefile +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/_manifest.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/_services.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/a2c.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/a4b.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/access-analyzer.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/account.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/acm-pca.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/acm.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/action-recommendations.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/activate.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/aiops.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/airflow.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/amplify.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/amplifybackend.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/amplifyuibuilder.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/aoss.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/apigateway.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/app-integrations.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/appconfig.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/appfabric.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/appflow.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/application-autoscaling.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/application-signals.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/application-transformation.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/applicationinsights.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/appmesh-preview.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/appmesh.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/apprunner.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/appstream.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/appstudio.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/appsync.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/apptest.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/aps.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/arc-region-switch.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/arc-zonal-shift.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/arsenal.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/artifact.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/athena.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/auditmanager.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/autoscaling-plans.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/autoscaling.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/aws-marketplace-management.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/aws-marketplace.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/aws-portal.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/awsconnector.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/b2bi.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/backup-gateway.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/backup-search.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/backup-storage.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/backup.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/batch.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/bcm-dashboards.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/bcm-data-exports.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/bcm-pricing-calculator.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/bcm-recommended-actions.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/bedrock-agentcore.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/bedrock.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/billing.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/billingconductor.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/braket.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/budgets.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/bugbust.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/cases.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/cassandra.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/ce.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/chatbot.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/chime.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/cleanrooms-ml.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/cleanrooms.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/cloud9.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/clouddirectory.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/cloudformation.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/cloudfront-keyvaluestore.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/cloudfront.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/cloudhsm.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/cloudsearch.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/cloudshell.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/cloudtrail-data.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/cloudtrail.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/cloudwatch.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/codeartifact.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/codebuild.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/codecatalyst.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/codecommit.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/codeconnections.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/codedeploy-commands-secure.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/codedeploy.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/codeguru-profiler.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/codeguru-reviewer.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/codeguru-security.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/codeguru.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/codepipeline.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/codestar-connections.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/codestar-notifications.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/codestar.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/codewhisperer.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/cognito-identity.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/cognito-idp.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/cognito-sync.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/comprehend.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/comprehendmedical.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/compute-optimizer.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/config.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/connect-campaigns.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/connect.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/consoleapp.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/consolidatedbilling.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/controlcatalog.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/controltower.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/cost-optimization-hub.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/cur.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/customer-verification.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/databrew.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/dataexchange.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/datapipeline.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/datasync.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/datazone.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/dax.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/dbqms.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/deadline.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/deepcomposer.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/deepracer.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/detective.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/devicefarm.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/devops-guru.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/directconnect.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/discovery.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/dlm.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/dms.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/docdb-elastic.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/drs.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/ds-data.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/ds.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/dsql.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/dynamodb.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/ebs.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/ec2-instance-connect.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/ec2.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/ec2messages.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/ecr-public.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/ecr.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/ecs.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/eks-auth.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/eks.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/elasticache.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/elasticbeanstalk.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/elasticfilesystem.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/elasticloadbalancing.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/elasticmapreduce.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/elastictranscoder.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/elemental-activations.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/elemental-appliances-software.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/elemental-support-cases.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/elemental-support-content.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/emr-containers.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/emr-serverless.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/entityresolution.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/es.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/events.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/evidently.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/evs.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/execute-api.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/finspace-api.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/finspace.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/firehose.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/fis.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/fms.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/forecast.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/frauddetector.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/freertos.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/freetier.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/fsx.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/gamelift.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/gameliftstreams.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/geo-maps.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/geo-places.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/geo-routes.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/geo.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/glacier.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/globalaccelerator.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/glue.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/grafana.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/greengrass.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/groundstation.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/groundtruthlabeling.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/guardduty.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/health.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/healthlake.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/honeycode.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/iam.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/identity-sync.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/identitystore-auth.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/identitystore.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/imagebuilder.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/importexport.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/inspector-scan.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/inspector.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/inspector2.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/internetmonitor.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/invoicing.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/iot-device-tester.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/iot.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/iotanalytics.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/iotdeviceadvisor.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/iotevents.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/iotfleethub.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/iotfleetwise.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/iotjobsdata.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/iotmanagedintegrations.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/iotsitewise.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/iottwinmaker.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/iotwireless.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/iq-permission.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/iq.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/ivs.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/ivschat.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/kafka-cluster.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/kafka.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/kafkaconnect.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/kendra-ranking.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/kendra.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/kinesis.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/kinesisanalytics.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/kinesisvideo.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/kms.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/lakeformation.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/lambda.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/launchwizard.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/lex.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/license-manager-linux-subscriptions.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/license-manager-user-subscriptions.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/license-manager.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/lightsail.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/logs.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/lookoutequipment.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/lookoutmetrics.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/lookoutvision.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/m2.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/machinelearning.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/macie2.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/managedblockchain-query.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/managedblockchain.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/mapcredits.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/marketplacecommerceanalytics.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/mechanicalturk.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/mediaconnect.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/mediaconvert.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/mediaimport.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/medialive.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/mediapackage-vod.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/mediapackage.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/mediapackagev2.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/mediastore.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/mediatailor.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/medical-imaging.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/memorydb.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/mgh.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/mgn.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/migrationhub-orchestrator.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/migrationhub-strategy.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/mobileanalytics.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/mobiletargeting.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/monitron.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/mpa.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/mq.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/neptune-db.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/neptune-graph.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/network-firewall.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/network-security-director.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/networkflowmonitor.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/networkmanager-chat.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/networkmanager.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/networkmonitor.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/nimble.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/notifications-contacts.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/notifications.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/oam.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/observabilityadmin.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/odb.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/omics.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/one.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/opensearch.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/opsworks-cm.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/opsworks.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/organizations.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/osis.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/outposts.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/panorama.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/partnercentral-account-management.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/partnercentral.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/payment-cryptography.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/payments.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/pca-connector-ad.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/pca-connector-scep.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/pcs.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/personalize.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/pi.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/pipes.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/polly.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/pricing.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/private-networks.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/profile.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/proton.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/purchase-orders.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/q.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/qapps.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/qbusiness.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/qdeveloper.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/qldb.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/quicksight.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/ram.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/rbin.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/rds-data.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/rds-db.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/rds.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/redshift-data.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/redshift-serverless.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/redshift.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/refactor-spaces.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/rekognition.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/repostspace.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/resiliencehub.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/resource-explorer-2.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/resource-explorer.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/resource-groups.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/rhelkb.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/robomaker.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/rolesanywhere.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/route53-recovery-cluster.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/route53-recovery-control-config.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/route53-recovery-readiness.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/route53.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/route53domains.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/route53profiles.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/route53resolver.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/rtbfabric.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/rum.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/s3-object-lambda.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/s3-outposts.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/s3.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/s3express.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/s3tables.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/s3vectors.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/sagemaker-data-science-assistant.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/sagemaker-geospatial.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/sagemaker-mlflow.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/sagemaker.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/savingsplans.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/scheduler.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/schemas.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/scn.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/sdb.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/secretsmanager.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/security-ir.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/securityhub.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/securitylake.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/serverlessrepo.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/servicecatalog.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/servicediscovery.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/serviceextract.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/servicequotas.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/ses.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/shield.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/signer.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/signin.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/simspaceweaver.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/sms-voice.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/sms.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/snow-device-management.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/snowball.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/sns.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/social-messaging.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/sqlworkbench.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/sqs.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/ssm-contacts.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/ssm-guiconnect.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/ssm-incidents.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/ssm-quicksetup.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/ssm-sap.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/ssm.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/ssmmessages.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/sso-directory.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/sso-oauth.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/sso.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/states.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/storagegateway.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/sts.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/support-console.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/support.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/supportapp.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/supportplans.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/sustainability.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/swf.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/synthetics.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/tag.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/tax.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/textract.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/thinclient.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/timestream-influxdb.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/timestream.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/tiros.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/tnb.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/transcribe.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/transfer.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/transform.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/translate.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/trustedadvisor.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/ts.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/user-subscriptions.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/uxc.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/vendor-insights.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/verified-access.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/verifiedpermissions.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/voiceid.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/vpc-lattice-svcs.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/vpc-lattice.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/vpce.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/waf-regional.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/waf.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/wafv2.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/wam.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/wellarchitected.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/wickr.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/wisdom.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/workdocs.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/worklink.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/workmail.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/workmailmessageflow.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/workspaces-instances.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/workspaces-web.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/workspaces.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/aws_services/xray.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/docs/CHECKS.md +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/docs/README.md +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/docs/ROADMAP.md +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/docs/SDK.md +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/docs/aws-api-configuration.md +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/docs/aws-services-backup.md +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/docs/check-reference.md +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/docs/condition-requirements.md +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/docs/configuration.md +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/docs/custom-checks.md +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/docs/development/PUBLISHING.md +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/docs/github-actions-examples.md +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/docs/github-actions-workflows.md +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/docs/modular-configuration.md +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/docs/privilege-escalation.md +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/docs/python-library-usage.md +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/docs/smart-filtering.md +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/README.md +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/access-analyzer/example1.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/access-analyzer/example2.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/configs/README.md +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/configs/basic-config.yaml +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/configs/ci-cd-config.yaml +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/configs/development-config.yaml +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/configs/minimal-validation-config.yaml +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/configs/offline-validation.yaml +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/configs/policy-level-condition-enforcement-config.yaml +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/configs/principal-condition-enforcement.yaml +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/configs/principal-validation-public-with-conditions.yaml +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/configs/principal-validation-relaxed.yaml +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/configs/principal-validation-strict.yaml +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/configs/privilege-escalation-focus-config.yaml +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/configs/resource-policy-config.yaml +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/configs/security-audit-config.yaml +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/configs/strict-security.yaml +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/custom_checks/README.md +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/custom_checks/advanced_multi_condition_validator.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/custom_checks/cross_account_external_id_check.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/custom_checks/domain_restriction_check.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/custom_checks/encryption_required_check.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/custom_checks/mfa_required_check.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/custom_checks/region_restriction_check.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/custom_checks/tag_enforcement_check.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/custom_checks/time_based_access_check.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/github-actions/README.md +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/github-actions/access-analyzer-only.yaml +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/github-actions/basic-validation.yaml +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/github-actions/custom-policy-checks.yaml +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/github-actions/multi-region-validation.yaml +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/github-actions/resource-policy-validation.yaml +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/github-actions/sarif-code-scanning.yaml +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/github-actions/sequential-validation.yaml +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/github-actions/two-step-validation.yaml +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/github-actions/validate-changed-files.yaml +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/iam-test-policies/README.md +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/iam-test-policies/identity-policies/allowed-wildcard-resource.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/iam-test-policies/identity-policies/api_gateway_management.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/iam-test-policies/identity-policies/athena_query_access.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/iam-test-policies/identity-policies/backup_vault_access.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/iam-test-policies/identity-policies/cloudformation_deployer.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/iam-test-policies/identity-policies/cloudwatch_monitoring.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/iam-test-policies/identity-policies/cognito_user_pool.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/iam-test-policies/identity-policies/dynamodb_table_access.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/iam-test-policies/identity-policies/ecs_task_execution.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/iam-test-policies/identity-policies/eventbridge_rules.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/iam-test-policies/identity-policies/glue_etl_jobs.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/iam-test-policies/identity-policies/insecure_policy.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/iam-test-policies/identity-policies/insecure_policy.yaml +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/iam-test-policies/identity-policies/invalid-resource-constraint.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/iam-test-policies/identity-policies/invalid-sid-special-chars.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/iam-test-policies/identity-policies/invalid-sid-with-spaces.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/iam-test-policies/identity-policies/invalid_policy.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/iam-test-policies/identity-policies/kms_encryption_keys.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/iam-test-policies/identity-policies/lambda_developer.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/iam-test-policies/identity-policies/lambda_developer.yaml +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/iam-test-policies/identity-policies/maximum_size_policy.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/iam-test-policies/identity-policies/policy_missing_required_tags.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/iam-test-policies/identity-policies/policy_tag_enforcement_example.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/iam-test-policies/identity-policies/policy_with_wildcard_resources.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/iam-test-policies/identity-policies/privilege_escalation_scattered.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/iam-test-policies/identity-policies/rds_database_admin.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/iam-test-policies/identity-policies/s3_bucket_access.yaml +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/iam-test-policies/identity-policies/sample_policy.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/iam-test-policies/identity-policies/sample_policy.yaml +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/iam-test-policies/identity-policies/secrets_manager_access.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/iam-test-policies/identity-policies/sensitive-action-wildcards.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/iam-test-policies/identity-policies/sns_sqs_messaging.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/iam-test-policies/identity-policies/step_functions_workflow.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/iam-test-policies/identity-policies/test_none_of_valid.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/iam-test-policies/identity-policies/test_none_of_violations.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/iam-test-policies/identity-policies/valid-sid-formats.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/iam-test-policies/identity-policies/wildcard_examples.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/iam-test-policies/identity-policies/wildcard_examples.yaml +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/iam-test-policies/identity-policies/wrong-condition-key.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/iam-test-policies/identity-policies/wrong-s3-condition.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/iam-test-policies/resource-control-policies/rcp-invalid-allow-effect.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/iam-test-policies/resource-control-policies/rcp-invalid-not-action.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/iam-test-policies/resource-control-policies/rcp-invalid-specific-principal.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/iam-test-policies/resource-control-policies/rcp-invalid-unsupported-service.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/iam-test-policies/resource-control-policies/rcp-invalid-wildcard-action.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/iam-test-policies/resource-control-policies/rcp-valid-enforce-encryption.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/iam-test-policies/resource-policies/README.md +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/iam-test-policies/resource-policies/backup-vault-policy-org-access.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/iam-test-policies/resource-policies/ecr-repository-policy-org-restricted.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/iam-test-policies/resource-policies/ecr-repository-policy-public.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/iam-test-policies/resource-policies/efs-filesystem-policy-vpc-only.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/iam-test-policies/resource-policies/glacier-vault-policy-cross-account.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/iam-test-policies/resource-policies/kms-key-policy-cross-account.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/iam-test-policies/resource-policies/kms-key-policy-insecure.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/iam-test-policies/resource-policies/kms-key-policy-org-restricted.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/iam-test-policies/resource-policies/kms-key-policy-service-specific.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/iam-test-policies/resource-policies/lambda-permission-api-gateway.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/iam-test-policies/resource-policies/lambda-permission-cross-account-invoke.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/iam-test-policies/resource-policies/lambda-permission-eventbridge-multiple.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/iam-test-policies/resource-policies/lambda-permission-public-url.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/iam-test-policies/resource-policies/lambda-permission-s3-trigger.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/iam-test-policies/resource-policies/opensearch-domain-policy-ip-restricted.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/iam-test-policies/resource-policies/s3-bucket-policy-cloudfront.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/iam-test-policies/resource-policies/s3-bucket-policy-cross-account-org.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/iam-test-policies/resource-policies/s3-bucket-policy-insecure-transport.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/iam-test-policies/resource-policies/s3-bucket-policy-ip-restriction.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/iam-test-policies/resource-policies/s3-bucket-policy-public-with-conditions.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/iam-test-policies/resource-policies/s3-bucket-policy-public.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/iam-test-policies/resource-policies/s3-bucket-policy-specific-account.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/iam-test-policies/resource-policies/s3-bucket-policy-vpc-endpoint.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/iam-test-policies/resource-policies/s3-bucket-policy-wildcard-actions.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/iam-test-policies/resource-policies/secrets-manager-policy-cross-account.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/iam-test-policies/resource-policies/sns-topic-policy-cross-account-mfa.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/iam-test-policies/resource-policies/sns-topic-policy-cross-account.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/iam-test-policies/resource-policies/sns-topic-policy-eventbridge.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/iam-test-policies/resource-policies/sns-topic-policy-org-wide.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/iam-test-policies/resource-policies/sns-topic-policy-public-no-conditions.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/iam-test-policies/resource-policies/sqs-queue-policy-cross-account-role.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/iam-test-policies/resource-policies/sqs-queue-policy-iam-users-mfa.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/iam-test-policies/resource-policies/sqs-queue-policy-public.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/iam-test-policies/resource-policies/sqs-queue-policy-sns-subscription.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/iam-test-policies/service-control-policies/deny-root-account-usage.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/iam-test-policies/service-control-policies/require-mfa.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/iam-test-policies/service-control-policies/restrict-regions.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/iam-test-policies/wrong_actions_mismatch/README.md +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/iam-test-policies/wrong_actions_mismatch/dynamodb-wrong-resources.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/iam-test-policies/wrong_actions_mismatch/ec2-wrong-resources.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/iam-test-policies/wrong_actions_mismatch/iam-wrong-resources.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/iam-test-policies/wrong_actions_mismatch/lambda-wrong-resources.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/iam-test-policies/wrong_actions_mismatch/s3-wrong-resources.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/iam-test-policies/wrong_actions_mismatch/sqs-sns-wrong-resources.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/library-usage/README.md +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/library-usage/example1_basic_usage.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/library-usage/example1_basic_usage_new.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/library-usage/example2_config_file.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/library-usage/example2_context_manager.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/library-usage/example3_policy_manipulation.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/library-usage/example3_programmatic_config.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/library-usage/example4_custom_condition_requirements.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/library-usage/policies/my-policy.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/library-usage/policies/policy1.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/library-usage/policies/policy2.json +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/examples/library-usage/quick_reference.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/iam_validator/__init__.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/iam_validator/__main__.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/iam_validator/checks/__init__.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/iam_validator/checks/action_validation.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/iam_validator/checks/condition_key_validation.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/iam_validator/checks/condition_type_mismatch.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/iam_validator/checks/mfa_condition_check.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/iam_validator/checks/set_operator_validation.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/iam_validator/checks/sid_uniqueness.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/iam_validator/checks/utils/__init__.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/iam_validator/checks/utils/policy_level_checks.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/iam_validator/checks/utils/sensitive_action_matcher.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/iam_validator/checks/utils/wildcard_expansion.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/iam_validator/commands/__init__.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/iam_validator/commands/base.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/iam_validator/commands/cache.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/iam_validator/commands/download_services.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/iam_validator/commands/post_to_pr.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/iam_validator/core/__init__.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/iam_validator/core/check_registry.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/iam_validator/core/cli.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/iam_validator/core/condition_validators.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/iam_validator/core/config/__init__.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/iam_validator/core/config/aws_api.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/iam_validator/core/config/aws_global_conditions.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/iam_validator/core/config/category_suggestions.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/iam_validator/core/config/condition_requirements.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/iam_validator/core/config/defaults.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/iam_validator/core/config/principal_requirements.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/iam_validator/core/config/sensitive_actions.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/iam_validator/core/config/service_principals.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/iam_validator/core/config/wildcards.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/iam_validator/core/formatters/__init__.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/iam_validator/core/formatters/base.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/iam_validator/core/formatters/console.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/iam_validator/core/formatters/csv.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/iam_validator/core/formatters/enhanced.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/iam_validator/core/formatters/html.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/iam_validator/core/formatters/json.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/iam_validator/core/formatters/markdown.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/iam_validator/core/formatters/sarif.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/iam_validator/core/policy_checks.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/iam_validator/core/policy_loader.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/iam_validator/integrations/__init__.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/iam_validator/integrations/ms_teams.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/iam_validator/sdk/__init__.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/iam_validator/sdk/context.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/iam_validator/sdk/exceptions.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/iam_validator/sdk/helpers.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/iam_validator/sdk/policy_utils.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/iam_validator/sdk/shortcuts.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/iam_validator/utils/__init__.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/iam_validator/utils/cache.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/iam_validator/utils/regex.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/scripts/download_aws_services.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/scripts/sync_defaults_from_yaml.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/tests/README.md +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/tests/__init__.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/tests/test_action_condition_enforcement.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/tests/test_action_condition_enforcement_policy_level.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/tests/test_action_validation_check.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/tests/test_aws_api_config.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/tests/test_aws_fetcher_wildcards.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/tests/test_aws_global_conditions.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/tests/test_check_registry.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/tests/test_condition_key_validation_check.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/tests/test_condition_type_mismatch.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/tests/test_config_loader.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/tests/test_custom_policy_checks.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/tests/test_full_wildcard_check.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/tests/test_mfa_condition_check.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/tests/test_models.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/tests/test_policy_loader.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/tests/test_policy_size_check.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/tests/test_policy_type_validation.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/tests/test_principal_validation_check.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/tests/test_regex_utils.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/tests/test_resource_validation_check.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/tests/test_sensitive_action_wildcard_expansion.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/tests/test_service_wildcard_check.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/tests/test_set_operator_validation.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/tests/test_sid_uniqueness_check.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/tests/test_wildcard_action_check.py +0 -0
- {iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/tests/test_wildcard_resource_check.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: iam-policy-validator
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.7.0
|
|
4
4
|
Summary: Validate AWS IAM policies for correctness and security using AWS Service Reference API
|
|
5
5
|
Project-URL: Homepage, https://github.com/boogy/iam-policy-validator
|
|
6
6
|
Project-URL: Documentation, https://github.com/boogy/iam-policy-validator/tree/main/docs
|
|
@@ -212,6 +212,12 @@ jobs:
|
|
|
212
212
|
- ✅ Simple, declarative configuration
|
|
213
213
|
- ✅ Perfect for CI/CD workflows
|
|
214
214
|
|
|
215
|
+
**Note:** The action uses the automatic `github.token` by default. If you need to use a custom token (e.g., for cross-repo comments or fine-grained permissions), add:
|
|
216
|
+
```yaml
|
|
217
|
+
with:
|
|
218
|
+
github-token: ${{ secrets.MY_CUSTOM_TOKEN }}
|
|
219
|
+
```
|
|
220
|
+
|
|
215
221
|
#### With AWS Access Analyzer (Standalone Action)
|
|
216
222
|
|
|
217
223
|
Use AWS's official policy validation service:
|
|
@@ -476,11 +482,12 @@ See [examples/configs/full-reference-config.yaml](examples/configs/full-referenc
|
|
|
476
482
|
| `recursive` | Recursively search directories for policy files | No | `true` |
|
|
477
483
|
|
|
478
484
|
#### GitHub Integration
|
|
479
|
-
| Input | Description | Required | Default
|
|
480
|
-
| ---------------- | --------------------------------------------------------- | -------- |
|
|
481
|
-
| `
|
|
482
|
-
| `
|
|
483
|
-
| `
|
|
485
|
+
| Input | Description | Required | Default |
|
|
486
|
+
| ---------------- | --------------------------------------------------------- | -------- | -------------- |
|
|
487
|
+
| `github-token` | GitHub token for posting comments and reviews | No | `github.token` |
|
|
488
|
+
| `post-comment` | Post validation summary as PR conversation comment | No | `true` |
|
|
489
|
+
| `create-review` | Create line-specific review comments on PR files | No | `true` |
|
|
490
|
+
| `github-summary` | Write summary to GitHub Actions job summary (Actions tab) | No | `false` |
|
|
484
491
|
|
|
485
492
|
#### Output Options
|
|
486
493
|
| Input | Description | Required | Default |
|
|
@@ -170,6 +170,12 @@ jobs:
|
|
|
170
170
|
- ✅ Simple, declarative configuration
|
|
171
171
|
- ✅ Perfect for CI/CD workflows
|
|
172
172
|
|
|
173
|
+
**Note:** The action uses the automatic `github.token` by default. If you need to use a custom token (e.g., for cross-repo comments or fine-grained permissions), add:
|
|
174
|
+
```yaml
|
|
175
|
+
with:
|
|
176
|
+
github-token: ${{ secrets.MY_CUSTOM_TOKEN }}
|
|
177
|
+
```
|
|
178
|
+
|
|
173
179
|
#### With AWS Access Analyzer (Standalone Action)
|
|
174
180
|
|
|
175
181
|
Use AWS's official policy validation service:
|
|
@@ -434,11 +440,12 @@ See [examples/configs/full-reference-config.yaml](examples/configs/full-referenc
|
|
|
434
440
|
| `recursive` | Recursively search directories for policy files | No | `true` |
|
|
435
441
|
|
|
436
442
|
#### GitHub Integration
|
|
437
|
-
| Input | Description | Required | Default
|
|
438
|
-
| ---------------- | --------------------------------------------------------- | -------- |
|
|
439
|
-
| `
|
|
440
|
-
| `
|
|
441
|
-
| `
|
|
443
|
+
| Input | Description | Required | Default |
|
|
444
|
+
| ---------------- | --------------------------------------------------------- | -------- | -------------- |
|
|
445
|
+
| `github-token` | GitHub token for posting comments and reviews | No | `github.token` |
|
|
446
|
+
| `post-comment` | Post validation summary as PR conversation comment | No | `true` |
|
|
447
|
+
| `create-review` | Create line-specific review comments on PR files | No | `true` |
|
|
448
|
+
| `github-summary` | Write summary to GitHub Actions job summary (Actions tab) | No | `false` |
|
|
442
449
|
|
|
443
450
|
#### Output Options
|
|
444
451
|
| Input | Description | Required | Default |
|
|
@@ -108,6 +108,11 @@ inputs:
|
|
|
108
108
|
required: false
|
|
109
109
|
default: "warning"
|
|
110
110
|
|
|
111
|
+
github-token:
|
|
112
|
+
description: "GitHub token for posting comments and reviews. Defaults to automatic github.token"
|
|
113
|
+
required: false
|
|
114
|
+
default: ${{ github.token }}
|
|
115
|
+
|
|
111
116
|
outputs:
|
|
112
117
|
validation-result:
|
|
113
118
|
description: "Validation result (success or failure)"
|
|
@@ -141,20 +146,39 @@ runs:
|
|
|
141
146
|
uses: astral-sh/setup-uv@85856786d1ce8acfbcc2f13a5f3fbd6b938f9f41 # v7.0.0
|
|
142
147
|
with:
|
|
143
148
|
enable-cache: true
|
|
144
|
-
|
|
145
|
-
- name: Cache dependencies
|
|
146
|
-
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.2.0
|
|
147
|
-
with:
|
|
148
|
-
path: ${{ github.action_path }}/.venv
|
|
149
|
-
key: ${{ runner.os }}-uv-${{ hashFiles(format('{0}/pyproject.toml', github.action_path)) }}
|
|
150
|
-
restore-keys: |
|
|
151
|
-
${{ runner.os }}-uv-
|
|
149
|
+
cache-suffix: ci # Prune cache in CI to reduce bloat
|
|
152
150
|
|
|
153
151
|
- name: Sync dependencies
|
|
154
152
|
working-directory: ${{ github.action_path }}
|
|
155
153
|
run: uv sync --frozen
|
|
156
154
|
shell: bash
|
|
157
155
|
|
|
156
|
+
- name: Get current week for cache key
|
|
157
|
+
id: week
|
|
158
|
+
run: echo "week=$(date +%Y-W%V)" >> $GITHUB_OUTPUT
|
|
159
|
+
shell: bash
|
|
160
|
+
|
|
161
|
+
- name: Restore AWS service definitions cache
|
|
162
|
+
id: cache-aws-services
|
|
163
|
+
uses: actions/cache/restore@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0
|
|
164
|
+
with:
|
|
165
|
+
path: ~/.cache/iam-validator/aws_services
|
|
166
|
+
# Cache key refreshes weekly to get latest AWS service updates
|
|
167
|
+
key: aws-services-${{ runner.os }}-${{ steps.week.outputs.week }}
|
|
168
|
+
restore-keys: |
|
|
169
|
+
aws-services-${{ runner.os }}-
|
|
170
|
+
|
|
171
|
+
- name: Check cache status
|
|
172
|
+
run: |
|
|
173
|
+
if [ -d ~/.cache/iam-validator/aws_services ]; then
|
|
174
|
+
echo "✅ Cache directory exists"
|
|
175
|
+
echo "📁 Cache files: $(ls -1 ~/.cache/iam-validator/aws_services | wc -l)"
|
|
176
|
+
ls -lh ~/.cache/iam-validator/aws_services | head -5
|
|
177
|
+
else
|
|
178
|
+
echo "❌ Cache directory does not exist - will fetch from API"
|
|
179
|
+
fi
|
|
180
|
+
shell: bash
|
|
181
|
+
|
|
158
182
|
- name: Pre-validate IAM Policy Files
|
|
159
183
|
id: prevalidate
|
|
160
184
|
run: |
|
|
@@ -257,9 +281,11 @@ runs:
|
|
|
257
281
|
if: steps.prevalidate.outputs.iam-policy-count > 0
|
|
258
282
|
working-directory: ${{ github.action_path }}
|
|
259
283
|
env:
|
|
260
|
-
GITHUB_TOKEN: ${{ github
|
|
284
|
+
GITHUB_TOKEN: ${{ inputs.github-token }}
|
|
261
285
|
GITHUB_REPOSITORY: ${{ github.repository }}
|
|
262
|
-
|
|
286
|
+
GITHUB_WORKSPACE: ${{ github.workspace }}
|
|
287
|
+
# Try multiple ways to get PR number for different event types
|
|
288
|
+
GITHUB_PR_NUMBER: ${{ github.event.pull_request.number || github.event.number }}
|
|
263
289
|
run: |
|
|
264
290
|
set -e
|
|
265
291
|
|
|
@@ -412,6 +438,13 @@ runs:
|
|
|
412
438
|
exit ${EXIT_CODE:-0}
|
|
413
439
|
shell: bash
|
|
414
440
|
|
|
441
|
+
- name: Save AWS service definitions cache
|
|
442
|
+
if: always()
|
|
443
|
+
uses: actions/cache/save@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0
|
|
444
|
+
with:
|
|
445
|
+
path: ~/.cache/iam-validator/aws_services
|
|
446
|
+
key: aws-services-${{ runner.os }}-${{ steps.week.outputs.week }}
|
|
447
|
+
|
|
415
448
|
- name: Upload validation report
|
|
416
449
|
if: always() && inputs.output-file != ''
|
|
417
450
|
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0
|
|
@@ -134,6 +134,34 @@ settings:
|
|
|
134
134
|
# - medium # Uncomment to fail on medium severity
|
|
135
135
|
# - warning # Uncomment to fail on IAM validity warnings
|
|
136
136
|
|
|
137
|
+
# Template Variable Support (applies to all ARN validation checks)
|
|
138
|
+
#
|
|
139
|
+
# When enabled, the validator is POSITION-AWARE and supports ANY variable name
|
|
140
|
+
# in template variables, not just predefined ones. Variables are normalized based
|
|
141
|
+
# on their position in the ARN structure:
|
|
142
|
+
#
|
|
143
|
+
# Supported IaC Tools:
|
|
144
|
+
# - Terraform/Terragrunt: ${var.name}, ${local.value}, ${data.source.attr}
|
|
145
|
+
# - CloudFormation: ${AWS::AccountId}, ${AWS::Region}, ${MyParameter}
|
|
146
|
+
# - Pulumi: ${myVariable}, ${myStack.output}
|
|
147
|
+
# - AWS Policy Variables: ${aws:username}, ${aws:PrincipalTag/tag-key}
|
|
148
|
+
#
|
|
149
|
+
# Position-aware normalization examples:
|
|
150
|
+
# Partition: ${var.partition} → aws
|
|
151
|
+
# Service: ${var.service} → s3
|
|
152
|
+
# Region: ${var.region} → us-east-1
|
|
153
|
+
# Account ID: ${var.account_id} → 123456789012
|
|
154
|
+
# Resource: ${var.bucket_name} → placeholder
|
|
155
|
+
#
|
|
156
|
+
# Example ARNs that work:
|
|
157
|
+
# arn:aws:iam::${var.account}:role/MyRole ✓
|
|
158
|
+
# arn:aws:iam::${AWS::AccountId}:role/MyRole ✓
|
|
159
|
+
# arn:${local.partition}:s3:::${data.bucket.name}/* ✓
|
|
160
|
+
# arn:aws:s3:::${MY_CUSTOM_VAR}/* ✓
|
|
161
|
+
#
|
|
162
|
+
# Set to false to strictly validate ARN format without template support (default: true)
|
|
163
|
+
allow_template_variables: true
|
|
164
|
+
|
|
137
165
|
# ============================================================================
|
|
138
166
|
# BUILT-IN CHECKS - AWS Validation (17 checks total)
|
|
139
167
|
# ============================================================================
|
|
@@ -259,9 +287,13 @@ resource_validation:
|
|
|
259
287
|
enabled: true
|
|
260
288
|
severity: error
|
|
261
289
|
description: "Validates ARN format for resources"
|
|
262
|
-
|
|
263
|
-
#
|
|
264
|
-
|
|
290
|
+
|
|
291
|
+
# Regex pattern for ARN validation (optional - override default if needed)
|
|
292
|
+
# Default pattern defined in: iam_validator/core/constants.py (DEFAULT_ARN_VALIDATION_PATTERN)
|
|
293
|
+
# Pattern allows wildcards (*) in region and account fields for flexibility
|
|
294
|
+
# Only override if you need stricter or more lenient validation
|
|
295
|
+
# arn_pattern: "^arn:(aws|aws-cn|aws-us-gov|aws-eusc|aws-iso|aws-iso-b|aws-iso-e|aws-iso-f):[a-z0-9\\-]+:[a-z0-9\\-*]*:[0-9*]*:.+$"
|
|
296
|
+
|
|
265
297
|
# ignore_patterns available - see top of file for usage examples
|
|
266
298
|
|
|
267
299
|
# ============================================================================
|
|
@@ -423,7 +455,7 @@ policy_type_validation:
|
|
|
423
455
|
# - s3:ListBucket with object ARN (needs bucket ARN without /)
|
|
424
456
|
action_resource_matching:
|
|
425
457
|
enabled: true
|
|
426
|
-
severity: error
|
|
458
|
+
severity: error # IAM validity error - these policies won't work as expected
|
|
427
459
|
description: "Validates that resources match required types for actions (including account-level actions)"
|
|
428
460
|
|
|
429
461
|
# Example ignore patterns (commented out by default)
|
|
@@ -794,7 +794,7 @@ class ActionConditionEnforcementCheck(PolicyCheck):
|
|
|
794
794
|
|
|
795
795
|
# Build example based on condition key type
|
|
796
796
|
if example:
|
|
797
|
-
parts.append(f"Example:\n{example}")
|
|
797
|
+
parts.append(f"Example:\n```json\n{example}\n```")
|
|
798
798
|
else:
|
|
799
799
|
# Auto-generate example
|
|
800
800
|
example_lines = ['Add to "Condition" block:', f' "{operator}": {{']
|
|
@@ -27,6 +27,8 @@ from iam_validator.core.models import Statement, ValidationIssue
|
|
|
27
27
|
from iam_validator.sdk.arn_matching import (
|
|
28
28
|
arn_strictly_valid,
|
|
29
29
|
convert_aws_pattern_to_wildcard,
|
|
30
|
+
has_template_variables,
|
|
31
|
+
normalize_template_variables,
|
|
30
32
|
)
|
|
31
33
|
|
|
32
34
|
|
|
@@ -71,6 +73,13 @@ class ActionResourceMatchingCheck(PolicyCheck):
|
|
|
71
73
|
"""
|
|
72
74
|
issues = []
|
|
73
75
|
|
|
76
|
+
# Check if template variable support is enabled (default: true)
|
|
77
|
+
# Try global settings first, then check-specific config
|
|
78
|
+
allow_template_variables = config.root_config.get("settings", {}).get(
|
|
79
|
+
"allow_template_variables",
|
|
80
|
+
config.config.get("allow_template_variables", True),
|
|
81
|
+
)
|
|
82
|
+
|
|
74
83
|
# Get actions and resources
|
|
75
84
|
actions = statement.get_actions()
|
|
76
85
|
resources = statement.get_resources()
|
|
@@ -157,7 +166,13 @@ class ActionResourceMatchingCheck(PolicyCheck):
|
|
|
157
166
|
|
|
158
167
|
# Check if any policy resource matches this ARN pattern
|
|
159
168
|
for resource in resources:
|
|
160
|
-
|
|
169
|
+
# Normalize template variables (Terraform/CloudFormation) before matching
|
|
170
|
+
# This allows policies with ${aws_account_id}, ${AWS::AccountId}, etc.
|
|
171
|
+
validation_resource = resource
|
|
172
|
+
if allow_template_variables and has_template_variables(resource):
|
|
173
|
+
validation_resource = normalize_template_variables(resource)
|
|
174
|
+
|
|
175
|
+
if arn_strictly_valid(wildcard_pattern, validation_resource, resource_name):
|
|
161
176
|
match_found = True
|
|
162
177
|
break
|
|
163
178
|
|
|
@@ -185,8 +200,8 @@ class ActionResourceMatchingCheck(PolicyCheck):
|
|
|
185
200
|
issues.append(
|
|
186
201
|
self._create_mismatch_issue(
|
|
187
202
|
action=action,
|
|
188
|
-
required_format=required_formats[0]["format"] if required_formats else "",
|
|
189
|
-
required_type=required_formats[0]["type"] if required_formats else "",
|
|
203
|
+
required_format=(required_formats[0]["format"] if required_formats else ""),
|
|
204
|
+
required_type=(required_formats[0]["type"] if required_formats else ""),
|
|
190
205
|
provided_resources=resources,
|
|
191
206
|
statement_idx=statement_idx,
|
|
192
207
|
statement_sid=statement_sid,
|
|
@@ -236,9 +251,11 @@ class ActionResourceMatchingCheck(PolicyCheck):
|
|
|
236
251
|
issue_type="resource_mismatch",
|
|
237
252
|
message=message,
|
|
238
253
|
action=action,
|
|
239
|
-
resource=
|
|
240
|
-
|
|
241
|
-
|
|
254
|
+
resource=(
|
|
255
|
+
", ".join(provided_resources)
|
|
256
|
+
if len(provided_resources) <= 3
|
|
257
|
+
else f"{provided_resources[0]}..."
|
|
258
|
+
),
|
|
242
259
|
suggestion=suggestion,
|
|
243
260
|
line_number=line_number,
|
|
244
261
|
)
|
{iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/iam_validator/checks/full_wildcard.py
RENAMED
|
@@ -50,7 +50,11 @@ class FullWildcardCheck(PolicyCheck):
|
|
|
50
50
|
example = config.config.get("example", "")
|
|
51
51
|
|
|
52
52
|
# Combine suggestion + example
|
|
53
|
-
suggestion =
|
|
53
|
+
suggestion = (
|
|
54
|
+
f"{suggestion_text}\nExample:\n```json\n{example}\n```"
|
|
55
|
+
if example
|
|
56
|
+
else suggestion_text
|
|
57
|
+
)
|
|
54
58
|
|
|
55
59
|
issues.append(
|
|
56
60
|
ValidationIssue(
|
{iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/iam_validator/checks/policy_size.py
RENAMED
|
@@ -16,6 +16,7 @@ from typing import TYPE_CHECKING
|
|
|
16
16
|
|
|
17
17
|
from iam_validator.core.aws_fetcher import AWSServiceFetcher
|
|
18
18
|
from iam_validator.core.check_registry import CheckConfig, PolicyCheck
|
|
19
|
+
from iam_validator.core.constants import AWS_POLICY_SIZE_LIMITS
|
|
19
20
|
from iam_validator.core.models import Statement, ValidationIssue
|
|
20
21
|
|
|
21
22
|
if TYPE_CHECKING:
|
|
@@ -25,13 +26,8 @@ if TYPE_CHECKING:
|
|
|
25
26
|
class PolicySizeCheck(PolicyCheck):
|
|
26
27
|
"""Validates that IAM policies don't exceed AWS size limits."""
|
|
27
28
|
|
|
28
|
-
# AWS IAM policy size limits (
|
|
29
|
-
DEFAULT_LIMITS =
|
|
30
|
-
"managed": 6144,
|
|
31
|
-
"inline_user": 2048,
|
|
32
|
-
"inline_group": 5120,
|
|
33
|
-
"inline_role": 10240,
|
|
34
|
-
}
|
|
29
|
+
# AWS IAM policy size limits (loaded from constants module)
|
|
30
|
+
DEFAULT_LIMITS = AWS_POLICY_SIZE_LIMITS
|
|
35
31
|
|
|
36
32
|
@property
|
|
37
33
|
def check_id(self) -> str:
|
|
@@ -71,6 +71,7 @@ async def execute_policy(
|
|
|
71
71
|
line_number=statement.line_number,
|
|
72
72
|
suggestion="Add a Principal element to specify who can access this resource.\n"
|
|
73
73
|
"Example:\n"
|
|
74
|
+
"```json\n"
|
|
74
75
|
"{\n"
|
|
75
76
|
' "Effect": "Allow",\n'
|
|
76
77
|
' "Principal": {\n'
|
|
@@ -78,7 +79,8 @@ async def execute_policy(
|
|
|
78
79
|
" },\n"
|
|
79
80
|
' "Action": "s3:GetObject",\n'
|
|
80
81
|
' "Resource": "arn:aws:s3:::bucket/*"\n'
|
|
81
|
-
"}"
|
|
82
|
+
"}\n"
|
|
83
|
+
"```",
|
|
82
84
|
)
|
|
83
85
|
)
|
|
84
86
|
|
|
@@ -101,11 +103,13 @@ async def execute_policy(
|
|
|
101
103
|
line_number=statement.line_number,
|
|
102
104
|
suggestion="Remove the Principal element from this identity policy statement.\n"
|
|
103
105
|
"Example:\n"
|
|
106
|
+
"```json\n"
|
|
104
107
|
"{\n"
|
|
105
108
|
' "Effect": "Allow",\n'
|
|
106
109
|
' "Action": "s3:GetObject",\n'
|
|
107
110
|
' "Resource": "arn:aws:s3:::bucket/*"\n'
|
|
108
|
-
"}"
|
|
111
|
+
"}\n"
|
|
112
|
+
"```",
|
|
109
113
|
)
|
|
110
114
|
)
|
|
111
115
|
|
|
@@ -127,6 +131,7 @@ async def execute_policy(
|
|
|
127
131
|
line_number=statement.line_number,
|
|
128
132
|
suggestion="Remove the Principal element from this SCP statement.\n"
|
|
129
133
|
"Example:\n"
|
|
134
|
+
"```json\n"
|
|
130
135
|
"{\n"
|
|
131
136
|
' "Effect": "Deny",\n'
|
|
132
137
|
' "Action": "ec2:*",\n'
|
|
@@ -136,7 +141,8 @@ async def execute_policy(
|
|
|
136
141
|
' "ec2:Region": ["us-east-1", "us-west-2"]\n'
|
|
137
142
|
" }\n"
|
|
138
143
|
" }\n"
|
|
139
|
-
"}"
|
|
144
|
+
"}\n"
|
|
145
|
+
"```",
|
|
140
146
|
)
|
|
141
147
|
)
|
|
142
148
|
|
|
@@ -668,7 +668,7 @@ class PrincipalValidationCheck(PolicyCheck):
|
|
|
668
668
|
|
|
669
669
|
# Build example based on condition key type
|
|
670
670
|
if example:
|
|
671
|
-
parts.append(f"Example:\n{example}")
|
|
671
|
+
parts.append(f"Example:\n```json\n{example}\n```")
|
|
672
672
|
else:
|
|
673
673
|
# Auto-generate example
|
|
674
674
|
example_lines = ['Add to "Condition" block:', f' "{operator}": {{']
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
"""Resource validation check - validates ARN formats."""
|
|
2
|
+
|
|
3
|
+
import re
|
|
4
|
+
|
|
5
|
+
from iam_validator.core.aws_fetcher import AWSServiceFetcher
|
|
6
|
+
from iam_validator.core.check_registry import CheckConfig, PolicyCheck
|
|
7
|
+
from iam_validator.core.constants import DEFAULT_ARN_VALIDATION_PATTERN, MAX_ARN_LENGTH
|
|
8
|
+
from iam_validator.core.models import Statement, ValidationIssue
|
|
9
|
+
from iam_validator.sdk.arn_matching import (
|
|
10
|
+
has_template_variables,
|
|
11
|
+
normalize_template_variables,
|
|
12
|
+
)
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class ResourceValidationCheck(PolicyCheck):
|
|
16
|
+
"""Validates ARN format for resources."""
|
|
17
|
+
|
|
18
|
+
@property
|
|
19
|
+
def check_id(self) -> str:
|
|
20
|
+
return "resource_validation"
|
|
21
|
+
|
|
22
|
+
@property
|
|
23
|
+
def description(self) -> str:
|
|
24
|
+
return "Validates ARN format for resources"
|
|
25
|
+
|
|
26
|
+
@property
|
|
27
|
+
def default_severity(self) -> str:
|
|
28
|
+
return "error"
|
|
29
|
+
|
|
30
|
+
async def execute(
|
|
31
|
+
self,
|
|
32
|
+
statement: Statement,
|
|
33
|
+
statement_idx: int,
|
|
34
|
+
fetcher: AWSServiceFetcher,
|
|
35
|
+
config: CheckConfig,
|
|
36
|
+
) -> list[ValidationIssue]:
|
|
37
|
+
"""Execute resource ARN validation on a statement."""
|
|
38
|
+
issues = []
|
|
39
|
+
|
|
40
|
+
# Get resources from statement
|
|
41
|
+
resources = statement.get_resources()
|
|
42
|
+
statement_sid = statement.sid
|
|
43
|
+
line_number = statement.line_number
|
|
44
|
+
|
|
45
|
+
# Get ARN pattern from config, or use default
|
|
46
|
+
# Pattern allows wildcards (*) in region and account fields
|
|
47
|
+
arn_pattern_str = config.config.get("arn_pattern", DEFAULT_ARN_VALIDATION_PATTERN)
|
|
48
|
+
|
|
49
|
+
# Compile pattern
|
|
50
|
+
try:
|
|
51
|
+
arn_pattern = re.compile(arn_pattern_str)
|
|
52
|
+
except re.error:
|
|
53
|
+
# Fallback to default pattern if custom pattern is invalid
|
|
54
|
+
arn_pattern = re.compile(DEFAULT_ARN_VALIDATION_PATTERN)
|
|
55
|
+
|
|
56
|
+
# Check if template variable support is enabled (default: true)
|
|
57
|
+
# Try global settings first, then check-specific config
|
|
58
|
+
allow_template_variables = config.root_config.get("settings", {}).get(
|
|
59
|
+
"allow_template_variables",
|
|
60
|
+
config.config.get("allow_template_variables", True),
|
|
61
|
+
)
|
|
62
|
+
|
|
63
|
+
for resource in resources:
|
|
64
|
+
# Skip wildcard resources (handled by security checks)
|
|
65
|
+
if resource == "*":
|
|
66
|
+
continue
|
|
67
|
+
|
|
68
|
+
# Validate ARN length to prevent ReDoS attacks
|
|
69
|
+
if len(resource) > MAX_ARN_LENGTH:
|
|
70
|
+
issues.append(
|
|
71
|
+
ValidationIssue(
|
|
72
|
+
severity=self.get_severity(config),
|
|
73
|
+
statement_sid=statement_sid,
|
|
74
|
+
statement_index=statement_idx,
|
|
75
|
+
issue_type="invalid_resource",
|
|
76
|
+
message=f"Resource ARN exceeds maximum length ({len(resource)} > {MAX_ARN_LENGTH}): {resource[:100]}...",
|
|
77
|
+
resource=resource[:100] + "...",
|
|
78
|
+
suggestion="ARN is too long and may be invalid",
|
|
79
|
+
line_number=line_number,
|
|
80
|
+
)
|
|
81
|
+
)
|
|
82
|
+
continue
|
|
83
|
+
|
|
84
|
+
# Check if resource contains template variables
|
|
85
|
+
has_templates = has_template_variables(resource)
|
|
86
|
+
|
|
87
|
+
# If template variables are found and allowed, normalize them for validation
|
|
88
|
+
validation_resource = resource
|
|
89
|
+
if has_templates and allow_template_variables:
|
|
90
|
+
validation_resource = normalize_template_variables(resource)
|
|
91
|
+
|
|
92
|
+
# Validate ARN format
|
|
93
|
+
try:
|
|
94
|
+
if not arn_pattern.match(validation_resource):
|
|
95
|
+
# If original resource had templates and normalization didn't help,
|
|
96
|
+
# provide a more informative message
|
|
97
|
+
if has_templates and allow_template_variables:
|
|
98
|
+
issues.append(
|
|
99
|
+
ValidationIssue(
|
|
100
|
+
severity=self.get_severity(config),
|
|
101
|
+
statement_sid=statement_sid,
|
|
102
|
+
statement_index=statement_idx,
|
|
103
|
+
issue_type="invalid_resource",
|
|
104
|
+
message=f"Invalid ARN format even after normalizing template variables: {resource}",
|
|
105
|
+
resource=resource,
|
|
106
|
+
suggestion="ARN should follow format: arn:partition:service:region:account-id:resource (template variables like ${aws_account_id} are supported)",
|
|
107
|
+
line_number=line_number,
|
|
108
|
+
)
|
|
109
|
+
)
|
|
110
|
+
else:
|
|
111
|
+
issues.append(
|
|
112
|
+
ValidationIssue(
|
|
113
|
+
severity=self.get_severity(config),
|
|
114
|
+
statement_sid=statement_sid,
|
|
115
|
+
statement_index=statement_idx,
|
|
116
|
+
issue_type="invalid_resource",
|
|
117
|
+
message=f"Invalid ARN format: {resource}",
|
|
118
|
+
resource=resource,
|
|
119
|
+
suggestion="ARN should follow format: arn:partition:service:region:account-id:resource",
|
|
120
|
+
line_number=line_number,
|
|
121
|
+
)
|
|
122
|
+
)
|
|
123
|
+
except Exception:
|
|
124
|
+
# If regex matching fails (shouldn't happen with length check), treat as invalid
|
|
125
|
+
issues.append(
|
|
126
|
+
ValidationIssue(
|
|
127
|
+
severity=self.get_severity(config),
|
|
128
|
+
statement_sid=statement_sid,
|
|
129
|
+
statement_index=statement_idx,
|
|
130
|
+
issue_type="invalid_resource",
|
|
131
|
+
message=f"Could not validate ARN format: {resource}",
|
|
132
|
+
resource=resource,
|
|
133
|
+
suggestion="ARN validation failed - may contain unexpected characters",
|
|
134
|
+
line_number=line_number,
|
|
135
|
+
)
|
|
136
|
+
)
|
|
137
|
+
|
|
138
|
+
return issues
|
{iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/iam_validator/checks/sensitive_action.py
RENAMED
|
@@ -143,7 +143,11 @@ class SensitiveActionCheck(PolicyCheck):
|
|
|
143
143
|
)
|
|
144
144
|
|
|
145
145
|
# Combine suggestion + example
|
|
146
|
-
suggestion =
|
|
146
|
+
suggestion = (
|
|
147
|
+
f"{suggestion_text}\n\nExample:\n```json\n{example}\n```"
|
|
148
|
+
if example
|
|
149
|
+
else suggestion_text
|
|
150
|
+
)
|
|
147
151
|
|
|
148
152
|
# Determine severity based on the highest severity action in the list
|
|
149
153
|
# If single action, use its category severity
|
{iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/iam_validator/checks/service_wildcard.py
RENAMED
|
@@ -69,7 +69,9 @@ class ServiceWildcardCheck(PolicyCheck):
|
|
|
69
69
|
|
|
70
70
|
# Combine suggestion + example
|
|
71
71
|
suggestion = (
|
|
72
|
-
f"{suggestion_text}\nExample:\n{example}"
|
|
72
|
+
f"{suggestion_text}\nExample:\n```json\n{example}\n```"
|
|
73
|
+
if example
|
|
74
|
+
else suggestion_text
|
|
73
75
|
)
|
|
74
76
|
|
|
75
77
|
issues.append(
|
{iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/iam_validator/checks/wildcard_action.py
RENAMED
|
@@ -40,12 +40,17 @@ class WildcardActionCheck(PolicyCheck):
|
|
|
40
40
|
if "*" in actions:
|
|
41
41
|
message = config.config.get("message", "Statement allows all actions (*)")
|
|
42
42
|
suggestion_text = config.config.get(
|
|
43
|
-
"suggestion",
|
|
43
|
+
"suggestion",
|
|
44
|
+
"Replace wildcard with specific actions needed for your use case",
|
|
44
45
|
)
|
|
45
46
|
example = config.config.get("example", "")
|
|
46
47
|
|
|
47
48
|
# Combine suggestion + example
|
|
48
|
-
suggestion =
|
|
49
|
+
suggestion = (
|
|
50
|
+
f"{suggestion_text}\nExample:\n```json\n{example}\n```"
|
|
51
|
+
if example
|
|
52
|
+
else suggestion_text
|
|
53
|
+
)
|
|
49
54
|
|
|
50
55
|
issues.append(
|
|
51
56
|
ValidationIssue(
|
{iam_policy_validator-1.6.0 → iam_policy_validator-1.7.0}/iam_validator/checks/wildcard_resource.py
RENAMED
|
@@ -69,7 +69,11 @@ class WildcardResourceCheck(PolicyCheck):
|
|
|
69
69
|
example = config.config.get("example", "")
|
|
70
70
|
|
|
71
71
|
# Combine suggestion + example
|
|
72
|
-
suggestion =
|
|
72
|
+
suggestion = (
|
|
73
|
+
f"{suggestion_text}\nExample:\n```json\n{example}\n```"
|
|
74
|
+
if example
|
|
75
|
+
else suggestion_text
|
|
76
|
+
)
|
|
73
77
|
|
|
74
78
|
issues.append(
|
|
75
79
|
ValidationIssue(
|