iam-policy-validator 1.14.1__tar.gz → 1.14.3__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.14.1 → iam_policy_validator-1.14.3}/PKG-INFO +1 -1
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/__version__.py +1 -1
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/checks/condition_key_validation.py +1 -1
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/core/aws_service/validators.py +99 -8
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/core/config/aws_global_conditions.py +8 -4
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/core/constants.py +29 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/core/pr_commenter.py +6 -3
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/integrations/github_integration.py +1 -1
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/tests/checks/test_condition_key_validation_check.py +195 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/.github/dependabot.yml +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/.github/workflows/ci.yml +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/.github/workflows/cleanup-prereleases.yml +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/.github/workflows/codeql.yml +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/.github/workflows/pre-release.yml +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/.github/workflows/release.yml +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/.github/workflows/scorecard.yml +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/.gitignore +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/.python-version +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/CONTRIBUTING.md +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/DOCS.md +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/LICENSE +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/Makefile +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/README.md +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/SECURITY.md +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/action.yaml +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/_manifest.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/_services.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/a2c.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/a4b.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/access-analyzer.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/account.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/acm-pca.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/acm.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/action-recommendations.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/activate.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/aiops.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/airflow.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/amplify.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/amplifybackend.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/amplifyuibuilder.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/aoss.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/apigateway.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/app-integrations.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/appconfig.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/appfabric.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/appflow.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/application-autoscaling.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/application-signals.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/application-transformation.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/applicationinsights.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/appmesh-preview.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/appmesh.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/apprunner.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/appstream.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/appstudio.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/appsync.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/apptest.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/aps.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/arc-region-switch.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/arc-zonal-shift.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/arsenal.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/artifact.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/athena.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/auditmanager.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/autoscaling-plans.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/autoscaling.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/aws-marketplace-management.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/aws-marketplace.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/aws-portal.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/awsconnector.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/b2bi.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/backup-gateway.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/backup-search.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/backup-storage.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/backup.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/batch.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/bcm-dashboards.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/bcm-data-exports.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/bcm-pricing-calculator.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/bcm-recommended-actions.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/bedrock-agentcore.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/bedrock.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/billing.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/billingconductor.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/braket.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/budgets.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/bugbust.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/cases.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/cassandra.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/ce.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/chatbot.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/chime.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/cleanrooms-ml.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/cleanrooms.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/cloud9.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/clouddirectory.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/cloudformation.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/cloudfront-keyvaluestore.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/cloudfront.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/cloudhsm.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/cloudsearch.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/cloudshell.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/cloudtrail-data.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/cloudtrail.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/cloudwatch.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/codeartifact.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/codebuild.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/codecatalyst.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/codecommit.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/codeconnections.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/codedeploy-commands-secure.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/codedeploy.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/codeguru-profiler.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/codeguru-reviewer.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/codeguru-security.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/codeguru.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/codepipeline.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/codestar-connections.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/codestar-notifications.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/codestar.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/codewhisperer.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/cognito-identity.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/cognito-idp.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/cognito-sync.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/comprehend.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/comprehendmedical.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/compute-optimizer.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/config.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/connect-campaigns.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/connect.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/consoleapp.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/consolidatedbilling.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/controlcatalog.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/controltower.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/cost-optimization-hub.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/cur.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/customer-verification.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/databrew.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/dataexchange.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/datapipeline.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/datasync.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/datazone.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/dax.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/dbqms.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/deadline.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/deepcomposer.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/deepracer.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/detective.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/devicefarm.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/devops-guru.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/directconnect.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/discovery.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/dlm.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/dms.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/docdb-elastic.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/drs.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/ds-data.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/ds.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/dsql.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/dynamodb.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/ebs.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/ec2-instance-connect.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/ec2.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/ec2messages.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/ecr-public.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/ecr.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/ecs.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/eks-auth.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/eks.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/elasticache.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/elasticbeanstalk.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/elasticfilesystem.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/elasticloadbalancing.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/elasticmapreduce.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/elastictranscoder.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/elemental-activations.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/elemental-appliances-software.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/elemental-support-cases.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/elemental-support-content.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/emr-containers.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/emr-serverless.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/entityresolution.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/es.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/events.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/evidently.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/evs.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/execute-api.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/finspace-api.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/finspace.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/firehose.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/fis.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/fms.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/forecast.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/frauddetector.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/freertos.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/freetier.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/fsx.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/gamelift.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/gameliftstreams.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/geo-maps.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/geo-places.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/geo-routes.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/geo.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/glacier.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/globalaccelerator.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/glue.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/grafana.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/greengrass.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/groundstation.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/groundtruthlabeling.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/guardduty.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/health.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/healthlake.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/honeycode.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/iam.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/identity-sync.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/identitystore-auth.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/identitystore.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/imagebuilder.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/importexport.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/inspector-scan.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/inspector.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/inspector2.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/internetmonitor.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/invoicing.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/iot-device-tester.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/iot.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/iotanalytics.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/iotdeviceadvisor.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/iotevents.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/iotfleethub.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/iotfleetwise.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/iotjobsdata.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/iotmanagedintegrations.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/iotsitewise.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/iottwinmaker.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/iotwireless.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/iq-permission.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/iq.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/ivs.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/ivschat.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/kafka-cluster.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/kafka.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/kafkaconnect.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/kendra-ranking.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/kendra.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/kinesis.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/kinesisanalytics.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/kinesisvideo.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/kms.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/lakeformation.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/lambda.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/launchwizard.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/lex.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/license-manager-linux-subscriptions.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/license-manager-user-subscriptions.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/license-manager.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/lightsail.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/logs.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/lookoutequipment.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/lookoutmetrics.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/lookoutvision.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/m2.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/machinelearning.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/macie2.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/managedblockchain-query.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/managedblockchain.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/mapcredits.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/marketplacecommerceanalytics.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/mechanicalturk.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/mediaconnect.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/mediaconvert.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/mediaimport.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/medialive.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/mediapackage-vod.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/mediapackage.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/mediapackagev2.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/mediastore.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/mediatailor.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/medical-imaging.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/memorydb.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/mgh.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/mgn.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/migrationhub-orchestrator.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/migrationhub-strategy.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/mobileanalytics.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/mobiletargeting.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/monitron.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/mpa.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/mq.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/neptune-db.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/neptune-graph.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/network-firewall.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/network-security-director.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/networkflowmonitor.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/networkmanager-chat.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/networkmanager.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/networkmonitor.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/nimble.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/notifications-contacts.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/notifications.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/oam.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/observabilityadmin.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/odb.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/omics.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/one.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/opensearch.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/opsworks-cm.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/opsworks.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/organizations.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/osis.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/outposts.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/panorama.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/partnercentral-account-management.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/partnercentral.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/payment-cryptography.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/payments.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/pca-connector-ad.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/pca-connector-scep.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/pcs.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/personalize.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/pi.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/pipes.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/polly.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/pricing.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/private-networks.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/profile.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/proton.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/purchase-orders.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/q.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/qapps.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/qbusiness.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/qdeveloper.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/qldb.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/quicksight.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/ram.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/rbin.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/rds-data.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/rds-db.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/rds.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/redshift-data.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/redshift-serverless.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/redshift.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/refactor-spaces.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/rekognition.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/repostspace.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/resiliencehub.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/resource-explorer-2.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/resource-explorer.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/resource-groups.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/rhelkb.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/robomaker.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/rolesanywhere.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/route53-recovery-cluster.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/route53-recovery-control-config.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/route53-recovery-readiness.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/route53.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/route53domains.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/route53profiles.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/route53resolver.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/rtbfabric.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/rum.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/s3-object-lambda.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/s3-outposts.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/s3.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/s3express.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/s3tables.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/s3vectors.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/sagemaker-data-science-assistant.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/sagemaker-geospatial.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/sagemaker-mlflow.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/sagemaker.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/savingsplans.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/scheduler.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/schemas.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/scn.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/sdb.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/secretsmanager.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/security-ir.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/securityhub.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/securitylake.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/serverlessrepo.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/servicecatalog.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/servicediscovery.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/serviceextract.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/servicequotas.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/ses.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/shield.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/signer.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/signin.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/simspaceweaver.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/sms-voice.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/sms.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/snow-device-management.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/snowball.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/sns.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/social-messaging.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/sqlworkbench.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/sqs.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/ssm-contacts.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/ssm-guiconnect.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/ssm-incidents.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/ssm-quicksetup.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/ssm-sap.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/ssm.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/ssmmessages.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/sso-directory.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/sso-oauth.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/sso.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/states.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/storagegateway.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/sts.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/support-console.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/support.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/supportapp.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/supportplans.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/sustainability.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/swf.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/synthetics.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/tag.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/tax.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/textract.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/thinclient.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/timestream-influxdb.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/timestream.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/tiros.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/tnb.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/transcribe.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/transfer.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/transform.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/translate.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/trustedadvisor.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/ts.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/user-subscriptions.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/uxc.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/vendor-insights.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/verified-access.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/verifiedpermissions.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/voiceid.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/vpc-lattice-svcs.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/vpc-lattice.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/vpce.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/waf-regional.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/waf.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/wafv2.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/wam.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/wellarchitected.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/wickr.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/wisdom.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/workdocs.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/worklink.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/workmail.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/workmailmessageflow.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/workspaces-instances.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/workspaces-web.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/workspaces.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/xray.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/docs/README.md +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/docs/ROADMAP.md +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/docs/SDK.md +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/docs/aws-api-configuration.md +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/docs/aws-services-backup.md +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/docs/check-reference.md +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/docs/condition-requirements.md +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/docs/configuration.md +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/docs/custom-checks.md +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/docs/development/PUBLISHING.md +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/docs/development/pre-release-guide.md +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/docs/github-actions-examples.md +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/docs/github-actions-workflows.md +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/docs/modular-configuration.md +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/docs/privilege-escalation.md +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/docs/python-library-usage.md +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/docs/query-command.md +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/docs/shell-completion.md +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/docs/smart-filtering.md +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/README.md +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/access-analyzer/example1.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/access-analyzer/example2.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/configs/README.md +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/configs/full-reference-config.yaml +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/configs/github-labels-config.yaml +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/configs/minimal-validation-config.yaml +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/configs/offline-validation.yaml +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/configs/policy-level-condition-enforcement-config.yaml +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/configs/strict-security.yaml +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/custom_checks/README.md +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/custom_checks/advanced_multi_condition_validator.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/custom_checks/cross_account_external_id_check.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/custom_checks/domain_restriction_check.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/custom_checks/encryption_required_check.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/custom_checks/mfa_required_check.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/custom_checks/region_restriction_check.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/custom_checks/tag_enforcement_check.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/custom_checks/time_based_access_check.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/github-actions/README.md +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/github-actions/access-analyzer-only.yaml +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/github-actions/basic-validation.yaml +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/github-actions/custom-policy-checks.yaml +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/github-actions/multi-region-validation.yaml +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/github-actions/resource-policy-validation.yaml +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/github-actions/sarif-code-scanning.yaml +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/github-actions/sequential-validation.yaml +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/github-actions/two-step-validation.yaml +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/github-actions/validate-changed-files.yaml +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/README.md +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/identity-policies/allowed-wildcard-resource.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/identity-policies/api_gateway_management.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/identity-policies/athena_query_access.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/identity-policies/backup_vault_access.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/identity-policies/cloudformation_deployer.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/identity-policies/cloudwatch_monitoring.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/identity-policies/cognito_user_pool.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/identity-policies/dynamodb_table_access.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/identity-policies/ecs_task_execution.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/identity-policies/eventbridge_rules.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/identity-policies/glue_etl_jobs.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/identity-policies/insecure_policy.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/identity-policies/insecure_policy.yaml +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/identity-policies/invalid-resource-constraint.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/identity-policies/invalid-sid-special-chars.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/identity-policies/invalid-sid-with-spaces.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/identity-policies/invalid_policy.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/identity-policies/kms_encryption_keys.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/identity-policies/lambda_developer.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/identity-policies/lambda_developer.yaml +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/identity-policies/maximum_size_policy.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/identity-policies/policy_missing_required_tags.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/identity-policies/policy_tag_enforcement_example.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/identity-policies/policy_with_wildcard_resources.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/identity-policies/privilege_escalation_scattered.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/identity-policies/rds_database_admin.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/identity-policies/s3_bucket_access.yaml +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/identity-policies/sample_policy.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/identity-policies/sample_policy.yaml +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/identity-policies/secrets_manager_access.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/identity-policies/sensitive-action-wildcards.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/identity-policies/sns_sqs_messaging.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/identity-policies/step_functions_workflow.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/identity-policies/terraform-template-policy.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/identity-policies/test_none_of_valid.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/identity-policies/test_none_of_violations.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/identity-policies/valid-sid-formats.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/identity-policies/wildcard_examples.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/identity-policies/wildcard_examples.yaml +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/identity-policies/wrong-condition-key.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/identity-policies/wrong-s3-condition.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/resource-control-policies/rcp-invalid-allow-effect.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/resource-control-policies/rcp-invalid-not-action.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/resource-control-policies/rcp-invalid-specific-principal.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/resource-control-policies/rcp-invalid-unsupported-service.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/resource-control-policies/rcp-invalid-wildcard-action.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/resource-control-policies/rcp-valid-enforce-encryption.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/resource-policies/README.md +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/resource-policies/backup-vault-policy-org-access.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/resource-policies/ecr-repository-policy-org-restricted.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/resource-policies/ecr-repository-policy-public.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/resource-policies/efs-filesystem-policy-vpc-only.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/resource-policies/glacier-vault-policy-cross-account.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/resource-policies/kms-key-policy-cross-account.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/resource-policies/kms-key-policy-insecure.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/resource-policies/kms-key-policy-org-restricted.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/resource-policies/kms-key-policy-service-specific.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/resource-policies/lambda-permission-api-gateway.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/resource-policies/lambda-permission-cross-account-invoke.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/resource-policies/lambda-permission-eventbridge-multiple.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/resource-policies/lambda-permission-public-url.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/resource-policies/lambda-permission-s3-trigger.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/resource-policies/opensearch-domain-policy-ip-restricted.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/resource-policies/s3-bucket-policy-cloudfront.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/resource-policies/s3-bucket-policy-cross-account-org.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/resource-policies/s3-bucket-policy-insecure-transport.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/resource-policies/s3-bucket-policy-ip-restriction.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/resource-policies/s3-bucket-policy-public-with-conditions.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/resource-policies/s3-bucket-policy-public.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/resource-policies/s3-bucket-policy-specific-account.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/resource-policies/s3-bucket-policy-vpc-endpoint.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/resource-policies/s3-bucket-policy-wildcard-actions.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/resource-policies/secrets-manager-policy-cross-account.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/resource-policies/sns-topic-policy-cross-account-mfa.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/resource-policies/sns-topic-policy-cross-account.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/resource-policies/sns-topic-policy-eventbridge.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/resource-policies/sns-topic-policy-org-wide.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/resource-policies/sns-topic-policy-public-no-conditions.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/resource-policies/sqs-queue-policy-cross-account-role.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/resource-policies/sqs-queue-policy-iam-users-mfa.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/resource-policies/sqs-queue-policy-public.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/resource-policies/sqs-queue-policy-sns-subscription.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/service-control-policies/deny-root-account-usage.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/service-control-policies/require-mfa.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/service-control-policies/restrict-regions.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/wrong_actions_mismatch/README.md +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/wrong_actions_mismatch/correct-condition-wrong-key.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/wrong_actions_mismatch/dynamodb-wrong-resources.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/wrong_actions_mismatch/ec2-wrong-resources.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/wrong_actions_mismatch/iam-wrong-resources.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/wrong_actions_mismatch/lambda-wrong-resources.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/wrong_actions_mismatch/s3-wrong-resources.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/wrong_actions_mismatch/sqs-sns-wrong-resources.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/iam-test-policies/wrong_actions_mismatch/typo-condition-field.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/library-usage/README.md +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/library-usage/example1_basic_usage.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/library-usage/example2_config_file.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/library-usage/example3_programmatic_config.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/library-usage/example4_custom_condition_requirements.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/library-usage/example5_query_aws_services.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/library-usage/policies/my-policy.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/library-usage/policies/policy1.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/library-usage/policies/policy2.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/query-examples.sh +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/quick-start/lambda-policy.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/quick-start/s3-policy.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/quick-start/user-policy.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/trust-policies/INVALID-wrong-principal-type.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/trust-policies/README.md +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/trust-policies/cross-account-trust-policy.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/trust-policies/github-actions-oidc-trust-policy.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/trust-policies/lambda-service-role-trust-policy.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/examples/trust-policies/saml-federated-trust-policy.json +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/__init__.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/__main__.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/checks/__init__.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/checks/action_condition_enforcement.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/checks/action_resource_matching.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/checks/action_validation.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/checks/condition_type_mismatch.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/checks/full_wildcard.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/checks/mfa_condition_check.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/checks/policy_size.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/checks/policy_structure.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/checks/policy_type_validation.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/checks/principal_validation.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/checks/resource_validation.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/checks/sensitive_action.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/checks/service_wildcard.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/checks/set_operator_validation.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/checks/sid_uniqueness.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/checks/trust_policy_validation.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/checks/utils/__init__.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/checks/utils/action_parser.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/checks/utils/policy_level_checks.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/checks/utils/sensitive_action_matcher.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/checks/utils/wildcard_expansion.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/checks/wildcard_action.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/checks/wildcard_resource.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/commands/__init__.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/commands/analyze.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/commands/base.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/commands/cache.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/commands/completion.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/commands/download_services.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/commands/post_to_pr.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/commands/query.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/commands/validate.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/core/__init__.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/core/access_analyzer.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/core/access_analyzer_report.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/core/aws_fetcher.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/core/aws_service/__init__.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/core/aws_service/cache.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/core/aws_service/client.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/core/aws_service/fetcher.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/core/aws_service/parsers.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/core/aws_service/patterns.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/core/aws_service/storage.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/core/check_registry.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/core/cli.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/core/codeowners.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/core/condition_validators.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/core/config/__init__.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/core/config/aws_api.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/core/config/category_suggestions.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/core/config/check_documentation.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/core/config/condition_requirements.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/core/config/config_loader.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/core/config/defaults.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/core/config/principal_requirements.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/core/config/sensitive_actions.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/core/config/service_principals.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/core/config/wildcards.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/core/diff_parser.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/core/finding_fingerprint.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/core/formatters/__init__.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/core/formatters/base.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/core/formatters/console.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/core/formatters/csv.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/core/formatters/enhanced.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/core/formatters/html.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/core/formatters/json.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/core/formatters/markdown.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/core/formatters/sarif.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/core/ignore_patterns.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/core/ignore_processor.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/core/ignored_findings.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/core/label_manager.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/core/models.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/core/policy_checks.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/core/policy_loader.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/core/report.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/integrations/__init__.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/integrations/ms_teams.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/sdk/__init__.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/sdk/arn_matching.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/sdk/context.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/sdk/exceptions.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/sdk/helpers.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/sdk/policy_utils.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/sdk/query_utils.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/sdk/shortcuts.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/utils/__init__.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/utils/cache.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/utils/regex.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/utils/terminal.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/pyproject.toml +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/scripts/download_aws_services.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/scripts/sync_defaults_from_yaml.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/tests/README.md +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/tests/__init__.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/tests/checks/__init__.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/tests/checks/test_action_validation_check.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/tests/checks/test_aws_global_conditions.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/tests/checks/test_condition_type_mismatch.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/tests/checks/test_custom_policy_checks.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/tests/checks/test_full_wildcard_check.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/tests/checks/test_mfa_condition_check.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/tests/checks/test_policy_size_check.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/tests/checks/test_principal_validation_check.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/tests/checks/test_resource_validation_check.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/tests/checks/test_sensitive_action_filtering.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/tests/checks/test_sensitive_action_suggestions.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/tests/checks/test_sensitive_action_wildcard_expansion.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/tests/checks/test_service_principal_wildcard.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/tests/checks/test_service_wildcard_check.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/tests/checks/test_sid_uniqueness_check.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/tests/checks/test_wildcard_action_check.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/tests/checks/test_wildcard_resource_check.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/tests/commands/__init__.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/tests/commands/test_completion_command.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/tests/commands/test_query_command.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/tests/config/__init__.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/tests/config/test_config_loader.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/tests/core/__init__.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/tests/core/test_action_condition_enforcement.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/tests/core/test_action_condition_enforcement_policy_level.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/tests/core/test_action_resource_matching.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/tests/core/test_aws_api_config.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/tests/core/test_aws_fetcher_wildcards.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/tests/core/test_check_id_in_comments.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/tests/core/test_check_id_injection.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/tests/core/test_check_registry.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/tests/core/test_codeowners.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/tests/core/test_comment_truncation.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/tests/core/test_diff_parser.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/tests/core/test_finding_fingerprint.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/tests/core/test_ignore_patterns.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/tests/core/test_ignored_findings.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/tests/core/test_models.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/tests/core/test_multipart_comments.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/tests/core/test_policy_loader.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/tests/core/test_policy_type_validation.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/tests/core/test_pr_commenter_diff_filtering.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/tests/core/test_regex_utils.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/tests/core/test_set_operator_validation.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/tests/core/test_trust_policy_detection.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/tests/core/test_trust_policy_multiple_statements.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/tests/core/test_trust_policy_oidc_aud_required.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/tests/core/test_trust_policy_validation.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/tests/integrations/__init__.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/tests/integrations/test_comment_deduplication.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/tests/integrations/test_github_pagination.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/tests/integrations/test_label_manager.py +0 -0
- {iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/uv.lock +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: iam-policy-validator
|
|
3
|
-
Version: 1.14.
|
|
3
|
+
Version: 1.14.3
|
|
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
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
This file is the single source of truth for the package version.
|
|
4
4
|
"""
|
|
5
5
|
|
|
6
|
-
__version__ = "1.14.
|
|
6
|
+
__version__ = "1.14.3"
|
|
7
7
|
# Parse version, handling pre-release suffixes like -rc, -alpha, -beta
|
|
8
8
|
_version_base = __version__.split("-", maxsplit=1)[0] # Remove pre-release suffix if present
|
|
9
9
|
__version_info__ = tuple(int(part) for part in _version_base.split("."))
|
|
@@ -37,7 +37,7 @@ class ConditionKeyValidationCheck(PolicyCheck):
|
|
|
37
37
|
resources = statement.get_resources()
|
|
38
38
|
|
|
39
39
|
# Extract all condition keys from all condition operators
|
|
40
|
-
for
|
|
40
|
+
for _, conditions in statement.condition.items():
|
|
41
41
|
for condition_key in conditions.keys():
|
|
42
42
|
# Validate this condition key against each action in the statement
|
|
43
43
|
for action in actions:
|
|
@@ -5,14 +5,104 @@ including actions, condition keys, and ARN formats.
|
|
|
5
5
|
"""
|
|
6
6
|
|
|
7
7
|
import logging
|
|
8
|
+
import re
|
|
8
9
|
from dataclasses import dataclass
|
|
9
10
|
from typing import Any
|
|
10
11
|
|
|
11
12
|
from iam_validator.core.aws_service.parsers import ServiceParser
|
|
13
|
+
from iam_validator.core.constants import (
|
|
14
|
+
AWS_TAG_KEY_ALLOWED_CHARS,
|
|
15
|
+
AWS_TAG_KEY_MAX_LENGTH,
|
|
16
|
+
AWS_TAG_KEY_PLACEHOLDERS,
|
|
17
|
+
)
|
|
12
18
|
from iam_validator.core.models import ServiceDetail
|
|
13
19
|
|
|
14
20
|
logger = logging.getLogger(__name__)
|
|
15
21
|
|
|
22
|
+
# Pre-compiled regex for AWS tag key validation
|
|
23
|
+
# Uses centralized constants from iam_validator.core.constants
|
|
24
|
+
_TAG_KEY_PATTERN = re.compile(rf"^[{AWS_TAG_KEY_ALLOWED_CHARS}]{{1,{AWS_TAG_KEY_MAX_LENGTH}}}$")
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
def _is_valid_tag_key(tag_key: str) -> bool:
|
|
28
|
+
"""Validate an AWS tag key format.
|
|
29
|
+
|
|
30
|
+
AWS tag keys must:
|
|
31
|
+
- Be 1-128 characters long
|
|
32
|
+
- Contain only: letters, numbers, spaces, and + - = . _ : / @
|
|
33
|
+
- Not be empty
|
|
34
|
+
|
|
35
|
+
Note: The 'aws:' prefix check is not done here as it's for the condition key prefix,
|
|
36
|
+
not the tag key portion (e.g., in 'ssm:resourceTag/owner', 'owner' is the tag key).
|
|
37
|
+
|
|
38
|
+
Args:
|
|
39
|
+
tag_key: The tag key portion to validate
|
|
40
|
+
|
|
41
|
+
Returns:
|
|
42
|
+
True if valid AWS tag key format
|
|
43
|
+
"""
|
|
44
|
+
if not tag_key or len(tag_key) > AWS_TAG_KEY_MAX_LENGTH:
|
|
45
|
+
return False
|
|
46
|
+
return bool(_TAG_KEY_PATTERN.match(tag_key))
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
def _matches_condition_key_pattern(condition_key: str, pattern: str) -> bool:
|
|
50
|
+
"""Check if a condition key matches a pattern with tag-key placeholders.
|
|
51
|
+
|
|
52
|
+
AWS service definitions use patterns like:
|
|
53
|
+
- `ssm:resourceTag/tag-key` or `ssm:resourceTag/${TagKey}` to match `ssm:resourceTag/owner`
|
|
54
|
+
- `aws:ResourceTag/${TagKey}` to match `aws:ResourceTag/Environment`
|
|
55
|
+
|
|
56
|
+
Args:
|
|
57
|
+
condition_key: The actual condition key from the policy (e.g., "ssm:resourceTag/owner")
|
|
58
|
+
pattern: The pattern from AWS service definition (e.g., "ssm:resourceTag/tag-key")
|
|
59
|
+
|
|
60
|
+
Returns:
|
|
61
|
+
True if condition_key matches the pattern
|
|
62
|
+
"""
|
|
63
|
+
# Exact match (fast path)
|
|
64
|
+
if condition_key == pattern:
|
|
65
|
+
return True
|
|
66
|
+
|
|
67
|
+
# Check for tag-key placeholder patterns
|
|
68
|
+
for tag_placeholder in AWS_TAG_KEY_PLACEHOLDERS:
|
|
69
|
+
if tag_placeholder in pattern:
|
|
70
|
+
# Extract the prefix before the placeholder
|
|
71
|
+
prefix = pattern.split(tag_placeholder, 1)[0]
|
|
72
|
+
prefix_with_slash = prefix + "/"
|
|
73
|
+
# Check if condition_key starts with prefix and has a tag key after it
|
|
74
|
+
if condition_key.startswith(prefix_with_slash):
|
|
75
|
+
# Validate tag key format per AWS constraints
|
|
76
|
+
tag_key = condition_key[len(prefix_with_slash) :]
|
|
77
|
+
if _is_valid_tag_key(tag_key):
|
|
78
|
+
return True
|
|
79
|
+
|
|
80
|
+
return False
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
def _condition_key_in_list(condition_key: str, condition_keys: list[str]) -> bool:
|
|
84
|
+
"""Check if a condition key matches any key in the list, supporting patterns.
|
|
85
|
+
|
|
86
|
+
Args:
|
|
87
|
+
condition_key: The condition key to check
|
|
88
|
+
condition_keys: List of condition keys (may include patterns)
|
|
89
|
+
|
|
90
|
+
Returns:
|
|
91
|
+
True if condition_key matches any entry in the list
|
|
92
|
+
"""
|
|
93
|
+
# Fast path: check for exact match first (most common case)
|
|
94
|
+
if condition_key in condition_keys:
|
|
95
|
+
return True
|
|
96
|
+
|
|
97
|
+
# Slower path: check patterns only if no exact match
|
|
98
|
+
for pattern in condition_keys:
|
|
99
|
+
# Skip exact matches (already checked above)
|
|
100
|
+
if pattern == condition_key:
|
|
101
|
+
continue
|
|
102
|
+
if _matches_condition_key_pattern(condition_key, pattern):
|
|
103
|
+
return True
|
|
104
|
+
return False
|
|
105
|
+
|
|
16
106
|
|
|
17
107
|
@dataclass
|
|
18
108
|
class ConditionKeyValidationResult:
|
|
@@ -134,7 +224,7 @@ class ServiceValidator:
|
|
|
134
224
|
action: str,
|
|
135
225
|
condition_key: str,
|
|
136
226
|
service_detail: ServiceDetail,
|
|
137
|
-
resources: list[str] | None = None,
|
|
227
|
+
resources: list[str] | None = None, # pylint: disable=unused-argument - kept for API compatibility
|
|
138
228
|
) -> ConditionKeyValidationResult:
|
|
139
229
|
"""Validate condition key against action and optionally resource types.
|
|
140
230
|
|
|
@@ -173,22 +263,23 @@ class ServiceValidator:
|
|
|
173
263
|
error_message=f"Invalid AWS global condition key: `{condition_key}`.",
|
|
174
264
|
)
|
|
175
265
|
|
|
176
|
-
# Check service-specific condition keys
|
|
177
|
-
if
|
|
266
|
+
# Check service-specific condition keys (with pattern matching for tag keys)
|
|
267
|
+
if service_detail.condition_keys and _condition_key_in_list(
|
|
268
|
+
condition_key, list(service_detail.condition_keys.keys())
|
|
269
|
+
):
|
|
178
270
|
return ConditionKeyValidationResult(is_valid=True)
|
|
179
271
|
|
|
180
272
|
# Check action-specific condition keys
|
|
181
273
|
if action_name in service_detail.actions:
|
|
182
274
|
action_detail = service_detail.actions[action_name]
|
|
183
|
-
if (
|
|
184
|
-
action_detail.action_condition_keys
|
|
185
|
-
and condition_key in action_detail.action_condition_keys
|
|
275
|
+
if action_detail.action_condition_keys and _condition_key_in_list(
|
|
276
|
+
condition_key, action_detail.action_condition_keys
|
|
186
277
|
):
|
|
187
278
|
return ConditionKeyValidationResult(is_valid=True)
|
|
188
279
|
|
|
189
280
|
# Check resource-specific condition keys
|
|
190
281
|
# Get resource types required by this action
|
|
191
|
-
if
|
|
282
|
+
if action_detail.resources:
|
|
192
283
|
for res_req in action_detail.resources:
|
|
193
284
|
resource_name = res_req.get("Name", "")
|
|
194
285
|
if not resource_name:
|
|
@@ -197,7 +288,7 @@ class ServiceValidator:
|
|
|
197
288
|
# Look up resource type definition
|
|
198
289
|
resource_type = service_detail.resources.get(resource_name)
|
|
199
290
|
if resource_type and resource_type.condition_keys:
|
|
200
|
-
if condition_key
|
|
291
|
+
if _condition_key_in_list(condition_key, resource_type.condition_keys):
|
|
201
292
|
return ConditionKeyValidationResult(is_valid=True)
|
|
202
293
|
|
|
203
294
|
# If it's a global key but the action has specific condition keys defined,
|
|
@@ -11,6 +11,8 @@ Last updated: 2025-01-17
|
|
|
11
11
|
import re
|
|
12
12
|
from typing import Any
|
|
13
13
|
|
|
14
|
+
from iam_validator.core.constants import AWS_TAG_KEY_ALLOWED_CHARS
|
|
15
|
+
|
|
14
16
|
# AWS Global Condition Keys with Type Information
|
|
15
17
|
# These condition keys are available for use in IAM policies across all AWS services
|
|
16
18
|
# Format: {key: type} where type is one of: String, ARN, Bool, Date, IPAddress, Numeric
|
|
@@ -71,17 +73,18 @@ AWS_GLOBAL_CONDITION_KEYS = {
|
|
|
71
73
|
|
|
72
74
|
# Patterns that should be recognized (wildcards and tag-based keys)
|
|
73
75
|
# These allow things like aws:RequestTag/Department or aws:PrincipalTag/Environment
|
|
76
|
+
# Uses centralized tag key character class from constants
|
|
74
77
|
AWS_CONDITION_KEY_PATTERNS = [
|
|
75
78
|
{
|
|
76
|
-
"pattern":
|
|
79
|
+
"pattern": rf"^aws:RequestTag/[{AWS_TAG_KEY_ALLOWED_CHARS}]+$",
|
|
77
80
|
"description": "Tag keys in the request (for tag-based access control)",
|
|
78
81
|
},
|
|
79
82
|
{
|
|
80
|
-
"pattern":
|
|
83
|
+
"pattern": rf"^aws:ResourceTag/[{AWS_TAG_KEY_ALLOWED_CHARS}]+$",
|
|
81
84
|
"description": "Tags on the resource being accessed",
|
|
82
85
|
},
|
|
83
86
|
{
|
|
84
|
-
"pattern":
|
|
87
|
+
"pattern": rf"^aws:PrincipalTag/[{AWS_TAG_KEY_ALLOWED_CHARS}]+$",
|
|
85
88
|
"description": "Tags attached to the principal making the request",
|
|
86
89
|
},
|
|
87
90
|
]
|
|
@@ -154,7 +157,8 @@ _global_conditions_instance = None
|
|
|
154
157
|
|
|
155
158
|
def get_global_conditions() -> AWSGlobalConditions:
|
|
156
159
|
"""Get singleton instance of AWSGlobalConditions."""
|
|
157
|
-
global _global_conditions_instance
|
|
160
|
+
global _global_conditions_instance # pylint: disable=global-statement
|
|
161
|
+
|
|
158
162
|
if _global_conditions_instance is None:
|
|
159
163
|
_global_conditions_instance = AWSGlobalConditions()
|
|
160
164
|
return _global_conditions_instance
|
|
@@ -147,3 +147,32 @@ RCP_SUPPORTED_SERVICES = frozenset(
|
|
|
147
147
|
|
|
148
148
|
# AWS Service Authorization Reference (for finding valid actions, resources, and condition keys)
|
|
149
149
|
AWS_SERVICE_AUTH_REF_URL = "https://docs.aws.amazon.com/service-authorization/latest/reference/reference_policies_actions-resources-contextkeys.html"
|
|
150
|
+
|
|
151
|
+
# ============================================================================
|
|
152
|
+
# AWS Tag Constraints
|
|
153
|
+
# ============================================================================
|
|
154
|
+
# Reference: https://docs.aws.amazon.com/tag-editor/latest/userguide/best-practices-and-strats.html
|
|
155
|
+
|
|
156
|
+
# --- Tag Key Constraints ---
|
|
157
|
+
# Allowed characters in AWS tag keys: letters, numbers, spaces, and + - = . _ : / @
|
|
158
|
+
# This is the character class for use in regex patterns
|
|
159
|
+
AWS_TAG_KEY_ALLOWED_CHARS = r"a-zA-Z0-9 +\-=._:/@"
|
|
160
|
+
|
|
161
|
+
# Maximum length for AWS tag keys (per AWS documentation)
|
|
162
|
+
AWS_TAG_KEY_MAX_LENGTH = 128
|
|
163
|
+
|
|
164
|
+
# Tag-key placeholder patterns used in AWS service definitions
|
|
165
|
+
# These patterns indicate where a tag key should be substituted
|
|
166
|
+
AWS_TAG_KEY_PLACEHOLDERS = ("/tag-key", "/${TagKey}", "/${tag-key}")
|
|
167
|
+
|
|
168
|
+
# --- Tag Value Constraints ---
|
|
169
|
+
# Allowed characters in AWS tag values: letters, numbers, spaces, and + - = . _ : / @
|
|
170
|
+
# Same character set as tag keys
|
|
171
|
+
AWS_TAG_VALUE_ALLOWED_CHARS = r"a-zA-Z0-9 +\-=._:/@"
|
|
172
|
+
|
|
173
|
+
# Maximum length for AWS tag values (per AWS documentation)
|
|
174
|
+
# Note: Tag values can be empty (minimum 0), unlike keys which must have at least 1 char
|
|
175
|
+
AWS_TAG_VALUE_MAX_LENGTH = 256
|
|
176
|
+
|
|
177
|
+
# Minimum length for AWS tag values (can be empty)
|
|
178
|
+
AWS_TAG_VALUE_MIN_LENGTH = 0
|
{iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/iam_validator/core/pr_commenter.py
RENAMED
|
@@ -398,12 +398,15 @@ class PRCommenter:
|
|
|
398
398
|
logger.info("No inline comments to post (after diff filtering)")
|
|
399
399
|
# Still run cleanup to delete any stale comments from resolved findings
|
|
400
400
|
# (unless skip_cleanup is set for streaming mode)
|
|
401
|
+
# Use APPROVE event to dismiss any previous REQUEST_CHANGES review
|
|
401
402
|
if validated_files and self.cleanup_old_comments:
|
|
402
|
-
logger.debug(
|
|
403
|
+
logger.debug(
|
|
404
|
+
"Running cleanup for stale comments and approving PR (no blocking issues)..."
|
|
405
|
+
)
|
|
403
406
|
await self.github.update_or_create_review_comments(
|
|
404
407
|
comments=[],
|
|
405
408
|
body="",
|
|
406
|
-
event=ReviewEvent.
|
|
409
|
+
event=ReviewEvent.APPROVE,
|
|
407
410
|
identifier=self.REVIEW_IDENTIFIER,
|
|
408
411
|
validated_files=validated_files,
|
|
409
412
|
skip_cleanup=False, # Explicitly run cleanup
|
|
@@ -421,7 +424,7 @@ class PRCommenter:
|
|
|
421
424
|
for issue in result.issues
|
|
422
425
|
)
|
|
423
426
|
|
|
424
|
-
event = ReviewEvent.REQUEST_CHANGES if has_blocking_issues else ReviewEvent.
|
|
427
|
+
event = ReviewEvent.REQUEST_CHANGES if has_blocking_issues else ReviewEvent.APPROVE
|
|
425
428
|
logger.info(
|
|
426
429
|
f"Creating PR review with {len(inline_comments)} comments, event: {event.value}"
|
|
427
430
|
)
|
|
@@ -449,3 +449,198 @@ class TestConditionKeyValidationCheck:
|
|
|
449
449
|
"arn:aws:s3:us-east-1:123456789012:accesspoint/my-access-point",
|
|
450
450
|
],
|
|
451
451
|
)
|
|
452
|
+
|
|
453
|
+
|
|
454
|
+
class TestConditionKeyPatternMatching:
|
|
455
|
+
"""Test pattern matching for service-specific condition keys like ssm:resourceTag/tag-key."""
|
|
456
|
+
|
|
457
|
+
@pytest.mark.asyncio
|
|
458
|
+
async def test_ssm_resource_tag_pattern_matching(self):
|
|
459
|
+
"""Test that ssm:resourceTag/owner matches ssm:resourceTag/tag-key pattern."""
|
|
460
|
+
from iam_validator.core.aws_service.validators import _matches_condition_key_pattern
|
|
461
|
+
|
|
462
|
+
# These should match the ssm:resourceTag/tag-key pattern
|
|
463
|
+
assert _matches_condition_key_pattern("ssm:resourceTag/owner", "ssm:resourceTag/tag-key")
|
|
464
|
+
assert _matches_condition_key_pattern(
|
|
465
|
+
"ssm:resourceTag/Environment", "ssm:resourceTag/tag-key"
|
|
466
|
+
)
|
|
467
|
+
assert _matches_condition_key_pattern(
|
|
468
|
+
"ssm:resourceTag/CostCenter", "ssm:resourceTag/tag-key"
|
|
469
|
+
)
|
|
470
|
+
|
|
471
|
+
# Exact match should also work
|
|
472
|
+
assert _matches_condition_key_pattern("ssm:Overwrite", "ssm:Overwrite")
|
|
473
|
+
|
|
474
|
+
# Non-matching patterns should fail
|
|
475
|
+
assert not _matches_condition_key_pattern("ssm:resourceTag/owner", "ssm:Overwrite")
|
|
476
|
+
assert not _matches_condition_key_pattern("ssm:invalid", "ssm:resourceTag/tag-key")
|
|
477
|
+
|
|
478
|
+
@pytest.mark.asyncio
|
|
479
|
+
async def test_aws_tag_pattern_matching(self):
|
|
480
|
+
"""Test that aws:ResourceTag/owner matches aws:ResourceTag/${TagKey} pattern."""
|
|
481
|
+
from iam_validator.core.aws_service.validators import _matches_condition_key_pattern
|
|
482
|
+
|
|
483
|
+
# These should match the ${TagKey} pattern
|
|
484
|
+
assert _matches_condition_key_pattern(
|
|
485
|
+
"aws:ResourceTag/owner", "aws:ResourceTag/${TagKey}"
|
|
486
|
+
)
|
|
487
|
+
assert _matches_condition_key_pattern(
|
|
488
|
+
"aws:RequestTag/Department", "aws:RequestTag/${TagKey}"
|
|
489
|
+
)
|
|
490
|
+
|
|
491
|
+
@pytest.mark.asyncio
|
|
492
|
+
async def test_condition_key_in_list(self):
|
|
493
|
+
"""Test _condition_key_in_list helper function."""
|
|
494
|
+
from iam_validator.core.aws_service.validators import _condition_key_in_list
|
|
495
|
+
|
|
496
|
+
condition_keys = [
|
|
497
|
+
"aws:ResourceTag/${TagKey}",
|
|
498
|
+
"ssm:resourceTag/tag-key",
|
|
499
|
+
"ssm:Overwrite",
|
|
500
|
+
"ssm:Policies",
|
|
501
|
+
]
|
|
502
|
+
|
|
503
|
+
# Should match pattern-based keys
|
|
504
|
+
assert _condition_key_in_list("ssm:resourceTag/owner", condition_keys)
|
|
505
|
+
assert _condition_key_in_list("aws:ResourceTag/Environment", condition_keys)
|
|
506
|
+
|
|
507
|
+
# Should match exact keys
|
|
508
|
+
assert _condition_key_in_list("ssm:Overwrite", condition_keys)
|
|
509
|
+
assert _condition_key_in_list("ssm:Policies", condition_keys)
|
|
510
|
+
|
|
511
|
+
# Should not match invalid keys
|
|
512
|
+
assert not _condition_key_in_list("ssm:InvalidKey", condition_keys)
|
|
513
|
+
assert not _condition_key_in_list("invalid:key", condition_keys)
|
|
514
|
+
|
|
515
|
+
@pytest.mark.asyncio
|
|
516
|
+
async def test_ssm_put_parameter_with_resource_tag(self):
|
|
517
|
+
"""Integration test: ssm:resourceTag/owner should be valid for ssm:PutParameter."""
|
|
518
|
+
from iam_validator.core.aws_service import AWSServiceFetcher
|
|
519
|
+
|
|
520
|
+
async with AWSServiceFetcher() as fetcher:
|
|
521
|
+
# Test that ssm:resourceTag/owner is now valid for ssm:PutParameter
|
|
522
|
+
result = await fetcher.validate_condition_key(
|
|
523
|
+
"ssm:PutParameter",
|
|
524
|
+
"ssm:resourceTag/owner",
|
|
525
|
+
["arn:aws:ssm:us-east-1:123456789012:parameter/test"],
|
|
526
|
+
)
|
|
527
|
+
|
|
528
|
+
assert result.is_valid is True
|
|
529
|
+
assert result.error_message is None
|
|
530
|
+
|
|
531
|
+
@pytest.mark.asyncio
|
|
532
|
+
async def test_invalid_ssm_condition_key(self):
|
|
533
|
+
"""Integration test: invalid condition keys should still be rejected."""
|
|
534
|
+
from iam_validator.core.aws_service import AWSServiceFetcher
|
|
535
|
+
|
|
536
|
+
async with AWSServiceFetcher() as fetcher:
|
|
537
|
+
# Test that truly invalid keys are still rejected
|
|
538
|
+
result = await fetcher.validate_condition_key(
|
|
539
|
+
"ssm:PutParameter",
|
|
540
|
+
"ssm:completelyInvalidKey",
|
|
541
|
+
["arn:aws:ssm:us-east-1:123456789012:parameter/test"],
|
|
542
|
+
)
|
|
543
|
+
|
|
544
|
+
assert result.is_valid is False
|
|
545
|
+
assert result.error_message is not None
|
|
546
|
+
|
|
547
|
+
|
|
548
|
+
class TestTagKeyValidation:
|
|
549
|
+
"""Test AWS tag key format validation."""
|
|
550
|
+
|
|
551
|
+
def test_valid_tag_keys(self):
|
|
552
|
+
"""Test that valid AWS tag keys are accepted."""
|
|
553
|
+
from iam_validator.core.aws_service.validators import _is_valid_tag_key
|
|
554
|
+
|
|
555
|
+
# Standard alphanumeric tag keys
|
|
556
|
+
assert _is_valid_tag_key("owner")
|
|
557
|
+
assert _is_valid_tag_key("Environment")
|
|
558
|
+
assert _is_valid_tag_key("CostCenter")
|
|
559
|
+
assert _is_valid_tag_key("Project123")
|
|
560
|
+
|
|
561
|
+
# Tag keys with allowed special characters
|
|
562
|
+
assert _is_valid_tag_key("cost-center")
|
|
563
|
+
assert _is_valid_tag_key("project_name")
|
|
564
|
+
assert _is_valid_tag_key("env.type")
|
|
565
|
+
assert _is_valid_tag_key("team:backend")
|
|
566
|
+
assert _is_valid_tag_key("path/to/resource")
|
|
567
|
+
assert _is_valid_tag_key("email@domain")
|
|
568
|
+
assert _is_valid_tag_key("key+value")
|
|
569
|
+
assert _is_valid_tag_key("key=value")
|
|
570
|
+
|
|
571
|
+
# Tag keys with spaces (allowed by AWS)
|
|
572
|
+
assert _is_valid_tag_key("Cost Center")
|
|
573
|
+
assert _is_valid_tag_key("Project Name")
|
|
574
|
+
|
|
575
|
+
# Mixed special characters
|
|
576
|
+
assert _is_valid_tag_key("my-project_v2.0:prod/main@team+alpha")
|
|
577
|
+
|
|
578
|
+
def test_invalid_tag_keys(self):
|
|
579
|
+
"""Test that invalid AWS tag keys are rejected."""
|
|
580
|
+
from iam_validator.core.aws_service.validators import _is_valid_tag_key
|
|
581
|
+
|
|
582
|
+
# Empty tag key
|
|
583
|
+
assert not _is_valid_tag_key("")
|
|
584
|
+
|
|
585
|
+
# Tag keys with invalid characters
|
|
586
|
+
assert not _is_valid_tag_key("key<value")
|
|
587
|
+
assert not _is_valid_tag_key("key>value")
|
|
588
|
+
assert not _is_valid_tag_key("key&value")
|
|
589
|
+
assert not _is_valid_tag_key("key|value")
|
|
590
|
+
assert not _is_valid_tag_key("key\\value")
|
|
591
|
+
assert not _is_valid_tag_key("key*value")
|
|
592
|
+
assert not _is_valid_tag_key("key?value")
|
|
593
|
+
assert not _is_valid_tag_key("key#value")
|
|
594
|
+
assert not _is_valid_tag_key("key$value")
|
|
595
|
+
assert not _is_valid_tag_key("key%value")
|
|
596
|
+
assert not _is_valid_tag_key("key^value")
|
|
597
|
+
assert not _is_valid_tag_key("key!value")
|
|
598
|
+
assert not _is_valid_tag_key("key`value")
|
|
599
|
+
assert not _is_valid_tag_key("key~value")
|
|
600
|
+
assert not _is_valid_tag_key("key(value)")
|
|
601
|
+
assert not _is_valid_tag_key("key[value]")
|
|
602
|
+
assert not _is_valid_tag_key("key{value}")
|
|
603
|
+
assert not _is_valid_tag_key('key"value')
|
|
604
|
+
assert not _is_valid_tag_key("key'value")
|
|
605
|
+
|
|
606
|
+
def test_tag_key_length_limits(self):
|
|
607
|
+
"""Test AWS tag key length constraints (1-128 characters)."""
|
|
608
|
+
from iam_validator.core.aws_service.validators import _is_valid_tag_key
|
|
609
|
+
|
|
610
|
+
# Minimum length (1 character)
|
|
611
|
+
assert _is_valid_tag_key("a")
|
|
612
|
+
|
|
613
|
+
# Maximum length (128 characters)
|
|
614
|
+
assert _is_valid_tag_key("a" * 128)
|
|
615
|
+
|
|
616
|
+
# Over maximum length (129 characters)
|
|
617
|
+
assert not _is_valid_tag_key("a" * 129)
|
|
618
|
+
|
|
619
|
+
# Way over maximum
|
|
620
|
+
assert not _is_valid_tag_key("a" * 500)
|
|
621
|
+
|
|
622
|
+
def test_pattern_matching_rejects_invalid_tag_keys(self):
|
|
623
|
+
"""Test that pattern matching rejects condition keys with invalid tag key formats."""
|
|
624
|
+
from iam_validator.core.aws_service.validators import _matches_condition_key_pattern
|
|
625
|
+
|
|
626
|
+
# Invalid characters in tag key portion should not match
|
|
627
|
+
assert not _matches_condition_key_pattern(
|
|
628
|
+
"ssm:resourceTag/invalid<tag", "ssm:resourceTag/tag-key"
|
|
629
|
+
)
|
|
630
|
+
assert not _matches_condition_key_pattern(
|
|
631
|
+
"aws:ResourceTag/bad*key", "aws:ResourceTag/${TagKey}"
|
|
632
|
+
)
|
|
633
|
+
assert not _matches_condition_key_pattern(
|
|
634
|
+
"ssm:resourceTag/has#hash", "ssm:resourceTag/tag-key"
|
|
635
|
+
)
|
|
636
|
+
|
|
637
|
+
# Empty tag key should not match
|
|
638
|
+
assert not _matches_condition_key_pattern(
|
|
639
|
+
"ssm:resourceTag/", "ssm:resourceTag/tag-key"
|
|
640
|
+
)
|
|
641
|
+
|
|
642
|
+
# Tag key exceeding 128 characters should not match
|
|
643
|
+
long_tag_key = "a" * 129
|
|
644
|
+
assert not _matches_condition_key_pattern(
|
|
645
|
+
f"ssm:resourceTag/{long_tag_key}", "ssm:resourceTag/tag-key"
|
|
646
|
+
)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/.github/workflows/pre-release.yml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/access-analyzer.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/action-recommendations.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/amplifybackend.json
RENAMED
|
File without changes
|
{iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/amplifyuibuilder.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/app-integrations.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/application-signals.json
RENAMED
|
File without changes
|
|
File without changes
|
{iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/applicationinsights.json
RENAMED
|
File without changes
|
{iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/appmesh-preview.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/arc-region-switch.json
RENAMED
|
File without changes
|
{iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/arc-zonal-shift.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/autoscaling-plans.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{iam_policy_validator-1.14.1 → iam_policy_validator-1.14.3}/aws_services/aws-marketplace.json
RENAMED
|
File without changes
|