gitextract_81zemmz3/ ├── .cfnlintrc ├── .coveragerc ├── .dockerignore ├── .flake8 ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ ├── best_practices_issue.md │ │ ├── checks_issue.md │ │ ├── crash_report.md │ │ ├── feature_request.md │ │ ├── graph_issue.md │ │ ├── integrations_issue.md │ │ ├── languages_issue.md │ │ ├── noise_issue.md │ │ ├── outputs_issue.md │ │ └── skips_issue.md │ ├── PULL_REQUEST_TEMPLATE.md │ ├── actionlint.yaml │ ├── checkov.yaml │ ├── codeql-config.yml │ ├── dependabot.yml │ ├── exclude-patterns.txt │ ├── pr-title-checker-config.json │ ├── release-changelog-config.json │ ├── stale.yml │ └── workflows/ │ ├── build.yml │ ├── codeql-analysis.yml │ ├── coverage.yaml │ ├── jekyll-gh-pages.yml │ ├── nightly.yml │ ├── pipenv-update.yml │ ├── pr-test.yml │ ├── pr-title.yml │ ├── security-shared.yml │ └── security.yml ├── .gitignore ├── .gitmodules ├── .gitpod.Dockerfile ├── .gitpod.yml ├── .pre-commit-config.yaml ├── .pre-commit-hooks.yaml ├── .swm/ │ ├── creating-a-solver.gm0ti.sw.md │ └── swimm.json ├── CHANGELOG.md ├── CNAME ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── Dockerfile ├── INTHEWILD.md ├── LICENSE ├── Pipfile ├── README.md ├── SECURITY.md ├── bin/ │ ├── checkov │ └── checkov.cmd ├── cdk_integration_tests/ │ ├── __init__.py │ ├── prepare_data.sh │ ├── run_integration_tests.sh │ ├── src/ │ │ ├── python/ │ │ │ ├── ALBDropHttpHeaders/ │ │ │ │ ├── fail__1__.py │ │ │ │ └── pass.py │ │ │ ├── ALBListenerHTTPS/ │ │ │ │ ├── fail__1__.py │ │ │ │ └── pass.py │ │ │ ├── APIGatewayAccessLogging/ │ │ │ │ ├── fail__2__.py │ │ │ │ └── pass.py │ │ │ ├── APIGatewayAuthorization/ │ │ │ │ ├── fail__1__.py │ │ │ │ └── pass.py │ │ │ ├── APIGatewayCacheEnable/ │ │ │ │ ├── fail__2__.py │ │ │ │ └── pass.py │ │ │ ├── APIGatewayV2AccessLogging/ │ │ │ │ ├── fail__2__.py │ │ │ │ └── pass.py │ │ │ ├── APIGatewayXray/ │ │ │ │ ├── fail__2__.py │ │ │ │ └── pass.py │ │ │ ├── AmazonMQBrokerPublicAccess/ │ │ │ │ ├── fail__1__.py │ │ │ │ └── pass.py │ │ │ ├── AppSyncFieldLevelLogs/ │ │ │ │ ├── fail__1__.py │ │ │ │ └── pass.py │ │ │ ├── AppSyncLogging/ │ │ │ │ ├── fail__1__.py │ │ │ │ └── pass.py │ │ │ ├── AthenaWorkgroupConfiguration/ │ │ │ │ ├── fail__1__.py │ │ │ │ └── pass.py │ │ │ ├── AuroraEncryption/ │ │ │ │ ├── fail__1__.py │ │ │ │ └── pass.py │ │ │ ├── BackupVaultEncrypted/ │ │ │ │ ├── fail__1__.py │ │ │ │ └── pass.py │ │ │ ├── CloudFrontTLS12/ │ │ │ │ ├── fail__2__.py │ │ │ │ └── pass.py │ │ │ ├── CloudTrailLogValidation/ │ │ │ │ ├── fail__1__.py │ │ │ │ └── pass.py │ │ │ ├── CloudWatchLogGroupKMSKey/ │ │ │ │ ├── fail__1__.py │ │ │ │ └── pass.py │ │ │ ├── CloudWatchLogGroupRetention/ │ │ │ │ ├── fail__1__.py │ │ │ │ └── pass.py │ │ │ ├── CloudfrontDistributionEncryption/ │ │ │ │ ├── fail__2__.py │ │ │ │ └── pass.py │ │ │ ├── CloudfrontDistributionLogging/ │ │ │ │ ├── fail__1__.py │ │ │ │ └── pass.py │ │ │ ├── CloudtrailEncryption/ │ │ │ │ ├── fail__1__.py │ │ │ │ └── pass.py │ │ │ ├── CloudtrailMultiRegion/ │ │ │ │ ├── fail__1__.py │ │ │ │ └── pass.py │ │ │ ├── CodeBuildProjectEncryption/ │ │ │ │ ├── fail__1__.py │ │ │ │ └── pass.py │ │ │ ├── DAXEncryption/ │ │ │ │ ├── fail__1__.py │ │ │ │ └── pass.py │ │ │ ├── DMSReplicationInstancePubliclyAccessible/ │ │ │ │ ├── fail__1__.py │ │ │ │ └── pass.py │ │ │ ├── DocDBAuditLogs/ │ │ │ │ ├── fail__1__.py │ │ │ │ └── pass.py │ │ │ ├── DocDBEncryption/ │ │ │ │ ├── fail__1__.py │ │ │ │ └── pass.py │ │ │ ├── DocDBTLS/ │ │ │ │ ├── fail__1__.py │ │ │ │ └── pass.py │ │ │ ├── DynamodbGlobalTableRecovery/ │ │ │ │ ├── fail__1__.py │ │ │ │ └── pass.py │ │ │ ├── DynamodbRecovery/ │ │ │ │ ├── fail__1__.py │ │ │ │ └── pass.py │ │ │ ├── EBSEncryption/ │ │ │ │ ├── fail__1__.py │ │ │ │ └── pass.py │ │ │ ├── EC2PublicIP/ │ │ │ │ ├── fail__2__.py │ │ │ │ └── pass.py │ │ │ ├── ECRImageScanning/ │ │ │ │ ├── fail__1__.py │ │ │ │ └── pass.py │ │ │ ├── ECRImmutableTags/ │ │ │ │ ├── fail__1__.py │ │ │ │ └── pass.py │ │ │ ├── ECRRepositoryEncrypted/ │ │ │ │ ├── fail__1__.py │ │ │ │ └── pass.py │ │ │ ├── ECSClusterContainerInsights/ │ │ │ │ ├── fail__1__.py │ │ │ │ └── pass.py │ │ │ ├── ECSTaskDefinitionEFSVolumeEncryption/ │ │ │ │ ├── fail__1__.py │ │ │ │ └── pass.py │ │ │ ├── EFSEncryptionEnabled/ │ │ │ │ ├── fail__1__.py │ │ │ │ └── pass.py │ │ │ ├── EKSSecretsEncryption/ │ │ │ │ ├── fail__1__.py │ │ │ │ └── pass.py │ │ │ ├── ELBAccessLogs/ │ │ │ │ ├── fail__1__.py │ │ │ │ └── pass.py │ │ │ ├── ELBv2AccessLogs/ │ │ │ │ ├── fail__2__.py │ │ │ │ └── pass.py │ │ │ ├── ElasticacheReplicationGroupEncryptionAtRest/ │ │ │ │ ├── fail__1__.py │ │ │ │ └── pass.py │ │ │ ├── ElasticacheReplicationGroupEncryptionAtTransit/ │ │ │ │ ├── fail__1__.py │ │ │ │ └── pass.py │ │ │ ├── ElasticacheReplicationGroupEncryptionAtTransitAuthToken/ │ │ │ │ ├── fail__2__.py │ │ │ │ └── pass.py │ │ │ ├── ElasticsearchDomainEnforceHTTPS/ │ │ │ │ ├── fail__1__.py │ │ │ │ └── pass.py │ │ │ ├── ElasticsearchDomainLogging/ │ │ │ │ ├── fail__2__.py │ │ │ │ └── pass.py │ │ │ ├── ElasticsearchEncryption/ │ │ │ │ ├── fail__1__.py │ │ │ │ └── pass.py │ │ │ ├── ElasticsearchNodeToNodeEncryption/ │ │ │ │ ├── fail__1__.py │ │ │ │ └── pass.py │ │ │ ├── GlueDataCatalogEncryption/ │ │ │ │ ├── fail__2__.py │ │ │ │ └── pass.py │ │ │ ├── GlueSecurityConfiguration/ │ │ │ │ ├── fail__2__.py │ │ │ │ └── pass.py │ │ │ ├── GlueSecurityConfigurationEnabled/ │ │ │ │ ├── fail__3__.py │ │ │ │ └── pass.py │ │ │ ├── IAMPolicyAttachedToGroupOrRoles/ │ │ │ │ ├── fail__1__.py │ │ │ │ └── pass.py │ │ │ ├── KinesisStreamEncryptionType/ │ │ │ │ ├── fail__1__.py │ │ │ │ └── pass.py │ │ │ ├── LambdaDLQConfigured/ │ │ │ │ ├── fail__2__.py │ │ │ │ └── pass.py │ │ │ ├── LambdaEnvironmentCredentials/ │ │ │ │ ├── fail__2__.py │ │ │ │ └── pass.py │ │ │ ├── LambdaEnvironmentEncryptionSettings/ │ │ │ │ ├── fail__2__.py │ │ │ │ └── pass.py │ │ │ ├── LambdaFunctionLevelConcurrentExecutionLimit/ │ │ │ │ ├── fail__2__.py │ │ │ │ └── pass.py │ │ │ ├── LambdaInVPC/ │ │ │ │ ├── fail__2__.py │ │ │ │ └── pass.py │ │ │ ├── LaunchConfigurationEBSEncryption/ │ │ │ │ ├── fail__1__.py │ │ │ │ └── pass.py │ │ │ ├── NeptuneClusterStorageEncrypted/ │ │ │ │ ├── fail__2__.py │ │ │ │ └── pass.py │ │ │ ├── RDSEnhancedMonitorEnabled/ │ │ │ │ ├── fail__1__.py │ │ │ │ └── pass.py │ │ │ ├── RDSMultiAZEnabled/ │ │ │ │ ├── fail__1__.py │ │ │ │ └── pass.py │ │ │ ├── RDSPubliclyAccessible/ │ │ │ │ ├── fail__1__.py │ │ │ │ └── pass.py │ │ │ ├── RedShiftSSL/ │ │ │ │ ├── fail__2__.py │ │ │ │ └── pass.py │ │ │ ├── RedshiftClusterEncryption/ │ │ │ │ ├── fail__1__.py │ │ │ │ └── pass.py │ │ │ ├── RedshiftClusterLogging/ │ │ │ │ ├── fail__1__.py │ │ │ │ └── pass.py │ │ │ ├── RedshiftClusterPubliclyAccessible/ │ │ │ │ ├── fail__1__.py │ │ │ │ └── pass.py │ │ │ ├── RedshiftInEc2ClassicMode/ │ │ │ │ ├── fail__1__.py │ │ │ │ └── pass.py │ │ │ ├── S3BlockPublicACLs/ │ │ │ │ ├── fail__2__.py │ │ │ │ └── pass.py │ │ │ ├── S3BlockPublicPolicy/ │ │ │ │ ├── fail__2__.py │ │ │ │ └── pass.py │ │ │ ├── S3BucketEncryption/ │ │ │ │ ├── fail__2__.py │ │ │ │ └── pass.py │ │ │ ├── S3BucketKMSEncryption/ │ │ │ │ ├── fail__3__.py │ │ │ │ └── pass.py │ │ │ ├── S3BucketLogging/ │ │ │ │ ├── fail.py │ │ │ │ └── pass.py │ │ │ ├── S3BucketPublicAccessBlock/ │ │ │ │ ├── fail.py │ │ │ │ └── pass.py │ │ │ ├── S3BucketVersioning/ │ │ │ │ ├── fail__2__.py │ │ │ │ └── pass.py │ │ │ ├── S3IgnorePublicACLs/ │ │ │ │ ├── fail__2__.py │ │ │ │ └── pass.py │ │ │ ├── S3PublicACLRead/ │ │ │ │ ├── fail__3__.py │ │ │ │ └── pass.py │ │ │ ├── S3PublicACLWrite/ │ │ │ │ ├── fail__2__.py │ │ │ │ └── pass.py │ │ │ ├── S3RestrictPublicBuckets/ │ │ │ │ ├── fail__2__.py │ │ │ │ └── pass.py │ │ │ ├── SNSTopicEncryption/ │ │ │ │ ├── fail.py │ │ │ │ └── pass.py │ │ │ ├── SQSQueueEncryption/ │ │ │ │ ├── fail__2__.py │ │ │ │ └── pass.py │ │ │ ├── SecretManagerSecretEncrypted/ │ │ │ │ ├── fail__2__.py │ │ │ │ └── pass.py │ │ │ ├── SecurityGroupRuleDescription/ │ │ │ │ ├── fail__4__.py │ │ │ │ └── pass.py │ │ │ ├── TransferServerIsPublic/ │ │ │ │ ├── fail__1__.py │ │ │ │ └── pass.py │ │ │ ├── VPCEndpointAcceptanceConfigured/ │ │ │ │ ├── fail__1__.py │ │ │ │ └── pass.py │ │ │ ├── WAFEnabled/ │ │ │ │ ├── fail__1__.py │ │ │ │ └── pass.py │ │ │ ├── WorkspaceRootVolumeEncrypted/ │ │ │ │ ├── fail__1__.py │ │ │ │ └── pass.py │ │ │ ├── WorkspaceUserVolumeEncrypted/ │ │ │ │ ├── fail__1__.py │ │ │ │ └── pass.py │ │ │ └── s3.py │ │ └── typescript/ │ │ ├── ALBDropHttpHeaders/ │ │ │ ├── fail.ts │ │ │ └── pass.ts │ │ ├── ALBListenerHTTPS/ │ │ │ ├── fail.ts │ │ │ └── pass.ts │ │ ├── APIGatewayAccessLogging/ │ │ │ ├── fail.ts │ │ │ └── pass.ts │ │ ├── APIGatewayAuthorization/ │ │ │ ├── fail.ts │ │ │ ├── fail__2__.ts │ │ │ ├── pass.ts │ │ │ └── pass__2__.ts │ │ ├── APIGatewayCacheEnable/ │ │ │ ├── fail.ts │ │ │ └── pass.ts │ │ ├── APIGatewayV2AccessLogging/ │ │ │ ├── fail.ts │ │ │ └── pass.ts │ │ ├── APIGatewayXray/ │ │ │ ├── fail.ts │ │ │ └── pass.ts │ │ ├── AmazonMQBrokerPublicAccess/ │ │ │ ├── fail.ts │ │ │ └── pass.ts │ │ ├── AppSyncFieldLevelLogs/ │ │ │ ├── fail.ts │ │ │ └── pass.ts │ │ ├── AppSyncLogging/ │ │ │ ├── fail.ts │ │ │ └── pass.ts │ │ ├── AthenaWorkgroupConfiguration/ │ │ │ ├── fail.ts │ │ │ ├── fail__2__.ts │ │ │ └── pass.ts │ │ ├── AuroraEncryption/ │ │ │ ├── fail.ts │ │ │ └── pass.ts │ │ ├── BackupVaultEncrypted/ │ │ │ ├── fail.ts │ │ │ └── pass.ts │ │ ├── CloudFrontTLS12/ │ │ │ ├── fail.ts │ │ │ └── pass.ts │ │ ├── CloudTrailLogValidation/ │ │ │ ├── fail.ts │ │ │ └── pass.ts │ │ ├── CloudWatchLogGroupKMSKey/ │ │ │ ├── fail.ts │ │ │ └── pass.ts │ │ ├── CloudWatchLogGroupRetention/ │ │ │ ├── fail.ts │ │ │ └── pass.ts │ │ ├── CloudfrontDistributionEncryption/ │ │ │ ├── fail__2__.ts │ │ │ └── pass.ts │ │ ├── CloudfrontDistributionLogging/ │ │ │ ├── fail__2__.ts │ │ │ └── pass.ts │ │ ├── CloudtrailEncryption/ │ │ │ ├── fail.ts │ │ │ └── pass.ts │ │ ├── CloudtrailMultiRegion/ │ │ │ ├── fail__2__.ts │ │ │ └── pass.ts │ │ ├── CodeBuildProjectEncryption/ │ │ │ ├── fail.ts │ │ │ └── pass.ts │ │ ├── DAXEncryption/ │ │ │ ├── fail__2__.ts │ │ │ └── pass.ts │ │ ├── DMSReplicationInstancePubliclyAccessible/ │ │ │ ├── fail.ts │ │ │ └── pass.ts │ │ ├── DocDBAuditLogs/ │ │ │ ├── fail__2__.ts │ │ │ └── pass.ts │ │ ├── DocDBEncryption/ │ │ │ ├── fail__2__.ts │ │ │ └── pass.ts │ │ ├── DocDBTLS/ │ │ │ ├── fail.ts │ │ │ └── pass.ts │ │ ├── DynamodbGlobalTableRecovery/ │ │ │ ├── fail.ts │ │ │ └── pass.ts │ │ ├── DynamodcRecovery/ │ │ │ ├── fail__2__.ts │ │ │ └── pass.ts │ │ ├── EBSEncryption/ │ │ │ ├── fail__2__.ts │ │ │ └── pass.ts │ │ ├── EC2PublicIP/ │ │ │ ├── fail.ts │ │ │ ├── fail_2.ts │ │ │ └── pass.ts │ │ ├── ECRImageScanning/ │ │ │ ├── fail.ts │ │ │ └── pass.ts │ │ ├── ECRImmutableTags/ │ │ │ ├── fail.ts │ │ │ └── pass.ts │ │ ├── ECRRepositoryEncrypted/ │ │ │ ├── fail.ts │ │ │ ├── pass.ts │ │ │ └── pass_2.ts │ │ ├── ECSClusterContainerInsights/ │ │ │ ├── fail.ts │ │ │ └── pass.ts │ │ ├── ECSTaskDefinitionEFSVolumeEncryption/ │ │ │ ├── fail.ts │ │ │ ├── fail_2.ts │ │ │ └── pass.ts │ │ ├── EFSEncryptionEnabled/ │ │ │ ├── fail.ts │ │ │ └── pass.ts │ │ ├── EKSSecretsEncryption/ │ │ │ ├── fail.ts │ │ │ └── pass.ts │ │ ├── ELBAccessLogs/ │ │ │ ├── fail.ts │ │ │ └── pass.ts │ │ ├── ELBv2AccessLogs/ │ │ │ ├── fail.ts │ │ │ └── pass.ts │ │ ├── ElasticacheReplicationGroupEncryptionAtRest/ │ │ │ ├── fail.ts │ │ │ └── pass.ts │ │ ├── ElasticacheReplicationGroupEncryptionAtTransit/ │ │ │ ├── fail.ts │ │ │ └── pass.ts │ │ ├── ElasticacheReplicationGroupEncryptionAtTransitAuthToken/ │ │ │ ├── fail.ts │ │ │ ├── pass.ts │ │ │ └── pass_2.ts │ │ ├── ElasticsearchDomainEnforceHTTPS/ │ │ │ ├── fail.ts │ │ │ ├── fail_2.ts │ │ │ ├── pass.ts │ │ │ └── pass_2.ts │ │ ├── ElasticsearchDomainLogging/ │ │ │ ├── fail.ts │ │ │ ├── fail_2.ts │ │ │ ├── pass.ts │ │ │ └── pass_2.ts │ │ ├── ElasticsearchEncryption/ │ │ │ ├── fail.ts │ │ │ ├── fail2.ts │ │ │ └── pass.ts │ │ ├── ElasticsearchNodeToNodeEncryption/ │ │ │ ├── fail.ts │ │ │ ├── fail2.ts │ │ │ └── pass.ts │ │ ├── GlueDataCatalogEncryption/ │ │ │ ├── fail.ts │ │ │ ├── fail2.ts │ │ │ └── pass.ts │ │ ├── GlueSecurityConfiguration/ │ │ │ ├── fail.ts │ │ │ ├── fail2.ts │ │ │ └── pass.ts │ │ ├── GlueSecurityConfigurationEnabled/ │ │ │ ├── fail.ts │ │ │ ├── fail2.ts │ │ │ └── pass.ts │ │ ├── IAMPolicyAttachedToGroupOrRoles/ │ │ │ ├── fail.ts │ │ │ ├── fail2.ts │ │ │ └── pass.ts │ │ ├── KinesisStreamEncryptionType/ │ │ │ ├── fail.ts │ │ │ ├── fail2.ts │ │ │ └── pass.ts │ │ ├── LambdaDLQConfigured/ │ │ │ ├── fail.ts │ │ │ ├── fail2.ts │ │ │ └── pass.ts │ │ ├── LambdaEnvironmentCredentials/ │ │ │ ├── fail.ts │ │ │ ├── fail2.ts │ │ │ └── pass.ts │ │ ├── LambdaEnvironmentEncryptionSettings/ │ │ │ ├── fail.ts │ │ │ ├── fail2.ts │ │ │ └── pass.ts │ │ ├── LambdaFunctionLevelConcurrentExecutionLimit/ │ │ │ ├── fail.ts │ │ │ ├── fail2.ts │ │ │ └── pass.ts │ │ ├── LambdaInVPC/ │ │ │ ├── fail.ts │ │ │ ├── fail2.ts │ │ │ └── pass.ts │ │ ├── LaunchConfigurationEBSEncryption/ │ │ │ ├── fail.ts │ │ │ ├── fail2.ts │ │ │ └── pass.ts │ │ ├── NeptuneClusterStorageEncrypted/ │ │ │ ├── fail.ts │ │ │ ├── fail2.ts │ │ │ └── pass.ts │ │ ├── RDSEnhancedMonitorEnabled/ │ │ │ ├── fail2.ts │ │ │ └── pass.ts │ │ ├── RDSMultiAZEnabled/ │ │ │ ├── fail.ts │ │ │ └── pass.ts │ │ ├── RDSPubliclyAccessible/ │ │ │ ├── fail.ts │ │ │ └── pass.ts │ │ ├── RedShiftSSL/ │ │ │ ├── fail__2__.ts │ │ │ └── pass.ts │ │ ├── RedshiftClusterEncryption/ │ │ │ ├── fail__2__.ts │ │ │ └── pass.ts │ │ ├── RedshiftClusterLogging/ │ │ │ ├── fail.ts │ │ │ └── pass.ts │ │ ├── RedshiftClusterPubliclyAccessible/ │ │ │ ├── fail.ts │ │ │ └── pass.ts │ │ ├── RedshiftInEc2ClassicMode/ │ │ │ ├── fail.ts │ │ │ └── pass.ts │ │ ├── S3BlockPublicACLs/ │ │ │ ├── fail.ts │ │ │ ├── fail__3__.ts │ │ │ ├── pass.ts │ │ │ ├── pass2.ts │ │ │ └── pass3.ts │ │ ├── S3BlockPublicPolicy/ │ │ │ ├── fail.ts │ │ │ └── pass.ts │ │ ├── S3BucketEncryption/ │ │ │ ├── fail2__2__.ts │ │ │ ├── fail__2__.ts │ │ │ ├── pass.ts │ │ │ └── pass2.ts │ │ ├── S3BucketKMSEncryption/ │ │ │ ├── fail2__3__.ts │ │ │ ├── fail__3__.ts │ │ │ ├── pass.ts │ │ │ └── pass2.ts │ │ ├── S3BucketLogging/ │ │ │ ├── fail.ts │ │ │ ├── fail2.ts │ │ │ ├── pass.ts │ │ │ └── pass2.ts │ │ ├── S3BucketPublicAccessBlock/ │ │ │ ├── fail.ts │ │ │ ├── fail2.ts │ │ │ ├── pass.ts │ │ │ └── pass2.ts │ │ ├── S3BucketVersioning/ │ │ │ ├── fail2__2__.ts │ │ │ ├── fail__2__.ts │ │ │ ├── pass.ts │ │ │ └── pass2.ts │ │ ├── S3PublicACLRead/ │ │ │ ├── fail__3__.ts │ │ │ └── pass.ts │ │ ├── S3RestrictPublicBuckets/ │ │ │ ├── fail__2__.ts │ │ │ └── pass.ts │ │ ├── SNSTopicEncryption/ │ │ │ ├── fail.ts │ │ │ └── pass.ts │ │ ├── SQSQueueEncryption/ │ │ │ ├── fail__2__.ts │ │ │ └── pass.ts │ │ ├── SecretManagerSecretEncrypted/ │ │ │ ├── fail__2__.ts │ │ │ └── pass.ts │ │ ├── SecurityGroupRuleDescription/ │ │ │ ├── fail__4__.ts │ │ │ └── pass.ts │ │ ├── TransferServerIsPublic/ │ │ │ ├── fail__1__.ts │ │ │ └── pass.ts │ │ ├── VPCEndpointAcceptanceConfigured/ │ │ │ ├── fail__2__.ts │ │ │ └── pass.ts │ │ ├── WAFEnabled/ │ │ │ ├── fail__1__.ts │ │ │ └── pass.ts │ │ ├── WorkspaceRootVolumeEncrypted/ │ │ │ ├── fail__1__.ts │ │ │ └── pass.ts │ │ ├── WorkspaceUserVolumeEncrypted/ │ │ │ ├── fail__1__.ts │ │ │ └── pass.ts │ │ └── s3.ts │ ├── test_checks_python.py │ ├── test_checks_typescript.py │ └── utils.py ├── checkov/ │ ├── __init__.py │ ├── ansible/ │ │ ├── __init__.py │ │ ├── checks/ │ │ │ ├── __init__.py │ │ │ ├── base_ansible_task_check.py │ │ │ ├── base_ansible_task_value_check.py │ │ │ ├── graph_checks/ │ │ │ │ ├── BlockErrorHandling.yaml │ │ │ │ ├── DnfDisableGpgCheck.yaml │ │ │ │ ├── DnfSslVerify.yaml │ │ │ │ ├── DnfValidateCerts.yaml │ │ │ │ ├── GetUrlHttpsOnly.yaml │ │ │ │ ├── PanosIPsecAuthenticationAlgorithms.yaml │ │ │ │ ├── PanosIPsecProtocols.yaml │ │ │ │ ├── PanosInterfaceMgmtProfileNoHTTP.yaml │ │ │ │ ├── PanosInterfaceMgmtProfileNoTelnet.yaml │ │ │ │ ├── PanosPolicyDescription.yaml │ │ │ │ ├── PanosPolicyLogForwarding.yaml │ │ │ │ ├── PanosPolicyLogSessionStart.yaml │ │ │ │ ├── PanosPolicyLoggingEnabled.yaml │ │ │ │ ├── PanosPolicyNoApplicationAny.yaml │ │ │ │ ├── PanosPolicyNoDSRI.yaml │ │ │ │ ├── PanosPolicyNoServiceAny.yaml │ │ │ │ ├── PanosPolicyNoSrcAnyDstAny.yaml │ │ │ │ ├── PanosPolicyNoSrcZoneAnyNoDstZoneAny.yaml │ │ │ │ ├── PanosZoneProtectionProfile.yaml │ │ │ │ ├── PanosZoneUserIDIncludeACL.yaml │ │ │ │ ├── UriHttpsOnly.yaml │ │ │ │ └── __init__.py │ │ │ ├── registry.py │ │ │ └── task/ │ │ │ ├── __init__.py │ │ │ ├── aws/ │ │ │ │ ├── EC2EBSOptimized.py │ │ │ │ ├── EC2PublicIP.py │ │ │ │ └── __init__.py │ │ │ └── builtin/ │ │ │ ├── AptAllowUnauthenticated.py │ │ │ ├── AptForce.py │ │ │ ├── GetUrlValidateCerts.py │ │ │ ├── UriValidateCerts.py │ │ │ ├── YumSslVerify.py │ │ │ ├── YumValidateCerts.py │ │ │ └── __init__.py │ │ ├── graph_builder/ │ │ │ ├── __init__.py │ │ │ ├── graph_components/ │ │ │ │ ├── __init__.py │ │ │ │ └── resource_types.py │ │ │ └── local_graph.py │ │ ├── runner.py │ │ └── utils.py │ ├── argo_workflows/ │ │ ├── __init__.py │ │ ├── checks/ │ │ │ ├── __init__.py │ │ │ ├── base_argo_workflows_check.py │ │ │ ├── registry.py │ │ │ └── template/ │ │ │ ├── DefaultServiceAccount.py │ │ │ ├── RunAsNonRoot.py │ │ │ └── __init__.py │ │ ├── common/ │ │ │ └── __init__.py │ │ └── runner.py │ ├── arm/ │ │ ├── __init__.py │ │ ├── base_parameter_check.py │ │ ├── base_registry.py │ │ ├── base_resource_check.py │ │ ├── base_resource_negative_value_check.py │ │ ├── base_resource_value_check.py │ │ ├── checks/ │ │ │ ├── __init__.py │ │ │ ├── graph_checks/ │ │ │ │ ├── AzureMLWorkspacePublicNetwork.yaml │ │ │ │ ├── AzureSpringCloudConfigWithVnet.yaml │ │ │ │ ├── SynapseLogMonitoringEnabledForSQLPool.yaml │ │ │ │ ├── SynapseSQLPoolHasSecurityAlertPolicy.yaml │ │ │ │ ├── SynapseSQLPoolHasVulnerabilityAssessment.yaml │ │ │ │ ├── SynapseWorkspaceHasExtendedAuditLogs.yaml │ │ │ │ └── __init__.py │ │ │ ├── parameter/ │ │ │ │ ├── SecureStringParameterNoHardcodedValue.py │ │ │ │ └── __init__.py │ │ │ └── resource/ │ │ │ ├── ACRAdminAccountDisabled.py │ │ │ ├── ACRAnonymousPullDisabled.py │ │ │ ├── ACRContainerScanEnabled.py │ │ │ ├── ACREnableImageQuarantine.py │ │ │ ├── ACREnableZoneRedundancy.py │ │ │ ├── ACRPublicNetworkAccessDisabled.py │ │ │ ├── AKSApiServerAuthorizedIpRanges.py │ │ │ ├── AKSDashboardDisabled.py │ │ │ ├── AKSEncryptionAtHostEnabled.py │ │ │ ├── AKSEphemeralOSDisks.py │ │ │ ├── AKSLocalAdminDisabled.py │ │ │ ├── AKSLoggingEnabled.py │ │ │ ├── AKSMaxPodsMinimum.py │ │ │ ├── AKSNetworkPolicy.py │ │ │ ├── AKSPoolTypeIsScaleSet.py │ │ │ ├── AKSRbacEnabled.py │ │ │ ├── AKSUpgradeChannel.py │ │ │ ├── APIManagementMinTLS12.py │ │ │ ├── APIManagementPublicAccess.py │ │ │ ├── APIServicesUseVirtualNetwork.py │ │ │ ├── AkSSecretStoreRotation.py │ │ │ ├── AppGWDefinesSecureProtocols.py │ │ │ ├── AppGatewayWAFACLCVE202144228.py │ │ │ ├── AppServiceAuthentication.py │ │ │ ├── AppServiceClientCertificate.py │ │ │ ├── AppServiceDetailedErrorMessagesEnabled.py │ │ │ ├── AppServiceDisallowCORS.py │ │ │ ├── AppServiceDotnetFrameworkVersion.py │ │ │ ├── AppServiceEnableFailedRequest.py │ │ │ ├── AppServiceFTPSState.py │ │ │ ├── AppServiceHTTPSOnly.py │ │ │ ├── AppServiceHttpLoggingEnabled.py │ │ │ ├── AppServiceHttps20Enabled.py │ │ │ ├── AppServiceIdentity.py │ │ │ ├── AppServiceIdentityProviderEnabled.py │ │ │ ├── AppServiceInstanceMinimum.py │ │ │ ├── AppServiceJavaVersion.py │ │ │ ├── AppServiceMinTLSVersion.py │ │ │ ├── AppServicePHPVersion.py │ │ │ ├── AppServicePlanZoneRedundant.py │ │ │ ├── AppServicePublicAccessDisabled.py │ │ │ ├── AppServicePythonVersion.py │ │ │ ├── AppServiceRemoteDebuggingNotEnabled.py │ │ │ ├── AppServiceSetHealthCheck.py │ │ │ ├── AppServiceSlotDebugDisabled.py │ │ │ ├── AppServiceSlotHTTPSOnly.py │ │ │ ├── AppServiceUsedAzureFiles.py │ │ │ ├── AutomationEncrypted.py │ │ │ ├── AzureBatchAccountEndpointAccessDefaultAction.py │ │ │ ├── AzureBatchAccountUsesKeyVaultEncryption.py │ │ │ ├── AzureDataExplorerDoubleEncryptionEnabled.py │ │ │ ├── AzureDefenderOnKeyVaults.py │ │ │ ├── AzureDefenderOnKubernetes.py │ │ │ ├── AzureDefenderOnSqlServersVMS.py │ │ │ ├── AzureDefenderOnStorage.py │ │ │ ├── AzureFirewallDenyThreatIntelMode.py │ │ │ ├── AzureFrontDoorEnablesWAF.py │ │ │ ├── AzureInstanceExtensions.py │ │ │ ├── AzureInstancePassword.py │ │ │ ├── AzureMLWorkspacePrivateEndpoint.py │ │ │ ├── AzureManagedDiscEncryption.py │ │ │ ├── AzureManagedDiskEncryptionSet.py │ │ │ ├── AzureScaleSetPassword.py │ │ │ ├── AzureSearchSLAIndex.py │ │ │ ├── AzureSearchSLAQueryUpdates.py │ │ │ ├── AzureServiceFabricClusterProtectionLevel.py │ │ │ ├── AzureSparkPoolIsolatedComputeEnabled.py │ │ │ ├── AzureSynapseWorkspaceVAisEnabled.py │ │ │ ├── AzureSynapseWorkspacesHaveNoIPFirewallRulesAttached.py │ │ │ ├── CognitiveServicesConfigureIdentity.py │ │ │ ├── CognitiveServicesDisablesPublicNetwork.py │ │ │ ├── CognitiveServicesEnableLocalAuth.py │ │ │ ├── CosmosDBAccountsRestrictedAccess.py │ │ │ ├── CosmosDBDisableAccessKeyWrite.py │ │ │ ├── CosmosDBDisablesPublicNetwork.py │ │ │ ├── CosmosDBHaveCMK.py │ │ │ ├── CosmosDBLocalAuthDisabled.py │ │ │ ├── CustomRoleDefinitionSubscriptionOwner.py │ │ │ ├── DataExplorerUsesDiskEncryption.py │ │ │ ├── DataFactoryNoPublicNetworkAccess.py │ │ │ ├── DataFactoryUsesGitRepository.py │ │ │ ├── DataLakeStoreEncryption.py │ │ │ ├── DatabricksWorkspaceDBFSRootEncryptedWithCustomerManagedKey.py │ │ │ ├── DatabricksWorkspaceIsNotPublic.py │ │ │ ├── EventHubNamespaceMinTLS12.py │ │ │ ├── EventgridTopicIdentityProviderEnabled.py │ │ │ ├── EventgridTopicLocalAuthentication.py │ │ │ ├── EventgridTopicNetworkAccess.py │ │ │ ├── FrontDoorWAFACLCVE202144228.py │ │ │ ├── FrontdoorUseWAFMode.py │ │ │ ├── FunctionAppDisallowCORS.py │ │ │ ├── FunctionAppHttpVersionLatest.py │ │ │ ├── FunctionAppMinTLSVersion.py │ │ │ ├── FunctionAppsAccessibleOverHttps.py │ │ │ ├── FunctionAppsEnableAuthentication.py │ │ │ ├── KeyBackedByHSM.py │ │ │ ├── KeyExpirationDate.py │ │ │ ├── KeyVaultDisablesPublicNetworkAccess.py │ │ │ ├── KeyVaultEnablesFirewallRulesSettings.py │ │ │ ├── KeyVaultEnablesPurgeProtection.py │ │ │ ├── KeyVaultEnablesSoftDelete.py │ │ │ ├── KeyvaultRecoveryEnabled.py │ │ │ ├── LinuxVMUsesSSH.py │ │ │ ├── MSSQLServerMinTLSVersion.py │ │ │ ├── MariaDBGeoBackupEnabled.py │ │ │ ├── MariaDBPublicAccessDisabled.py │ │ │ ├── MariaDBSSLEnforcementEnabled.py │ │ │ ├── MonitorLogProfileCategories.py │ │ │ ├── MonitorLogProfileRetentionDays.py │ │ │ ├── MySQLEncryptionEnabled.py │ │ │ ├── MySQLGeoBackupEnabled.py │ │ │ ├── MySQLPublicAccessDisabled.py │ │ │ ├── MySQLServerMinTLSVersion.py │ │ │ ├── MySQLServerSSLEnforcementEnabled.py │ │ │ ├── NSGRuleHTTPAccessRestricted.py │ │ │ ├── NSGRulePortAccessRestricted.py │ │ │ ├── NSGRuleRDPAccessRestricted.py │ │ │ ├── NSGRuleSSHAccessRestricted.py │ │ │ ├── NetworkWatcherFlowLogPeriod.py │ │ │ ├── PostgreSQLEncryptionEnabled.py │ │ │ ├── PostgreSQLServerConnectionThrottlingEnabled.py │ │ │ ├── PostgreSQLServerLogCheckpointsEnabled.py │ │ │ ├── PostgreSQLServerLogConnectionsEnabled.py │ │ │ ├── PostgreSQLServerPublicAccessDisabled.py │ │ │ ├── PostgreSQLServerSSLEnforcementEnabled.py │ │ │ ├── PostgressSQLGeoBackupEnabled.py │ │ │ ├── PubsubSKUSLA.py │ │ │ ├── PubsubSpecifyIdentity.py │ │ │ ├── RedisCachePublicNetworkAccessEnabled.py │ │ │ ├── SQLDatabaseZoneRedundant.py │ │ │ ├── SQLServerAuditingEnabled.py │ │ │ ├── SQLServerAuditingRetention90Days.py │ │ │ ├── SQLServerEmailAlertsEnabled.py │ │ │ ├── SQLServerEmailAlertsToAdminsEnabled.py │ │ │ ├── SQLServerHasPublicAccessDisabled.py │ │ │ ├── SQLServerNoPublicAccess.py │ │ │ ├── SQLServerThreatDetectionTypes.py │ │ │ ├── SQLServerUsesADAuth.py │ │ │ ├── SecretContentType.py │ │ │ ├── SecretExpirationDate.py │ │ │ ├── SecurityCenterContactEmailAlert.py │ │ │ ├── SecurityCenterContactEmailAlertAdmins.py │ │ │ ├── SecurityCenterContactPhone.py │ │ │ ├── SecurityCenterStandardPricing.py │ │ │ ├── StorageAccountAzureServicesAccessEnabled.py │ │ │ ├── StorageAccountDefaultNetworkAccessDeny.py │ │ │ ├── StorageAccountDisablePublicAccess.py │ │ │ ├── StorageAccountLoggingQueueServiceEnabled.py │ │ │ ├── StorageAccountMinimumTlsVersion.py │ │ │ ├── StorageAccountName.py │ │ │ ├── StorageAccountsTransportEncryption.py │ │ │ ├── StorageAccountsUseReplication.py │ │ │ ├── StorageBlobServiceContainerPrivateAccess.py │ │ │ ├── StorageSyncPublicAccessDisabled.py │ │ │ ├── SynapseWorkspaceAdministratorLoginPasswordHidden.py │ │ │ ├── SynapseWorkspaceCMKEncryption.py │ │ │ ├── SynapseWorkspaceEnablesDataExfilProtection.py │ │ │ ├── SynapseWorkspaceEnablesManagedVirtualNetworks.py │ │ │ ├── VMCredsInCustomData.py │ │ │ ├── VMDisablePasswordAuthentication.py │ │ │ ├── VMEncryptionAtHostEnabled.py │ │ │ ├── VMScaleSetsAutoOSImagePatchingEnabled.py │ │ │ ├── VMStorageOsDisk.py │ │ │ ├── VnetLocalDNS.py │ │ │ ├── VnetSingleDNSServer.py │ │ │ ├── WinVMAutomaticUpdates.py │ │ │ ├── WinVMEncryptionAtHost.py │ │ │ └── __init__.py │ │ ├── context_parser.py │ │ ├── graph_builder/ │ │ │ ├── __init__.py │ │ │ ├── definition_context.py │ │ │ ├── graph_components/ │ │ │ │ ├── __init__.py │ │ │ │ ├── block_types.py │ │ │ │ └── blocks.py │ │ │ ├── graph_to_definitions.py │ │ │ ├── local_graph.py │ │ │ └── variable_rendering/ │ │ │ ├── __init__.py │ │ │ └── renderer.py │ │ ├── graph_manager.py │ │ ├── parser/ │ │ │ ├── __init__.py │ │ │ └── parser.py │ │ ├── registry.py │ │ ├── runner.py │ │ └── utils.py │ ├── azure_pipelines/ │ │ ├── __init__.py │ │ ├── checks/ │ │ │ ├── __init__.py │ │ │ ├── base_azure_pipelines_check.py │ │ │ ├── job/ │ │ │ │ ├── ContainerDigest.py │ │ │ │ ├── ContainerLatestTag.py │ │ │ │ ├── DetectImagesUsage.py │ │ │ │ ├── SetSecretVariable.py │ │ │ │ └── __init__.py │ │ │ └── registry.py │ │ ├── common/ │ │ │ ├── __init__.py │ │ │ └── resource_id_utils.py │ │ └── runner.py │ ├── bicep/ │ │ ├── __init__.py │ │ ├── checks/ │ │ │ ├── __init__.py │ │ │ ├── graph_checks/ │ │ │ │ ├── SQLServerAuditingEnabled.yaml │ │ │ │ ├── SQLServerAuditingRetention90Days.yaml │ │ │ │ ├── SQLServerThreatDetectionTypes.yaml │ │ │ │ └── __init__.py │ │ │ ├── param/ │ │ │ │ ├── __init__.py │ │ │ │ ├── azure/ │ │ │ │ │ ├── SecureStringParameterNoHardcodedValue.py │ │ │ │ │ └── __init__.py │ │ │ │ ├── base_param_check.py │ │ │ │ ├── base_registry.py │ │ │ │ └── registry.py │ │ │ └── resource/ │ │ │ ├── __init__.py │ │ │ ├── azure/ │ │ │ │ ├── StorageAccountAzureServicesAccessEnabled.py │ │ │ │ ├── StorageAccountDefaultNetworkAccessDeny.py │ │ │ │ ├── StorageAccountsTransportEncryption.py │ │ │ │ └── __init__.py │ │ │ ├── base_registry.py │ │ │ ├── base_resource_check.py │ │ │ ├── base_resource_value_check.py │ │ │ └── registry.py │ │ ├── graph_builder/ │ │ │ ├── __init__.py │ │ │ ├── context_definitions.py │ │ │ ├── graph_components/ │ │ │ │ ├── __init__.py │ │ │ │ ├── block_types.py │ │ │ │ └── blocks.py │ │ │ ├── graph_to_tf_definitions.py │ │ │ ├── local_graph.py │ │ │ └── variable_rendering/ │ │ │ ├── __init__.py │ │ │ └── renderer.py │ │ ├── graph_manager.py │ │ ├── image_referencer/ │ │ │ ├── __init__.py │ │ │ ├── base_provider.py │ │ │ ├── manager.py │ │ │ └── provider/ │ │ │ ├── __init__.py │ │ │ └── azure.py │ │ ├── parser.py │ │ ├── runner.py │ │ └── utils.py │ ├── bitbucket/ │ │ ├── __init__.py │ │ ├── base_bitbucket_configuration_check.py │ │ ├── checks/ │ │ │ ├── __init__.py │ │ │ └── merge_requests_approvals.py │ │ ├── dal.py │ │ ├── registry.py │ │ ├── runner.py │ │ └── schemas/ │ │ ├── __init__.py │ │ └── branch_restrictions.py │ ├── bitbucket_pipelines/ │ │ ├── __init__.py │ │ ├── base_bitbucket_pipelines_check.py │ │ ├── checks/ │ │ │ ├── __init__.py │ │ │ └── latest_image.py │ │ ├── registry.py │ │ └── runner.py │ ├── cdk/ │ │ ├── __init__.py │ │ ├── checks/ │ │ │ ├── __init__.py │ │ │ ├── python/ │ │ │ │ ├── ALBDropHttpHeaders.yaml │ │ │ │ ├── ALBListenerHTTPS.yaml │ │ │ │ ├── APIGatewayAccessLogging.yaml │ │ │ │ ├── APIGatewayAuthorization.yaml │ │ │ │ ├── APIGatewayCacheEnable.yaml │ │ │ │ ├── APIGatewayV2AccessLogging.yaml │ │ │ │ ├── APIGatewayXray.yaml │ │ │ │ ├── AmazonMQBrokerPublicAccess.yaml │ │ │ │ ├── AppSyncFieldLevelLogs.yaml │ │ │ │ ├── AppSyncLogging.yaml │ │ │ │ ├── AthenaWorkgroupConfiguration.yaml │ │ │ │ ├── AuroraEncryption.yaml │ │ │ │ ├── BackupVaultEncrypted.yaml │ │ │ │ ├── CloudFrontTLS12.yaml │ │ │ │ ├── CloudTrailLogValidation.yaml │ │ │ │ ├── CloudWatchLogGroupKMSKey.yaml │ │ │ │ ├── CloudWatchLogGroupRetention.yaml │ │ │ │ ├── CloudfrontDistributionEncryption.yaml │ │ │ │ ├── CloudfrontDistributionLogging.yaml │ │ │ │ ├── CloudtrailEncryption.yaml │ │ │ │ ├── CloudtrailMultiRegion.yaml │ │ │ │ ├── CodeBuildProjectEncryption.yaml │ │ │ │ ├── DAXEncryption.yaml │ │ │ │ ├── DMSReplicationInstancePubliclyAccessible.yaml │ │ │ │ ├── DocDBAuditLogs.yaml │ │ │ │ ├── DocDBEncryption.yaml │ │ │ │ ├── DocDBTLS.yaml │ │ │ │ ├── DynamodbGlobalTableRecovery.yaml │ │ │ │ ├── DynamodbRecovery.yaml │ │ │ │ ├── EBSEncryption.yaml │ │ │ │ ├── EC2PublicIP.yaml │ │ │ │ ├── ECRImageScanning.yaml │ │ │ │ ├── ECRImmutableTags.yaml │ │ │ │ ├── ECRRepositoryEncrypted.yaml │ │ │ │ ├── ECSClusterContainerInsights.yaml │ │ │ │ ├── ECSTaskDefinitionEFSVolumeEncryption.yaml │ │ │ │ ├── EFSEncryptionEnabled.yaml │ │ │ │ ├── EKSSecretsEncryption.yaml │ │ │ │ ├── ELBAccessLogs.yaml │ │ │ │ ├── ELBv2AccessLogs.yaml │ │ │ │ ├── ElasticacheReplicationGroupEncryptionAtRest.yaml │ │ │ │ ├── ElasticacheReplicationGroupEncryptionAtTransit.yaml │ │ │ │ ├── ElasticacheReplicationGroupEncryptionAtTransitAuthToken.yaml │ │ │ │ ├── ElasticsearchDomainEnforceHTTPS.yaml │ │ │ │ ├── ElasticsearchDomainLogging.yaml │ │ │ │ ├── ElasticsearchEncryption.yaml │ │ │ │ ├── ElasticsearchNodeToNodeEncryption.yaml │ │ │ │ ├── GlueDataCatalogEncryption.yaml │ │ │ │ ├── GlueSecurityConfiguration.yaml │ │ │ │ ├── GlueSecurityConfigurationEnabled.yaml │ │ │ │ ├── IAMPolicyAttachedToGroupOrRoles.yaml │ │ │ │ ├── KinesisStreamEncryptionType.yaml │ │ │ │ ├── LambdaDLQConfigured.yaml │ │ │ │ ├── LambdaEnvironmentCredentials.yaml │ │ │ │ ├── LambdaEnvironmentEncryptionSettings.yaml │ │ │ │ ├── LambdaFunctionLevelConcurrentExecutionLimit.yaml │ │ │ │ ├── LambdaInVPC.yaml │ │ │ │ ├── LaunchConfigurationEBSEncryption.yaml │ │ │ │ ├── NeptuneClusterStorageEncrypted.yaml │ │ │ │ ├── RDSEnhancedMonitorEnabled.yaml │ │ │ │ ├── RDSMultiAZEnabled.yaml │ │ │ │ ├── RDSPubliclyAccessible.yaml │ │ │ │ ├── RedShiftSSL.yaml │ │ │ │ ├── RedshiftClusterEncryption.yaml │ │ │ │ ├── RedshiftClusterLogging.yaml │ │ │ │ ├── RedshiftClusterPubliclyAccessible.yaml │ │ │ │ ├── RedshiftInEc2ClassicMode.yaml │ │ │ │ ├── S3BlockPublicACLs.yaml │ │ │ │ ├── S3BlockPublicPolicy.yaml │ │ │ │ ├── S3BucketEncryption.yaml │ │ │ │ ├── S3BucketKMSEncryption.yaml │ │ │ │ ├── S3BucketLogging.yaml │ │ │ │ ├── S3BucketPublicAccessBlock.yaml │ │ │ │ ├── S3BucketVersioning.yaml │ │ │ │ ├── S3IgnorePublicACLs.yaml │ │ │ │ ├── S3PublicACLRead.yaml │ │ │ │ ├── S3PublicACLWrite.yaml │ │ │ │ ├── S3RestrictPublicBuckets.yaml │ │ │ │ ├── SNSTopicEncryption.yaml │ │ │ │ ├── SQSQueueEncryption.yaml │ │ │ │ ├── SecretManagerSecretEncrypted.yaml │ │ │ │ ├── SecurityGroupRuleDescription.yaml │ │ │ │ ├── TransferServerIsPublic.yaml │ │ │ │ ├── VPCEndpointAcceptanceConfigured.yaml │ │ │ │ ├── WAFEnabled.yaml │ │ │ │ ├── WorkspaceRootVolumeEncrypted.yaml │ │ │ │ └── WorkspaceUserVolumeEncrypted.yaml │ │ │ └── typescript/ │ │ │ ├── ALBDropHttpHeaders.yaml │ │ │ ├── ALBListenerHTTPS.yaml │ │ │ ├── APIGatewayAccessLogging.yaml │ │ │ ├── APIGatewayAuthorization.yaml │ │ │ ├── APIGatewayCacheEnable.yaml │ │ │ ├── APIGatewayV2AccessLogging.yaml │ │ │ ├── APIGatewayXray.yaml │ │ │ ├── AmazonMQBrokerPublicAccess.yaml │ │ │ ├── AppSyncFieldLevelLogs.yaml │ │ │ ├── AppSyncLogging.yaml │ │ │ ├── AthenaWorkgroupConfiguration.yaml │ │ │ ├── AuroraEncryption.yaml │ │ │ ├── BackupVaultEncrypted.yaml │ │ │ ├── CloudFrontTLS12.yaml │ │ │ ├── CloudTrailLogValidation.yaml │ │ │ ├── CloudWatchLogGroupKMSKey.yaml │ │ │ ├── CloudWatchLogGroupRetention.yaml │ │ │ ├── CloudfrontDistributionEncryption.yaml │ │ │ ├── CloudfrontDistributionLogging.yaml │ │ │ ├── CloudtrailEncryption.yaml │ │ │ ├── CloudtrailMultiRegion.yaml │ │ │ ├── CodeBuildProjectEncryption.yaml │ │ │ ├── DAXEncryption.yaml │ │ │ ├── DMSReplicationInstancePubliclyAccessible.yaml │ │ │ ├── DocDBAuditLogs.yaml │ │ │ ├── DocDBEncryption.yaml │ │ │ ├── DocDBTLS.yaml │ │ │ ├── DynamodbGlobalTableRecovery.yaml │ │ │ ├── DynamodbRecovery.yaml │ │ │ ├── EBSEncryption.yaml │ │ │ ├── EC2PublicIP.yaml │ │ │ ├── ECRImageScanning.yaml │ │ │ ├── ECRImmutableTags.yaml │ │ │ ├── ECRRepositoryEncrypted.yaml │ │ │ ├── ECSClusterContainerInsights.yaml │ │ │ ├── ECSTaskDefinitionEFSVolumeEncryption.yaml │ │ │ ├── EFSEncryptionEnabled.yaml │ │ │ ├── EKSSecretsEncryption.yaml │ │ │ ├── ELBAccessLogs.yaml │ │ │ ├── ELBv2AccessLogs.yaml │ │ │ ├── ElasticacheReplicationGroupEncryptionAtRest.yaml │ │ │ ├── ElasticacheReplicationGroupEncryptionAtTransit.yaml │ │ │ ├── ElasticacheReplicationGroupEncryptionAtTransitAuthToken.yaml │ │ │ ├── ElasticsearchDomainEnforceHTTPS.yaml │ │ │ ├── ElasticsearchDomainLogging.yaml │ │ │ ├── ElasticsearchEncryption.yaml │ │ │ ├── ElasticsearchNodeToNodeEncryption.yaml │ │ │ ├── GlueDataCatalogEncryption.yaml │ │ │ ├── GlueSecurityConfiguration.yaml │ │ │ ├── GlueSecurityConfigurationEnabled.yaml │ │ │ ├── IAMPolicyAttachedToGroupOrRoles.yaml │ │ │ ├── KinesisStreamEncryptionType.yaml │ │ │ ├── LambdaDLQConfigured.yaml │ │ │ ├── LambdaEnvironmentCredentials.yaml │ │ │ ├── LambdaEnvironmentEncryptionSettings.yaml │ │ │ ├── LambdaFunctionLevelConcurrentExecutionLimit.yaml │ │ │ ├── LambdaInVPC.yaml │ │ │ ├── LaunchConfigurationEBSEncryption.yaml │ │ │ ├── NeptuneClusterStorageEncrypted.yaml │ │ │ ├── RDSEnhancedMonitorEnabled.yaml │ │ │ ├── RDSMultiAZEnabled.yaml │ │ │ ├── RDSPubliclyAccessible.yaml │ │ │ ├── RedShiftSSL.yaml │ │ │ ├── RedshiftClusterEncryption.yaml │ │ │ ├── RedshiftClusterLogging.yaml │ │ │ ├── RedshiftClusterPubliclyAccessible.yaml │ │ │ ├── RedshiftInEc2ClassicMode.yaml │ │ │ ├── S3BlockPublicACLs.yaml │ │ │ ├── S3BlockPublicPolicy.yaml │ │ │ ├── S3BucketEncryption.yaml │ │ │ ├── S3BucketKMSEncryption.yaml │ │ │ ├── S3BucketLogging.yaml │ │ │ ├── S3BucketPublicAccessBlock.yaml │ │ │ ├── S3BucketVersioning.yaml │ │ │ ├── S3PublicACLRead.yaml │ │ │ ├── S3RestrictPublicBuckets.yaml │ │ │ ├── SNSTopicEncryption.yaml │ │ │ ├── SQSQueueEncryption.yaml │ │ │ ├── SecretManagerSecretEncrypted.yaml │ │ │ ├── SecurityGroupRuleDescription.yaml │ │ │ ├── TransferServerIsPublic.yaml │ │ │ ├── VPCEndpointAcceptanceConfigured.yaml │ │ │ ├── WAFEnabled.yaml │ │ │ ├── WorkspaceRootVolumeEncrypted.yaml │ │ │ └── WorkspaceUserVolumeEncrypted.yaml │ │ ├── checks_infra/ │ │ │ ├── __init__.py │ │ │ └── base_registry.py │ │ ├── report.py │ │ └── runner.py │ ├── circleci_pipelines/ │ │ ├── __init__.py │ │ ├── base_circleci_pipelines_check.py │ │ ├── checks/ │ │ │ ├── DetectImagesUsage.py │ │ │ ├── ReverseShellNetcat.py │ │ │ ├── ShellInjection.py │ │ │ ├── SuspectCurlInScript.py │ │ │ ├── __init__.py │ │ │ ├── image_version_not_hash.py │ │ │ ├── latest_image.py │ │ │ ├── prevent_development_orbs.py │ │ │ └── prevent_volatile_orbs.py │ │ ├── common/ │ │ │ ├── __init__.py │ │ │ └── shell_injection_list.py │ │ ├── registry.py │ │ └── runner.py │ ├── cloudformation/ │ │ ├── __init__.py │ │ ├── cfn_utils.py │ │ ├── checks/ │ │ │ ├── __init__.py │ │ │ ├── graph_checks/ │ │ │ │ ├── ACMWildcardDomainName.yaml │ │ │ │ ├── AppSyncProtectedByWAF.yaml │ │ │ │ ├── CloudfrontOriginNotHTTPSOnly.yaml │ │ │ │ ├── LambdaOpenCorsPolicy.yaml │ │ │ │ ├── RDSEncryptionInTransit.yaml │ │ │ │ ├── SageMakerIAMPolicyOverlyPermissiveToAllTraffic.yaml │ │ │ │ └── __init__.py │ │ │ ├── resource/ │ │ │ │ ├── BaseCloudsplainingIAMCheck.py │ │ │ │ ├── __init__.py │ │ │ │ ├── aws/ │ │ │ │ │ ├── ALBDropHttpHeaders.py │ │ │ │ │ ├── ALBListenerHTTPS.py │ │ │ │ │ ├── ALBListenerTLS12.py │ │ │ │ │ ├── APIGatewayAccessLogging.py │ │ │ │ │ ├── APIGatewayAuthorization.py │ │ │ │ │ ├── APIGatewayCacheEnable.py │ │ │ │ │ ├── APIGatewayV2AccessLogging.py │ │ │ │ │ ├── APIGatewayXray.py │ │ │ │ │ ├── AbsSecurityGroupUnrestrictedIngress.py │ │ │ │ │ ├── AmazonMQBrokerPublicAccess.py │ │ │ │ │ ├── AppSyncFieldLevelLogs.py │ │ │ │ │ ├── AppSyncLogging.py │ │ │ │ │ ├── AthenaWorkgroupConfiguration.py │ │ │ │ │ ├── AuroraEncryption.py │ │ │ │ │ ├── BackupVaultEncrypted.py │ │ │ │ │ ├── BedrockAgentEncrypted.py │ │ │ │ │ ├── CloudFrontTLS12.py │ │ │ │ │ ├── CloudWatchLogGroupKMSKey.py │ │ │ │ │ ├── CloudWatchLogGroupRetention.py │ │ │ │ │ ├── CloudfrontDistributionEncryption.py │ │ │ │ │ ├── CloudfrontDistributionLogging.py │ │ │ │ │ ├── CloudtrailEncryption.py │ │ │ │ │ ├── CloudtrailLogValidation.py │ │ │ │ │ ├── CloudtrailMultiRegion.py │ │ │ │ │ ├── CodeBuildProjectEncryption.py │ │ │ │ │ ├── CognitoUnauthenticatedIdentities.py │ │ │ │ │ ├── DAXEncryption.py │ │ │ │ │ ├── DMSReplicationInstancePubliclyAccessible.py │ │ │ │ │ ├── DeprecatedLambdaRuntime.py │ │ │ │ │ ├── DocDBAuditLogs.py │ │ │ │ │ ├── DocDBBackupRetention.py │ │ │ │ │ ├── DocDBEncryption.py │ │ │ │ │ ├── DocDBLogging.py │ │ │ │ │ ├── DocDBTLS.py │ │ │ │ │ ├── DynamoDBTablesEncrypted.py │ │ │ │ │ ├── DynamodbGlobalTableRecovery.py │ │ │ │ │ ├── DynamodbRecovery.py │ │ │ │ │ ├── EBSDefaultEncryption.py │ │ │ │ │ ├── EBSEncryption.py │ │ │ │ │ ├── EC2Credentials.py │ │ │ │ │ ├── EC2PublicIP.py │ │ │ │ │ ├── ECRImageScanning.py │ │ │ │ │ ├── ECRImmutableTags.py │ │ │ │ │ ├── ECRPolicy.py │ │ │ │ │ ├── ECRRepositoryEncrypted.py │ │ │ │ │ ├── ECSClusterContainerInsights.py │ │ │ │ │ ├── ECSTaskDefinitionEFSVolumeEncryption.py │ │ │ │ │ ├── EFSEncryptionEnabled.py │ │ │ │ │ ├── EKSControlPlaneLogging.py │ │ │ │ │ ├── EKSNodeGroupRemoteAccess.py │ │ │ │ │ ├── EKSPublicAccess.py │ │ │ │ │ ├── EKSPublicAccessCIDR.py │ │ │ │ │ ├── EKSSecretsEncryption.py │ │ │ │ │ ├── ELBAccessLogs.py │ │ │ │ │ ├── ELBv2AccessLogs.py │ │ │ │ │ ├── ElasticacheReplicationGroupEncryptionAtRest.py │ │ │ │ │ ├── ElasticacheReplicationGroupEncryptionAtTransit.py │ │ │ │ │ ├── ElasticacheReplicationGroupEncryptionAtTransitAuthToken.py │ │ │ │ │ ├── ElasticsearchDomainAuditLogging.py │ │ │ │ │ ├── ElasticsearchDomainEnforceHTTPS.py │ │ │ │ │ ├── ElasticsearchDomainLogging.py │ │ │ │ │ ├── ElasticsearchEncryption.py │ │ │ │ │ ├── ElasticsearchNodeToNodeEncryption.py │ │ │ │ │ ├── GlobalAcceleratorAcceleratorFlowLogs.py │ │ │ │ │ ├── GlueDataCatalogEncryption.py │ │ │ │ │ ├── GlueSecurityConfiguration.py │ │ │ │ │ ├── GlueSecurityConfigurationEnabled.py │ │ │ │ │ ├── IAMAdminPolicyDocument.py │ │ │ │ │ ├── IAMCredentialsExposure.py │ │ │ │ │ ├── IAMDataExfiltration.py │ │ │ │ │ ├── IAMPermissionsManagement.py │ │ │ │ │ ├── IAMPolicyAttachedToGroupOrRoles.py │ │ │ │ │ ├── IAMPrivilegeEscalation.py │ │ │ │ │ ├── IAMRoleAllowAssumeFromAccount.py │ │ │ │ │ ├── IAMRoleAllowsPublicAssume.py │ │ │ │ │ ├── IAMStarActionPolicyDocument.py │ │ │ │ │ ├── IAMWriteAccess.py │ │ │ │ │ ├── IMDSv1Disabled.py │ │ │ │ │ ├── KMSKeyWildCardPrincipal.py │ │ │ │ │ ├── KMSRotation.py │ │ │ │ │ ├── KinesisStreamEncryptionType.py │ │ │ │ │ ├── LambdaDLQConfigured.py │ │ │ │ │ ├── LambdaEnvironmentCredentials.py │ │ │ │ │ ├── LambdaEnvironmentEncryptionSettings.py │ │ │ │ │ ├── LambdaFunctionLevelConcurrentExecutionLimit.py │ │ │ │ │ ├── LambdaFunctionURLAuth.py │ │ │ │ │ ├── LambdaInVPC.py │ │ │ │ │ ├── LambdaServicePermission.py │ │ │ │ │ ├── LaunchConfigurationEBSEncryption.py │ │ │ │ │ ├── MQBrokerAuditLogging.py │ │ │ │ │ ├── MSKClusterEncryption.py │ │ │ │ │ ├── MSKClusterLogging.py │ │ │ │ │ ├── MSKClusterNodesArePrivate.py │ │ │ │ │ ├── NeptuneClusterBackupRetention.py │ │ │ │ │ ├── NeptuneClusterInstancePublic.py │ │ │ │ │ ├── NeptuneClusterLogging.py │ │ │ │ │ ├── NeptuneClusterStorageEncrypted.py │ │ │ │ │ ├── ParameterStoreCredentials.py │ │ │ │ │ ├── PasswordPolicyExpiration.py │ │ │ │ │ ├── PasswordPolicyLength.py │ │ │ │ │ ├── PasswordPolicyLowercaseLetter.py │ │ │ │ │ ├── PasswordPolicyNumber.py │ │ │ │ │ ├── PasswordPolicyReuse.py │ │ │ │ │ ├── PasswordPolicySymbol.py │ │ │ │ │ ├── PasswordPolicyUppercaseLetter.py │ │ │ │ │ ├── QLDBLedgerDeletionProtection.py │ │ │ │ │ ├── QLDBLedgerPermissionsMode.py │ │ │ │ │ ├── RDSClusterIAMAuthentication.py │ │ │ │ │ ├── RDSEncryption.py │ │ │ │ │ ├── RDSEnhancedMonitorEnabled.py │ │ │ │ │ ├── RDSIAMAuthentication.py │ │ │ │ │ ├── RDSMultiAZEnabled.py │ │ │ │ │ ├── RDSPubliclyAccessible.py │ │ │ │ │ ├── RedShiftSSL.py │ │ │ │ │ ├── RedshiftClusterEncryption.py │ │ │ │ │ ├── RedshiftClusterLogging.py │ │ │ │ │ ├── RedshiftClusterPubliclyAccessible.py │ │ │ │ │ ├── RedshiftInEc2ClassicMode.py │ │ │ │ │ ├── S3AccessLogs.py │ │ │ │ │ ├── S3BlockPublicACLs.py │ │ │ │ │ ├── S3BlockPublicPolicy.py │ │ │ │ │ ├── S3Encryption.py │ │ │ │ │ ├── S3IgnorePublicACLs.py │ │ │ │ │ ├── S3PublicACLRead.py │ │ │ │ │ ├── S3PublicACLWrite.py │ │ │ │ │ ├── S3RestrictPublicBuckets.py │ │ │ │ │ ├── S3Versioning.py │ │ │ │ │ ├── SNSTopicEncryption.py │ │ │ │ │ ├── SQSQueueEncryption.py │ │ │ │ │ ├── SagemakerDataQualityJobDefinitionEncryption.py │ │ │ │ │ ├── SagemakerDataQualityJobDefinitionTrafficEncryption.py │ │ │ │ │ ├── SagemakerDataQualityJobDefinitionVolumeEncryption.py │ │ │ │ │ ├── SagemakerModelWithNetworkIsolation.py │ │ │ │ │ ├── SagemakerNotebookEncryptedWithCMK.py │ │ │ │ │ ├── SagemakerNotebookInstanceAllowsIMDSv2.py │ │ │ │ │ ├── SecretManagerSecretEncrypted.py │ │ │ │ │ ├── SecurityGroupRuleDescription.py │ │ │ │ │ ├── SecurityGroupUnrestrictedIngress22.py │ │ │ │ │ ├── SecurityGroupUnrestrictedIngress3389.py │ │ │ │ │ ├── SecurityGroupUnrestrictedIngress80.py │ │ │ │ │ ├── TimestreamDatabaseKMSKey.py │ │ │ │ │ ├── TransferServerIsPublic.py │ │ │ │ │ ├── VPCEndpointAcceptanceConfigured.py │ │ │ │ │ ├── WAFACLCVE202144228.py │ │ │ │ │ ├── WAFEnabled.py │ │ │ │ │ ├── WorkspaceRootVolumeEncrypted.py │ │ │ │ │ ├── WorkspaceUserVolumeEncrypted.py │ │ │ │ │ └── __init__.py │ │ │ │ ├── base_registry.py │ │ │ │ ├── base_resource_check.py │ │ │ │ ├── base_resource_negative_value_check.py │ │ │ │ ├── base_resource_value_check.py │ │ │ │ └── registry.py │ │ │ └── utils/ │ │ │ ├── __init__.py │ │ │ └── iam_cloudformation_document_to_policy_converter.py │ │ ├── context_parser.py │ │ ├── graph_builder/ │ │ │ ├── __init__.py │ │ │ ├── graph_components/ │ │ │ │ ├── __init__.py │ │ │ │ ├── block_types.py │ │ │ │ ├── blocks.py │ │ │ │ └── generic_resource_encryption.py │ │ │ ├── graph_to_definitions.py │ │ │ ├── local_graph.py │ │ │ ├── utils.py │ │ │ └── variable_rendering/ │ │ │ ├── __init__.py │ │ │ ├── renderer.py │ │ │ └── vertex_reference.py │ │ ├── graph_manager.py │ │ ├── image_referencer/ │ │ │ ├── __init__.py │ │ │ ├── base_provider.py │ │ │ ├── manager.py │ │ │ └── provider/ │ │ │ ├── __init__.py │ │ │ └── aws.py │ │ ├── parser/ │ │ │ ├── __init__.py │ │ │ ├── cfn_keywords.py │ │ │ └── cfn_yaml.py │ │ └── runner.py │ ├── common/ │ │ ├── __init__.py │ │ ├── bridgecrew/ │ │ │ ├── __init__.py │ │ │ ├── bc_source.py │ │ │ ├── check_type.py │ │ │ ├── code_categories.py │ │ │ ├── integration_features/ │ │ │ │ ├── __init__.py │ │ │ │ ├── base_integration_feature.py │ │ │ │ ├── features/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── custom_policies_integration.py │ │ │ │ │ ├── fixes_integration.py │ │ │ │ │ ├── licensing_integration.py │ │ │ │ │ ├── policies_3d_integration.py │ │ │ │ │ ├── policy_metadata_integration.py │ │ │ │ │ ├── repo_config_integration.py │ │ │ │ │ ├── suppressions_integration.py │ │ │ │ │ └── vulnerabilities_integration.py │ │ │ │ └── integration_feature_registry.py │ │ │ ├── licensing.py │ │ │ ├── platform_errors.py │ │ │ ├── platform_integration.py │ │ │ ├── platform_key.py │ │ │ ├── run_metadata/ │ │ │ │ ├── __init__.py │ │ │ │ ├── abstract_run_metadata_extractor.py │ │ │ │ ├── ci_variables.py │ │ │ │ ├── extractors/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── bitbucket.py │ │ │ │ │ ├── default_extractor.py │ │ │ │ │ ├── github_actions.py │ │ │ │ │ ├── gitlab_ci.py │ │ │ │ │ └── jenkins.py │ │ │ │ └── registry.py │ │ │ ├── severities.py │ │ │ ├── vulnerability_scanning/ │ │ │ │ ├── __init__.py │ │ │ │ ├── image_scanner.py │ │ │ │ ├── integrations/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── docker_image_scanning.py │ │ │ │ │ ├── package_scanning.py │ │ │ │ │ └── twistcli.py │ │ │ │ └── report.py │ │ │ └── wrapper.py │ │ ├── checks/ │ │ │ ├── __init__.py │ │ │ ├── base_check.py │ │ │ ├── base_check_registry.py │ │ │ ├── enums.py │ │ │ └── object_registry.py │ │ ├── checks_infra/ │ │ │ ├── __init__.py │ │ │ ├── checks_parser.py │ │ │ ├── registry.py │ │ │ ├── resources_types.py │ │ │ └── solvers/ │ │ │ ├── __init__.py │ │ │ ├── attribute_solvers/ │ │ │ │ ├── __init__.py │ │ │ │ ├── any_attribute_solver.py │ │ │ │ ├── base_attribute_solver.py │ │ │ │ ├── base_number_of_words_attribute_solver.py │ │ │ │ ├── cidr_range_not_subset_attribute_solver.py │ │ │ │ ├── cidr_range_subset_attribute_solver.py │ │ │ │ ├── contains_attribute_solver.py │ │ │ │ ├── ending_with_attribute_solver.py │ │ │ │ ├── equals_attribute_solver.py │ │ │ │ ├── equals_ignore_case_attribute_solver.py │ │ │ │ ├── exists_attribute_solver.py │ │ │ │ ├── greater_than_attribute_solver.py │ │ │ │ ├── greater_than_or_equal_attribute_solver.py │ │ │ │ ├── intersects_attribute_solver.py │ │ │ │ ├── is_empty_attribute_solver.py │ │ │ │ ├── is_false_attribute_solver.py │ │ │ │ ├── is_not_empty_attribute_solver.py │ │ │ │ ├── is_true_attribute_solver.py │ │ │ │ ├── length_equals_attribute_solver.py │ │ │ │ ├── length_greater_than_attribute_solver.py │ │ │ │ ├── length_greater_than_or_equal_attribute_solver.py │ │ │ │ ├── length_less_than_attribute_solver.py │ │ │ │ ├── length_less_than_or_equal_attribute_solver.py │ │ │ │ ├── length_not_equals_attribute_solver.py │ │ │ │ ├── less_than_attribute_solver.py │ │ │ │ ├── less_than_or_equal_attribute_solver.py │ │ │ │ ├── not_contains_attribute_solver.py │ │ │ │ ├── not_ending_with_attribute_solver.py │ │ │ │ ├── not_equals_attribute_solver.py │ │ │ │ ├── not_equals_ignore_case_attribute_solver.py │ │ │ │ ├── not_exists_attribute_solver.py │ │ │ │ ├── not_intersects_attribute_solver.py │ │ │ │ ├── not_regex_match_attribute_solver.py │ │ │ │ ├── not_starting_with_attribute_solver.py │ │ │ │ ├── not_subset_attribute_solver.py │ │ │ │ ├── not_within_attribute_solver.py │ │ │ │ ├── number_of_words_equals_attribute_solver.py │ │ │ │ ├── number_of_words_greater_than_attribute_solver.py │ │ │ │ ├── number_of_words_greater_than_or_equal_attribute_solver.py │ │ │ │ ├── number_of_words_less_than_attribute_solver.py │ │ │ │ ├── number_of_words_less_than_or_equal_attribute_solver.py │ │ │ │ ├── number_of_words_not_equals_attribute_solver.py │ │ │ │ ├── range_includes_attribute_solver.py │ │ │ │ ├── range_not_includes_attribute_solver.py │ │ │ │ ├── regex_match_attribute_solver.py │ │ │ │ ├── starting_with_attribute_solver.py │ │ │ │ ├── subset_attribute_solver.py │ │ │ │ └── within_attribute_solver.py │ │ │ ├── complex_solvers/ │ │ │ │ ├── __init__.py │ │ │ │ ├── and_solver.py │ │ │ │ ├── base_complex_solver.py │ │ │ │ ├── not_solver.py │ │ │ │ └── or_solver.py │ │ │ ├── connections_solvers/ │ │ │ │ ├── __init__.py │ │ │ │ ├── and_connection_solver.py │ │ │ │ ├── base_connection_solver.py │ │ │ │ ├── complex_connection_solver.py │ │ │ │ ├── connection_exists_solver.py │ │ │ │ ├── connection_not_exists_solver.py │ │ │ │ ├── connection_one_exists_solver.py │ │ │ │ └── or_connection_solver.py │ │ │ ├── filter_solvers/ │ │ │ │ ├── __init__.py │ │ │ │ ├── base_filter_solver.py │ │ │ │ └── within_filter_solver.py │ │ │ └── resource_solvers/ │ │ │ ├── __init__.py │ │ │ ├── base_resource_solver.py │ │ │ ├── exists_resource_solver.py │ │ │ └── not_exists_resource_solver.py │ │ ├── comment/ │ │ │ ├── __init__.py │ │ │ └── enum.py │ │ ├── goget/ │ │ │ ├── __init__.py │ │ │ ├── base_getter.py │ │ │ ├── github/ │ │ │ │ ├── __init__.py │ │ │ │ └── get_git.py │ │ │ └── registry/ │ │ │ ├── __init__.py │ │ │ └── get_registry.py │ │ ├── graph/ │ │ │ ├── __init__.py │ │ │ ├── checks_infra/ │ │ │ │ ├── __init__.py │ │ │ │ ├── base_check.py │ │ │ │ ├── base_parser.py │ │ │ │ ├── debug.py │ │ │ │ ├── enums.py │ │ │ │ ├── registry.py │ │ │ │ └── solvers/ │ │ │ │ ├── __init__.py │ │ │ │ └── base_solver.py │ │ │ ├── db_connectors/ │ │ │ │ ├── __init__.py │ │ │ │ ├── db_connector.py │ │ │ │ ├── networkx/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── networkx_db_connector.py │ │ │ │ └── rustworkx/ │ │ │ │ ├── __init__.py │ │ │ │ └── rustworkx_db_connector.py │ │ │ ├── graph_builder/ │ │ │ │ ├── __init__.py │ │ │ │ ├── consts.py │ │ │ │ ├── graph_components/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── attribute_names.py │ │ │ │ │ ├── block_types.py │ │ │ │ │ ├── blocks.py │ │ │ │ │ ├── edge.py │ │ │ │ │ └── generic_resource_encryption_base.py │ │ │ │ ├── graph_resources_encription_manager.py │ │ │ │ ├── local_graph.py │ │ │ │ ├── utils.py │ │ │ │ └── variable_rendering/ │ │ │ │ ├── __init__.py │ │ │ │ ├── breadcrumb_metadata.py │ │ │ │ ├── renderer.py │ │ │ │ └── vertex_reference.py │ │ │ └── graph_manager.py │ │ ├── images/ │ │ │ ├── __init__.py │ │ │ ├── graph/ │ │ │ │ ├── __init__.py │ │ │ │ ├── image_referencer_manager.py │ │ │ │ └── image_referencer_provider.py │ │ │ ├── image_referencer.py │ │ │ └── workflow/ │ │ │ ├── __init__.py │ │ │ ├── image_referencer_manager.py │ │ │ └── image_referencer_provider.py │ │ ├── logger_streams.py │ │ ├── models/ │ │ │ ├── __init__.py │ │ │ ├── consts.py │ │ │ └── enums.py │ │ ├── output/ │ │ │ ├── __init__.py │ │ │ ├── baseline.py │ │ │ ├── common.py │ │ │ ├── csv.py │ │ │ ├── cyclonedx.py │ │ │ ├── cyclonedx_consts.py │ │ │ ├── extra_resource.py │ │ │ ├── github_actions_record.py │ │ │ ├── gitlab_sast.py │ │ │ ├── graph_record.py │ │ │ ├── record.py │ │ │ ├── report.py │ │ │ ├── sarif.py │ │ │ ├── secrets_record.py │ │ │ └── spdx.py │ │ ├── packaging/ │ │ │ ├── __init__.py │ │ │ └── version.py │ │ ├── parallelizer/ │ │ │ ├── __init__.py │ │ │ └── parallel_runner.py │ │ ├── parsers/ │ │ │ ├── __init__.py │ │ │ ├── json/ │ │ │ │ ├── __init__.py │ │ │ │ ├── decoder.py │ │ │ │ └── errors.py │ │ │ ├── node.py │ │ │ └── yaml/ │ │ │ ├── __init__.py │ │ │ ├── loader.py │ │ │ └── parser.py │ │ ├── proxy/ │ │ │ ├── __init__.py │ │ │ └── proxy_client.py │ │ ├── resource_code_logger_filter.py │ │ ├── runners/ │ │ │ ├── __init__.py │ │ │ ├── base_post_runner.py │ │ │ ├── base_runner.py │ │ │ ├── graph_builder/ │ │ │ │ ├── __init__.py │ │ │ │ └── local_graph.py │ │ │ ├── graph_manager.py │ │ │ ├── object_runner.py │ │ │ └── runner_registry.py │ │ ├── sast/ │ │ │ ├── __init__.py │ │ │ ├── consts.py │ │ │ └── report_types.py │ │ ├── sca/ │ │ │ ├── __init__.py │ │ │ ├── commons.py │ │ │ ├── consts.py │ │ │ ├── output.py │ │ │ └── reachability/ │ │ │ ├── __init__.py │ │ │ ├── package_alias_mapping/ │ │ │ │ ├── __init__.py │ │ │ │ ├── abstract_alias_mapping_strategy.py │ │ │ │ ├── alias_mapping_creator.py │ │ │ │ └── nodejs/ │ │ │ │ ├── __init__.py │ │ │ │ ├── nodejs_alias_mapping_strategy.py │ │ │ │ └── utils.py │ │ │ └── sast_contract/ │ │ │ ├── __init__.py │ │ │ ├── data_fetcher_sast_lib.py │ │ │ └── models.py │ │ ├── secrets/ │ │ │ ├── __init__.py │ │ │ └── consts.py │ │ ├── typing.py │ │ ├── util/ │ │ │ ├── __init__.py │ │ │ ├── banner.py │ │ │ ├── config_utils.py │ │ │ ├── consts.py │ │ │ ├── contextmanagers.py │ │ │ ├── data_structures_utils.py │ │ │ ├── decorators.py │ │ │ ├── deep_merge.py │ │ │ ├── dockerfile.py │ │ │ ├── env_vars_config.py │ │ │ ├── ext_argument_parser.py │ │ │ ├── file_utils.py │ │ │ ├── http_utils.py │ │ │ ├── json_utils.py │ │ │ ├── oidc_utils.py │ │ │ ├── parser_utils.py │ │ │ ├── prompt.py │ │ │ ├── runner_dependency_handler.py │ │ │ ├── secrets.py │ │ │ ├── secrets_omitter.py │ │ │ ├── stopit/ │ │ │ │ ├── __init__.py │ │ │ │ ├── signalstop.py │ │ │ │ ├── threadstop.py │ │ │ │ └── utils.py │ │ │ ├── str_utils.py │ │ │ ├── suppression.py │ │ │ ├── templates/ │ │ │ │ ├── __init__.py │ │ │ │ ├── data.jinja2 │ │ │ │ ├── init.jinja2 │ │ │ │ ├── provider.jinja2 │ │ │ │ ├── resource.jinja2 │ │ │ │ ├── unittest-python.jinja2 │ │ │ │ └── unittest-terraform.jinja2 │ │ │ ├── tqdm_utils.py │ │ │ ├── type_forcers.py │ │ │ ├── update_checker/ │ │ │ │ ├── __init__.py │ │ │ │ └── update_checker.py │ │ │ └── var_utils.py │ │ ├── variables/ │ │ │ ├── __init__.py │ │ │ └── context.py │ │ ├── vcs/ │ │ │ ├── __init__.py │ │ │ ├── base_vcs_dal.py │ │ │ └── vcs_schema.py │ │ └── version_manager.py │ ├── contributor_metrics.py │ ├── dockerfile/ │ │ ├── __init__.py │ │ ├── base_dockerfile_check.py │ │ ├── base_registry.py │ │ ├── checks/ │ │ │ ├── AddExists.py │ │ │ ├── AliasIsUnique.py │ │ │ ├── ExposePort22.py │ │ │ ├── HealthcheckExists.py │ │ │ ├── MaintainerExists.py │ │ │ ├── ReferenceLatestTag.py │ │ │ ├── RootUser.py │ │ │ ├── RunUsingAPT.py │ │ │ ├── UpdateNotAlone.py │ │ │ ├── UserExists.py │ │ │ ├── WorkdirIsAbsolute.py │ │ │ ├── __init__.py │ │ │ └── graph_checks/ │ │ │ ├── EnvGitSslNoVerify.yaml │ │ │ ├── EnvNodeTlsRejectUnauthorized.yaml │ │ │ ├── EnvNpmConfigStrictSsl.yaml │ │ │ ├── EnvPipTrustedHost.yaml │ │ │ ├── EnvPythonHttpsVerify.yaml │ │ │ ├── RunApkAllowUntrusted.yaml │ │ │ ├── RunAptGetAllowUnauthenticated.yaml │ │ │ ├── RunAptGetForceYes.yaml │ │ │ ├── RunChpasswd.yaml │ │ │ ├── RunNpmConfigSetStrictSsl.yaml │ │ │ ├── RunPipTrustedHost.yaml │ │ │ ├── RunRpmNoSignature.yaml │ │ │ ├── RunUnsafeCurl.yaml │ │ │ ├── RunUnsafeWget.yaml │ │ │ ├── RunUsingSudo.yaml │ │ │ ├── RunYumConfigManagerSslVerify.yaml │ │ │ ├── RunYumNoGpgCheck.yaml │ │ │ └── __init__.py │ │ ├── graph_builder/ │ │ │ ├── __init__.py │ │ │ ├── graph_components/ │ │ │ │ ├── __init__.py │ │ │ │ └── resource_types.py │ │ │ └── local_graph.py │ │ ├── graph_manager.py │ │ ├── image_referencer/ │ │ │ ├── __init__.py │ │ │ ├── manager.py │ │ │ └── provider.py │ │ ├── parser.py │ │ ├── registry.py │ │ ├── runner.py │ │ └── utils.py │ ├── docs_generator.py │ ├── example_runner/ │ │ ├── __init__.py │ │ ├── checks/ │ │ │ ├── __init__.py │ │ │ ├── base_example_runner_check.py │ │ │ ├── base_example_runner_job_check.py │ │ │ ├── job/ │ │ │ │ ├── ExampleCheckTrueFalse.py │ │ │ │ └── __init__.py │ │ │ └── job_registry.py │ │ ├── common/ │ │ │ └── __init__.py │ │ └── runner.py │ ├── github/ │ │ ├── __init__.py │ │ ├── base_github_branch_security.py │ │ ├── base_github_configuration_check.py │ │ ├── base_github_negative_branch_security.py │ │ ├── base_github_org_check.py │ │ ├── base_github_org_security.py │ │ ├── checks/ │ │ │ ├── 2fa.py │ │ │ ├── __init__.py │ │ │ ├── disallow_branch_deletions.py │ │ │ ├── disallow_force_pushes.py │ │ │ ├── disallow_inactive_branch_60days.py │ │ │ ├── dismiss_stale_reviews.py │ │ │ ├── enforce_branch_protection_admins.py │ │ │ ├── internal_repository_creation_is_limited.py │ │ │ ├── ipallowlist.py │ │ │ ├── minimum_admins_in_org.py │ │ │ ├── private_repository_creation_is_limited.py │ │ │ ├── public_repository_creation_is_limited.py │ │ │ ├── repository_collaborators.py │ │ │ ├── require_2approvals.py │ │ │ ├── require_code_owner_reviews.py │ │ │ ├── require_conversation_resolution.py │ │ │ ├── require_linear_history.py │ │ │ ├── require_push_restrictions.py │ │ │ ├── require_signatures.py │ │ │ ├── require_status_checks_pr.py │ │ │ ├── require_strict_base_permissions_repository.py │ │ │ ├── require_updated_branch_pr.py │ │ │ ├── require_verified_organization.py │ │ │ ├── restrict_pr_review_dismissal.py │ │ │ ├── sso.py │ │ │ ├── webhooks_https_orgs.py │ │ │ └── webhooks_https_repos.py │ │ ├── dal.py │ │ ├── registry.py │ │ ├── runner.py │ │ └── schemas/ │ │ ├── __init__.py │ │ ├── branch.py │ │ ├── branch_protection.py │ │ ├── no_branch_protection.py │ │ ├── org_members.py │ │ ├── org_security.py │ │ ├── org_webhooks.py │ │ ├── organization.py │ │ ├── repository_collaborators.py │ │ └── repository_webhooks.py │ ├── github_actions/ │ │ ├── __init__.py │ │ ├── checks/ │ │ │ ├── __init__.py │ │ │ ├── base_github_action_check.py │ │ │ ├── graph_checks/ │ │ │ │ ├── ReadOnlyTopLevelPermissions.yaml │ │ │ │ └── __init__.py │ │ │ ├── job/ │ │ │ │ ├── AllowUnsecureCommandsOnJob.py │ │ │ │ ├── CosignArtifacts.py │ │ │ │ ├── CosignSBOM.py │ │ │ │ ├── EmptyWorkflowDispatch.py │ │ │ │ ├── ReverseShellNetcat.py │ │ │ │ ├── ShellInjection.py │ │ │ │ ├── SuspectCurlInScript.py │ │ │ │ └── __init__.py │ │ │ └── registry.py │ │ ├── common/ │ │ │ ├── __init__.py │ │ │ ├── artifact_build.py │ │ │ ├── build_actions.py │ │ │ └── shell_injection_list.py │ │ ├── graph_builder/ │ │ │ ├── __init__.py │ │ │ ├── graph_components/ │ │ │ │ ├── __init__.py │ │ │ │ └── resource_types.py │ │ │ └── local_graph.py │ │ ├── runner.py │ │ ├── schemas.py │ │ └── utils.py │ ├── gitlab/ │ │ ├── __init__.py │ │ ├── base_gitlab_configuration_check.py │ │ ├── checks/ │ │ │ ├── __init__.py │ │ │ └── merge_requests_approvals.py │ │ ├── dal.py │ │ ├── registry.py │ │ ├── runner.py │ │ └── schemas/ │ │ ├── __init__.py │ │ ├── groups.py │ │ └── project_approvals.py │ ├── gitlab_ci/ │ │ ├── __init__.py │ │ ├── checks/ │ │ │ ├── __init__.py │ │ │ ├── base_gitlab_ci_check.py │ │ │ ├── job/ │ │ │ │ ├── AvoidDoublePipelines.py │ │ │ │ ├── DetectImagesUsage.py │ │ │ │ ├── SuspectCurlInScript.py │ │ │ │ └── __init__.py │ │ │ └── registry.py │ │ ├── common/ │ │ │ ├── __init__.py │ │ │ ├── reserved.py │ │ │ └── resource_id_utils.py │ │ └── runner.py │ ├── helm/ │ │ ├── __init__.py │ │ ├── base_registry.py │ │ ├── image_referencer/ │ │ │ ├── __init__.py │ │ │ ├── base_provider.py │ │ │ ├── manager.py │ │ │ └── provider/ │ │ │ ├── __init__.py │ │ │ └── helm.py │ │ ├── registry.py │ │ └── runner.py │ ├── json_doc/ │ │ ├── __init__.py │ │ ├── base_json_check.py │ │ ├── base_registry.py │ │ ├── enums.py │ │ ├── registry.py │ │ └── runner.py │ ├── kubernetes/ │ │ ├── __init__.py │ │ ├── checks/ │ │ │ ├── __init__.py │ │ │ ├── graph_checks/ │ │ │ │ ├── ImpersonatePermissions.yaml │ │ │ │ ├── ModifyServicesStatus.yaml │ │ │ │ ├── NoCreateNodesProxyOrPodsExec.yaml │ │ │ │ ├── ReadAllSecrets.yaml │ │ │ │ ├── RequireAllPodsToHaveNetworkPolicy.yaml │ │ │ │ ├── RoleBindingPE.yaml │ │ │ │ └── __init__.py │ │ │ └── resource/ │ │ │ ├── __init__.py │ │ │ ├── base_container_check.py │ │ │ ├── base_rbac_check.py │ │ │ ├── base_registry.py │ │ │ ├── base_root_container_check.py │ │ │ ├── base_spec_check.py │ │ │ ├── base_spec_omitted_or_value_check.py │ │ │ ├── k8s/ │ │ │ │ ├── AllowPrivilegeEscalation.py │ │ │ │ ├── AllowPrivilegeEscalationPSP.py │ │ │ │ ├── AllowedCapabilities.py │ │ │ │ ├── AllowedCapabilitiesPSP.py │ │ │ │ ├── AllowedCapabilitiesSysAdmin.py │ │ │ │ ├── ApiServerAdmissionControlAlwaysAdmit.py │ │ │ │ ├── ApiServerAdmissionControlEventRateLimit.py │ │ │ │ ├── ApiServerAlwaysPullImagesPlugin.py │ │ │ │ ├── ApiServerAnonymousAuth.py │ │ │ │ ├── ApiServerAuditLog.py │ │ │ │ ├── ApiServerAuditLogMaxAge.py │ │ │ │ ├── ApiServerAuditLogMaxBackup.py │ │ │ │ ├── ApiServerAuditLogMaxSize.py │ │ │ │ ├── ApiServerAuthorizationModeNode.py │ │ │ │ ├── ApiServerAuthorizationModeNotAlwaysAllow.py │ │ │ │ ├── ApiServerAuthorizationModeRBAC.py │ │ │ │ ├── ApiServerBasicAuthFile.py │ │ │ │ ├── ApiServerEncryptionProviders.py │ │ │ │ ├── ApiServerEtcdCaFile.py │ │ │ │ ├── ApiServerEtcdCertAndKey.py │ │ │ │ ├── ApiServerInsecureBindAddress.py │ │ │ │ ├── ApiServerInsecurePort.py │ │ │ │ ├── ApiServerKubeletClientCertAndKey.py │ │ │ │ ├── ApiServerKubeletHttps.py │ │ │ │ ├── ApiServerNamespaceLifecyclePlugin.py │ │ │ │ ├── ApiServerNodeRestrictionPlugin.py │ │ │ │ ├── ApiServerPodSecurityPolicyPlugin.py │ │ │ │ ├── ApiServerProfiling.py │ │ │ │ ├── ApiServerRequestTimeout.py │ │ │ │ ├── ApiServerSecurePort.py │ │ │ │ ├── ApiServerSecurityContextDenyPlugin.py │ │ │ │ ├── ApiServerServiceAccountKeyFile.py │ │ │ │ ├── ApiServerServiceAccountLookup.py │ │ │ │ ├── ApiServerServiceAccountPlugin.py │ │ │ │ ├── ApiServerStrongCryptographicCiphers.py │ │ │ │ ├── ApiServerTlsCertAndKey.py │ │ │ │ ├── ApiServerTokenAuthFile.py │ │ │ │ ├── ApiServerkubeletCertificateAuthority.py │ │ │ │ ├── CPULimits.py │ │ │ │ ├── CPURequests.py │ │ │ │ ├── ContainerSecurityContext.py │ │ │ │ ├── ControllerManagerBindAddress.py │ │ │ │ ├── DangerousGitSync.py │ │ │ │ ├── DefaultNamespace.py │ │ │ │ ├── DefaultServiceAccount.py │ │ │ │ ├── DefaultServiceAccountBinding.py │ │ │ │ ├── DockerSocketVolume.py │ │ │ │ ├── DropCapabilities.py │ │ │ │ ├── DropCapabilitiesPSP.py │ │ │ │ ├── EtcdAutoTls.py │ │ │ │ ├── EtcdCertAndKey.py │ │ │ │ ├── EtcdClientCertAuth.py │ │ │ │ ├── EtcdPeerFiles.py │ │ │ │ ├── HostPort.py │ │ │ │ ├── ImageDigest.py │ │ │ │ ├── ImagePullPolicyAlways.py │ │ │ │ ├── ImageTagFixed.py │ │ │ │ ├── KubeControllerManagerBlockProfiles.py │ │ │ │ ├── KubeControllerManagerRootCAFile.py │ │ │ │ ├── KubeControllerManagerServiceAccountCredentials.py │ │ │ │ ├── KubeControllerManagerServiceAccountPrivateKeyFile.py │ │ │ │ ├── KubeControllerManagerTerminatedPods.py │ │ │ │ ├── KubeletAnonymousAuth.py │ │ │ │ ├── KubeletAuthorizationModeNotAlwaysAllow.py │ │ │ │ ├── KubeletClientCa.py │ │ │ │ ├── KubeletCryptographicCiphers.py │ │ │ │ ├── KubeletHostnameOverride.py │ │ │ │ ├── KubeletKeyFilesSetAppropriate.py │ │ │ │ ├── KubeletMakeIptablesUtilChains.py │ │ │ │ ├── KubeletProtectKernelDefaults.py │ │ │ │ ├── KubeletReadOnlyPort.py │ │ │ │ ├── KubeletStreamingConnectionIdleTimeout.py │ │ │ │ ├── KubernetesDashboard.py │ │ │ │ ├── KubletEventCapture.py │ │ │ │ ├── KubletRotateCertificates.py │ │ │ │ ├── LivenessProbe.py │ │ │ │ ├── MemoryLimits.py │ │ │ │ ├── MemoryRequests.py │ │ │ │ ├── MinimizeCapabilities.py │ │ │ │ ├── MinimizeCapabilitiesPSP.py │ │ │ │ ├── NginxIngressCVE202125742Alias.py │ │ │ │ ├── NginxIngressCVE202125742AllSnippets.py │ │ │ │ ├── NginxIngressCVE202125742Lua.py │ │ │ │ ├── PeerClientCertAuthTrue.py │ │ │ │ ├── PodSecurityContext.py │ │ │ │ ├── PrivilegedContainers.py │ │ │ │ ├── PrivilegedContainersPSP.py │ │ │ │ ├── RbacApproveCertificateSigningRequests.py │ │ │ │ ├── RbacBindRoleBindings.py │ │ │ │ ├── RbacControlWebhooks.py │ │ │ │ ├── RbacEscalateRoles.py │ │ │ │ ├── ReadOnlyFilesystem.py │ │ │ │ ├── ReadinessProbe.py │ │ │ │ ├── RootContainers.py │ │ │ │ ├── RootContainersHighUID.py │ │ │ │ ├── RootContainersPSP.py │ │ │ │ ├── RotateKubeletServerCertificate.py │ │ │ │ ├── SchedulerBindAddress.py │ │ │ │ ├── SchedulerProfiling.py │ │ │ │ ├── Seccomp.py │ │ │ │ ├── SeccompPSP.py │ │ │ │ ├── Secrets.py │ │ │ │ ├── ServiceAccountTokens.py │ │ │ │ ├── ShareHostIPC.py │ │ │ │ ├── ShareHostIPCPSP.py │ │ │ │ ├── ShareHostPID.py │ │ │ │ ├── ShareHostPIDPSP.py │ │ │ │ ├── SharedHostNetworkNamespace.py │ │ │ │ ├── SharedHostNetworkNamespacePSP.py │ │ │ │ ├── Tiller.py │ │ │ │ ├── TillerDeploymentListener.py │ │ │ │ ├── TillerService.py │ │ │ │ ├── WildcardRoles.py │ │ │ │ ├── __init__.py │ │ │ │ └── k8s_check_utils.py │ │ │ └── registry.py │ │ ├── graph_builder/ │ │ │ ├── __init__.py │ │ │ ├── graph_components/ │ │ │ │ ├── ResourceKeywordIdentifier.py │ │ │ │ ├── __init__.py │ │ │ │ ├── blocks.py │ │ │ │ └── edge_builders/ │ │ │ │ ├── K8SEdgeBuilder.py │ │ │ │ ├── KeywordEdgeBuilder.py │ │ │ │ ├── LabelSelectorEdgeBuilder.py │ │ │ │ ├── NetworkPolicyEdgeBuilder.py │ │ │ │ ├── ServiceAccountEdgeBuilder.py │ │ │ │ └── __init__.py │ │ │ └── local_graph.py │ │ ├── graph_manager.py │ │ ├── image_referencer/ │ │ │ ├── __init__.py │ │ │ ├── base_provider.py │ │ │ ├── manager.py │ │ │ └── provider/ │ │ │ ├── __init__.py │ │ │ └── k8s.py │ │ ├── kubernetes_graph_flags.py │ │ ├── kubernetes_utils.py │ │ ├── parser/ │ │ │ ├── __init__.py │ │ │ ├── k8_json.py │ │ │ ├── k8_yaml.py │ │ │ ├── parser.py │ │ │ └── validatior.py │ │ ├── runner.py │ │ └── test/ │ │ └── share-process-namespace.yaml │ ├── kustomize/ │ │ ├── __init__.py │ │ ├── image_referencer/ │ │ │ ├── __init__.py │ │ │ ├── base_provider.py │ │ │ ├── manager.py │ │ │ └── provider/ │ │ │ ├── __init__.py │ │ │ └── kustomize.py │ │ ├── runner.py │ │ └── utils.py │ ├── logging_init.py │ ├── main.py │ ├── openapi/ │ │ ├── __init__.py │ │ ├── checks/ │ │ │ ├── __init__.py │ │ │ ├── base_openapi_check.py │ │ │ ├── base_registry.py │ │ │ ├── registry.py │ │ │ └── resource/ │ │ │ ├── __init__.py │ │ │ ├── generic/ │ │ │ │ ├── ClearTextAPIKey.py │ │ │ │ ├── GlobalSecurityFieldIsEmpty.py │ │ │ │ ├── NoMaximumNumberItems.py │ │ │ │ ├── SecurityOperations.py │ │ │ │ └── __init__.py │ │ │ ├── v2/ │ │ │ │ ├── BaseOpenapiCheckV2.py │ │ │ │ ├── GlobalSchemeDefineHTTP.py │ │ │ │ ├── GlobalSecurityScopeUndefined.py │ │ │ │ ├── Oauth2OperationObjectPasswordFlow.py │ │ │ │ ├── Oauth2SecurityDefinitionImplicitFlow.py │ │ │ │ ├── Oauth2SecurityDefinitionPasswordFlow.py │ │ │ │ ├── Oauth2SecurityPasswordFlow.py │ │ │ │ ├── Oauth2SecurityRequirement.py │ │ │ │ ├── OperationObjectBasicAuth.py │ │ │ │ ├── OperationObjectConsumesUndefined.py │ │ │ │ ├── OperationObjectImplicitFlow.py │ │ │ │ ├── OperationObjectProducesUndefined.py │ │ │ │ ├── OperationObjectSecurityScopeUndefined.py │ │ │ │ ├── PathSchemeDefineHTTP.py │ │ │ │ ├── SecurityDefinitionBasicAuth.py │ │ │ │ ├── SecurityDefinitions.py │ │ │ │ ├── SecurityRequirement.py │ │ │ │ └── __init__.py │ │ │ └── v3/ │ │ │ ├── BaseOpenapiCheckV3.py │ │ │ ├── CleartextOverUnencryptedChannel.py │ │ │ └── __init__.py │ │ └── runner.py │ ├── policies_3d/ │ │ ├── __init__.py │ │ ├── checks_infra/ │ │ │ ├── __init__.py │ │ │ ├── base_check.py │ │ │ └── base_parser.py │ │ ├── checks_parser.py │ │ ├── output.py │ │ ├── record.py │ │ ├── runner.py │ │ └── syntax/ │ │ ├── __init__.py │ │ ├── cves_syntax.py │ │ ├── iac_syntax.py │ │ ├── secrets_syntax.py │ │ └── syntax.py │ ├── py.typed │ ├── runner_filter.py │ ├── sast/ │ │ ├── __init__.py │ │ ├── checks_infra/ │ │ │ ├── __init__.py │ │ │ ├── base_check.py │ │ │ ├── base_registry.py │ │ │ └── registry.py │ │ ├── common.py │ │ ├── engines/ │ │ │ ├── __init__.py │ │ │ ├── base_engine.py │ │ │ ├── files_filter_manager.py │ │ │ └── prisma_engine.py │ │ ├── prisma_models/ │ │ │ ├── __init__.py │ │ │ ├── library_input.py │ │ │ └── policies_list.py │ │ ├── record.py │ │ ├── report.py │ │ └── runner.py │ ├── sca_image/ │ │ ├── __init__.py │ │ ├── models.py │ │ └── runner.py │ ├── sca_package_2/ │ │ ├── __init__.py │ │ ├── output.py │ │ ├── runner.py │ │ └── scanner.py │ ├── secrets/ │ │ ├── __init__.py │ │ ├── context_parser.py │ │ ├── coordinator.py │ │ ├── git_history_store.py │ │ ├── git_types.py │ │ ├── local_secrets_runner.py │ │ ├── log_prefix_stripper.py │ │ ├── parsers/ │ │ │ ├── __init__.py │ │ │ ├── json/ │ │ │ │ ├── __init__.py │ │ │ │ └── multiline_parser.py │ │ │ ├── multiline_parser.py │ │ │ ├── single_line_parser.py │ │ │ ├── terraform/ │ │ │ │ ├── __init__.py │ │ │ │ ├── multiline_parser.py │ │ │ │ └── single_line_parser.py │ │ │ └── yaml/ │ │ │ ├── __init__.py │ │ │ └── multiline_parser.py │ │ ├── plugins/ │ │ │ ├── __init__.py │ │ │ ├── custom_regex_detector.py │ │ │ ├── detector_utils.py │ │ │ ├── entropy_keyword_combinator.py │ │ │ └── load_detectors.py │ │ ├── runner.py │ │ ├── scan_git_history.py │ │ └── utils.py │ ├── serverless/ │ │ ├── __init__.py │ │ ├── base_registry.py │ │ ├── checks/ │ │ │ ├── __init__.py │ │ │ ├── base_function_check.py │ │ │ ├── complete/ │ │ │ │ ├── __init__.py │ │ │ │ ├── base_complete_check.py │ │ │ │ └── registry.py │ │ │ ├── custom/ │ │ │ │ ├── __init__.py │ │ │ │ ├── base_custom_check.py │ │ │ │ └── registry.py │ │ │ ├── function/ │ │ │ │ ├── __init__.py │ │ │ │ ├── aws/ │ │ │ │ │ ├── AWSCredentials.py │ │ │ │ │ ├── AdminPolicyDocument.py │ │ │ │ │ ├── StarActionPolicyDocument.py │ │ │ │ │ └── __init__.py │ │ │ │ ├── base_function_check.py │ │ │ │ └── registry.py │ │ │ ├── layer/ │ │ │ │ ├── __init__.py │ │ │ │ ├── base_layer_check.py │ │ │ │ └── registry.py │ │ │ ├── package/ │ │ │ │ ├── __init__.py │ │ │ │ ├── base_package_check.py │ │ │ │ └── registry.py │ │ │ ├── plugin/ │ │ │ │ ├── __init__.py │ │ │ │ ├── base_plugin_check.py │ │ │ │ └── registry.py │ │ │ ├── provider/ │ │ │ │ ├── __init__.py │ │ │ │ ├── base_provider_check.py │ │ │ │ └── registry.py │ │ │ └── service/ │ │ │ ├── __init__.py │ │ │ ├── base_service_check.py │ │ │ └── registry.py │ │ ├── graph_builder/ │ │ │ ├── __init__.py │ │ │ ├── definition_context.py │ │ │ ├── graph_components/ │ │ │ │ ├── __init__.py │ │ │ │ └── blocks.py │ │ │ ├── graph_to_definitions.py │ │ │ └── local_graph.py │ │ ├── graph_manager.py │ │ ├── parsers/ │ │ │ ├── __init__.py │ │ │ ├── context_parser.py │ │ │ └── parser.py │ │ ├── registry.py │ │ ├── runner.py │ │ └── utils.py │ ├── terraform/ │ │ ├── __init__.py │ │ ├── base_runner.py │ │ ├── checks/ │ │ │ ├── __init__.py │ │ │ ├── data/ │ │ │ │ ├── __init__.py │ │ │ │ ├── aws/ │ │ │ │ │ ├── AdminPolicyDocument.py │ │ │ │ │ ├── GithubActionsOIDCTrustPolicy.py │ │ │ │ │ ├── IAMCredentialsExposure.py │ │ │ │ │ ├── IAMDataExfiltration.py │ │ │ │ │ ├── IAMManagedAdminPolicy.py │ │ │ │ │ ├── IAMPermissionsManagement.py │ │ │ │ │ ├── IAMPrivilegeEscalation.py │ │ │ │ │ ├── IAMPublicActionsPolicy.py │ │ │ │ │ ├── IAMWriteAccess.py │ │ │ │ │ ├── ResourcePolicyDocument.py │ │ │ │ │ ├── StarActionPolicyDocument.py │ │ │ │ │ ├── WhoAMI.py │ │ │ │ │ └── __init__.py │ │ │ │ ├── base_check.py │ │ │ │ ├── base_cloudsplaining_data_iam_check.py │ │ │ │ ├── base_registry.py │ │ │ │ ├── external/ │ │ │ │ │ └── __init__.py │ │ │ │ ├── gcp/ │ │ │ │ │ ├── GooglePolicyIsPrivate.py │ │ │ │ │ └── __init__.py │ │ │ │ └── registry.py │ │ │ ├── graph_checks/ │ │ │ │ ├── __init__.py │ │ │ │ ├── alicloud/ │ │ │ │ │ └── OSSBucketPublic.yaml │ │ │ │ ├── aws/ │ │ │ │ │ ├── ACMWildcardDomainName.yaml │ │ │ │ │ ├── ALBProtectedByWAF.yaml │ │ │ │ │ ├── ALBRedirectsHTTPToHTTPS.yaml │ │ │ │ │ ├── ALBWebACLConfiguredWIthLog4jVulnerability.yaml │ │ │ │ │ ├── AMRClustersNotOpenToInternet.yaml │ │ │ │ │ ├── APIGWLoggingLevelsDefinedProperly.yaml │ │ │ │ │ ├── APIGatewayEndpointsUsesCertificateForAuthentication.yaml │ │ │ │ │ ├── APIGatewayRequestParameterValidationEnabled.yaml │ │ │ │ │ ├── APIGatewayWebACLConfiguredWIthLog4jVulnerability.yaml │ │ │ │ │ ├── APIProtectedByWAF.yaml │ │ │ │ │ ├── AWSConfigRecorderEnabled.yaml │ │ │ │ │ ├── AWSNATGatewaysshouldbeutilized.yaml │ │ │ │ │ ├── AWSSSMParameterShouldBeEncrypted.yaml │ │ │ │ │ ├── AWS_private_MWAA_environment.yaml │ │ │ │ │ ├── AWSdisableS3ACL.yaml │ │ │ │ │ ├── AppLoadBalancerTLS12.yaml │ │ │ │ │ ├── AppSyncProtectedByWAF.yaml │ │ │ │ │ ├── AppsyncWebACLConfiguredWIthLog4jVulnerability.yaml │ │ │ │ │ ├── AutoScalingEnableOnDynamoDBTables.yaml │ │ │ │ │ ├── AutoScallingEnabledELB.yaml │ │ │ │ │ ├── CLoudFrontS3OriginConfigWithOAI.yaml │ │ │ │ │ ├── CloudFrontHasCustomSSLCertificate.yaml │ │ │ │ │ ├── CloudFrontHasResponseHeadersPolicy.yaml │ │ │ │ │ ├── CloudFrontUsesSecureProtocolsForHTTPS.yaml │ │ │ │ │ ├── CloudFrontWebACLConfiguredWIthLog4jVulnerability.yaml │ │ │ │ │ ├── CloudfrontOriginNotHTTPSOnly.yaml │ │ │ │ │ ├── CloudtrailHasCloudwatch.yaml │ │ │ │ │ ├── CodecommitApprovalRulesAttached.yaml │ │ │ │ │ ├── ConfigRecorderRecordsAllGlobalResources.yaml │ │ │ │ │ ├── DMSEndpointHaveSSLConfigured.yaml │ │ │ │ │ ├── EBSAddedBackup.yaml │ │ │ │ │ ├── EC2InstanceHasIAMRoleAttached.yaml │ │ │ │ │ ├── EFSAddedBackup.yaml │ │ │ │ │ ├── EIPAllocatedToVPCAttachedEC2.yaml │ │ │ │ │ ├── EMRClusterHasSecurityConfiguration.yaml │ │ │ │ │ ├── ElastiCacheRedisConfiguredAutomaticFailOver.yaml │ │ │ │ │ ├── ElasticSearchDedicatedMasterEnabled.yaml │ │ │ │ │ ├── EncryptedEBSVolumeOnlyConnectedToEC2s.yaml │ │ │ │ │ ├── GuardDutyIsEnabled.yaml │ │ │ │ │ ├── HTTPNotSendingPasswords.yaml │ │ │ │ │ ├── IAMGroupHasAtLeastOneUser.yaml │ │ │ │ │ ├── IAMManagedIAMFullAccessPolicy.yaml │ │ │ │ │ ├── IAMPolicyNotAllowFullIAMAccess.yaml │ │ │ │ │ ├── IAMUserHasNoConsoleAccess.yaml │ │ │ │ │ ├── IAMUsersAreMembersAtLeastOneGroup.yaml │ │ │ │ │ ├── KmsKeyPolicyIsDefined.yaml │ │ │ │ │ ├── LBTargetGroup.yaml │ │ │ │ │ ├── LBWeakCiphers.yaml │ │ │ │ │ ├── LambdaOpenCorsPolicy.yaml │ │ │ │ │ ├── NeptuneDeletionProtectionEnabled.yaml │ │ │ │ │ ├── NetworkFirewallHasLogging.yaml │ │ │ │ │ ├── OpenSearchDomainHasFineGrainedControl.yaml │ │ │ │ │ ├── PostgresDBHasQueryLoggingEnabled.yaml │ │ │ │ │ ├── PostgresRDSHasQueryLoggingEnabled.yaml │ │ │ │ │ ├── RDSClusterHasBackupPlan.yaml │ │ │ │ │ ├── RDSEnableCopyTagsToSnapshot.yaml │ │ │ │ │ ├── RDSEncryptionInTransit.yaml │ │ │ │ │ ├── Route53ARecordAttachedResource.yaml │ │ │ │ │ ├── Route53ZoneEnableDNSSECSigning.yaml │ │ │ │ │ ├── Route53ZoneHasMatchingQueryLog.yaml │ │ │ │ │ ├── S3BucketEncryption.yaml │ │ │ │ │ ├── S3BucketEventNotifications.yaml │ │ │ │ │ ├── S3BucketHasPublicAccessBlock.yaml │ │ │ │ │ ├── S3BucketLifecycle.yaml │ │ │ │ │ ├── S3BucketLogging.yaml │ │ │ │ │ ├── S3BucketReplicationConfiguration.yaml │ │ │ │ │ ├── S3BucketVersioning.yaml │ │ │ │ │ ├── S3KMSEncryptedByDefault.yaml │ │ │ │ │ ├── S3NotAllowAccessToAllAuthenticatedUsers.yaml │ │ │ │ │ ├── S3PublicACLRead.yaml │ │ │ │ │ ├── S3PublicACLWrite.yaml │ │ │ │ │ ├── SGAttachedToResource.yaml │ │ │ │ │ ├── SQSEncryptionCMK.yaml │ │ │ │ │ ├── SageMakerIAMPolicyOverlyPermissiveToAllTraffic.yaml │ │ │ │ │ ├── SecretsAreRotated.yaml │ │ │ │ │ ├── SubnetHasACL.yaml │ │ │ │ │ ├── VPCHasFlowLog.yaml │ │ │ │ │ ├── VPCHasRestrictedSG.yaml │ │ │ │ │ ├── VPCPeeringRouteTableOverlyPermissive.yaml │ │ │ │ │ └── WAF2HasLogs.yaml │ │ │ │ ├── azure/ │ │ │ │ │ ├── AccessToPostgreSQLFromAzureServicesIsDisabled.yaml │ │ │ │ │ ├── ApplicationGatewayEnablesWAF.yaml │ │ │ │ │ ├── AzureACR_HTTPSwebhook.yaml │ │ │ │ │ ├── AzureAKSclusterAzureCNIEnabled.yaml │ │ │ │ │ ├── AzureActiveDirectoryAdminIsConfigured.yaml │ │ │ │ │ ├── AzureAntimalwareIsConfiguredWithAutoUpdatesForVMs.yaml │ │ │ │ │ ├── AzureAutomationAccConfigManagedIdentity.yaml │ │ │ │ │ ├── AzureAutomationAccNotOverlyPermissiveNetAccess.yaml │ │ │ │ │ ├── AzureConfigMSSQLwithAD.yaml │ │ │ │ │ ├── AzureContainerInstanceconfigManagedIdentity.yaml │ │ │ │ │ ├── AzureDataFactoriesEncryptedWithCustomerManagedKey.yaml │ │ │ │ │ ├── AzureKeyVaultConfigPrivateEndpoint.yaml │ │ │ │ │ ├── AzureMLWorkspaceHBIPublicNetwork.yaml │ │ │ │ │ ├── AzureMLWorkspacePublicNetwork.yaml │ │ │ │ │ ├── AzureMSSQLServerHasSecurityAlertPolicy.yaml │ │ │ │ │ ├── AzureMSSQLserverConfigPrivEndpt.yaml │ │ │ │ │ ├── AzureMariaDBserverConfigPrivEndpt.yaml │ │ │ │ │ ├── AzureMariaDBserverUsingTLS_1_2.yaml │ │ │ │ │ ├── AzureMySQLFlexibleServerConfigPrivEndpt.yaml │ │ │ │ │ ├── AzureMySQLserverConfigPrivEndpt.yaml │ │ │ │ │ ├── AzureNetworkInterfacePublicIPAddressId.yaml │ │ │ │ │ ├── AzurePostgreSQLFlexServerNotOverlyPermissive.yaml │ │ │ │ │ ├── AzurePostgreSQLFlexibleServerConfigPrivEndpt.yaml │ │ │ │ │ ├── AzurePostgreSQLserverConfigPrivEndpt.yaml │ │ │ │ │ ├── AzureRecoveryServicesvaultConfigManagedIdentity.yaml │ │ │ │ │ ├── AzureSQLserverNotOverlyPermissive.yaml │ │ │ │ │ ├── AzureSpringCloudConfigWithVnet.yaml │ │ │ │ │ ├── AzureSpringCloudTLSDisabled.yaml │ │ │ │ │ ├── AzureSqlDbEnableTransparentDataEncryption.yaml │ │ │ │ │ ├── AzureStorageAccConfigSharedKeyAuth.yaml │ │ │ │ │ ├── AzureStorageAccConfigWithPrivateEndpoint.yaml │ │ │ │ │ ├── AzureStorageAccConfigWithoutBlobAnonymousAccess.yaml │ │ │ │ │ ├── AzureStorageAccConfig_SAS_expirePolicy.yaml │ │ │ │ │ ├── AzureStorageAccountEnableSoftDelete.yaml │ │ │ │ │ ├── AzureSubnetConfigWithNSG.yaml │ │ │ │ │ ├── AzureSynapseWorkspaceVAisEnabled.yaml │ │ │ │ │ ├── AzureSynapseWorkspacesHaveNoIPFirewallRulesAttached.yaml │ │ │ │ │ ├── AzureUnattachedDisksAreEncrypted.yaml │ │ │ │ │ ├── AzureVMconfigPublicIP_SerialConsoleAccess.yaml │ │ │ │ │ ├── CognitiveServicesCustomerManagedKey.yaml │ │ │ │ │ ├── DataExplorerEncryptionUsesCustomKey.yaml │ │ │ │ │ ├── DatabricksWorkspaceDBFSRootEncryptedWithCustomerManagedKey.yaml │ │ │ │ │ ├── MSQLenablesCustomerManagedKey.yaml │ │ │ │ │ ├── PGSQLenablesCustomerManagedKey.yaml │ │ │ │ │ ├── SQLServerAuditingEnabled.yaml │ │ │ │ │ ├── SQLServerAuditingRetention90Days.yaml │ │ │ │ │ ├── StorageContainerActivityLogsNotPublic.yaml │ │ │ │ │ ├── StorageCriticalDataEncryptedCMK.yaml │ │ │ │ │ ├── StorageLoggingIsEnabledForBlobService.yaml │ │ │ │ │ ├── StorageLoggingIsEnabledForTableService.yaml │ │ │ │ │ ├── SynapseLogMonitoringEnabledForSQLPool.yaml │ │ │ │ │ ├── SynapseSQLPoolHasSecurityAlertPolicy.yaml │ │ │ │ │ ├── SynapseSQLPoolHasVulnerabilityAssessment.yaml │ │ │ │ │ ├── SynapseWorkspaceHasExtendedAuditLogs.yaml │ │ │ │ │ ├── VAconfiguredToSendReports.yaml │ │ │ │ │ ├── VAconfiguredToSendReportsToAdmins.yaml │ │ │ │ │ ├── VAisEnabledInStorageAccount.yaml │ │ │ │ │ ├── VAsetPeriodicScansOnSQL.yaml │ │ │ │ │ ├── VMHasBackUpMachine.yaml │ │ │ │ │ └── VirtualMachinesUtilizingManagedDisks.yaml │ │ │ │ ├── azuredevops/ │ │ │ │ │ └── ADORepositoryHasMinTwoReviewers.yaml │ │ │ │ ├── gcp/ │ │ │ │ │ ├── CloudFunctionSecureHTTPTrigger.yaml │ │ │ │ │ ├── DisableAccessToSqlDBInstanceForRootUsersWithoutPassword.yaml │ │ │ │ │ ├── GCPAuditLogsConfiguredForAllServicesAndUsers.yaml │ │ │ │ │ ├── GCPComputeFirewallOverlyPermissiveToAllTraffic.yaml │ │ │ │ │ ├── GCPComputeGlobalForwardingRuleCheck.yaml │ │ │ │ │ ├── GCPComputeRegionalForwardingRuleCheck.yaml │ │ │ │ │ ├── GCPContainerRegistryReposAreNotPubliclyAccessible.yaml │ │ │ │ │ ├── GCPDialogFlowAgentLoggingEnabled.yaml │ │ │ │ │ ├── GCPDialogFlowCxAgentLoggingEnabled.yaml │ │ │ │ │ ├── GCPDialogFlowCxWebhookLoggingEnabled.yaml │ │ │ │ │ ├── GCPDocumentAIProcessorEncryptedWithCMK.yaml │ │ │ │ │ ├── GCPDocumentAIWarehouseLocationEncryptedWithCMK.yaml │ │ │ │ │ ├── GCPKMSCryptoKeysAreNotPubliclyAccessible.yaml │ │ │ │ │ ├── GCPKMSKeyRingsAreNotPubliclyAccessible.yaml │ │ │ │ │ ├── GCPLogBucketsConfiguredUsingLock.yaml │ │ │ │ │ ├── GCPMySQLdbInstancePoint_In_TimeRecoveryBackupIsEnabled.yaml │ │ │ │ │ ├── GCPNetworkDoesNotUseDefaultFirewall.yaml │ │ │ │ │ ├── GCPPostgreSQLDatabaseFlaglog_durationIsSetToON.yaml │ │ │ │ │ ├── GCPPostgreSQLDatabaseFlaglog_executor_statsIsSetToOFF.yaml │ │ │ │ │ ├── GCPPostgreSQLDatabaseFlaglog_parser_statsIsSetToOFF.yaml │ │ │ │ │ ├── GCPPostgreSQLDatabaseFlaglog_planner_statsIsSetToOFF.yaml │ │ │ │ │ ├── GCPPostgreSQLDatabaseFlaglog_statement_statsIsSetToOFF.yaml │ │ │ │ │ ├── GCPProjectHasNoLegacyNetworks.yaml │ │ │ │ │ ├── GCPTpuV2VmPrivateEndpoint.yaml │ │ │ │ │ ├── GCPVertexAIEndpointEncryptedWithCMK.yaml │ │ │ │ │ ├── GCPVertexAIFeaturestoreEncryptedWithCMK.yaml │ │ │ │ │ ├── GCPVertexAIPrivateEndpoint.yaml │ │ │ │ │ ├── GCPVertexAIPrivateIndexEndpoint.yaml │ │ │ │ │ ├── GCPVertexAITensorboardEncryptedWithCMK.yaml │ │ │ │ │ ├── GCPVertexInstanceEncryptedWithCMK.yaml │ │ │ │ │ ├── GCPVertexRuntimeEncryptedWithCMK.yaml │ │ │ │ │ ├── GCPVertexRuntimePrivate.yaml │ │ │ │ │ ├── GCPVertexWorkbenchInstanceEncryptedWithCMK.yaml │ │ │ │ │ ├── GCPVertexWorkbenchInstanceNoPublicIp.yaml │ │ │ │ │ ├── GCPdisableAlphaClusterFeatureInKubernetesEngineClusters.yaml │ │ │ │ │ ├── GCRContainerVulnerabilityScanningEnabled.yaml │ │ │ │ │ ├── GKEClustersAreNotUsingDefaultServiceAccount.yaml │ │ │ │ │ └── ServiceAccountHasGCPmanagedKey.yaml │ │ │ │ ├── github/ │ │ │ │ │ └── RepositoryHasBranchProtection.yaml │ │ │ │ ├── ibm/ │ │ │ │ │ ├── IBM_EnableMFAatAccountLevel.yaml │ │ │ │ │ ├── IBM_K8sClustersAccessibleViaPrivateEndPt.yaml │ │ │ │ │ ├── IBM_LoadBalancerforVPCisPrivate.yaml │ │ │ │ │ ├── IBM_RestrictAPIkeyCreationInAccountSettings.yaml │ │ │ │ │ ├── IBM_RestrictServiceIDCreationInAccountSettings.yaml │ │ │ │ │ └── IBM_VPCclassicAccessIsDisabled.yaml │ │ │ │ ├── ncp/ │ │ │ │ │ ├── AccessControlGroupRuleDefine.yaml │ │ │ │ │ ├── AutoScalingEnabledLB.yaml │ │ │ │ │ └── RouteTablePublicSubnetConnection.yaml │ │ │ │ └── oci/ │ │ │ │ ├── AdministratorUserNotAssociatedWithAPIKey.yaml │ │ │ │ ├── OCI_K8EngineClusterBootVolConfigInTransitEncryption.yaml │ │ │ │ ├── OCI_K8EngineClusterPodSecPolicyEnforced.yaml │ │ │ │ ├── OCI_KubernetesEngineClusterEndpointConfigWithNSG.yaml │ │ │ │ ├── OCI_NFSaccessRestrictedToRootUsers.yaml │ │ │ │ └── OCI_NSGNotAllowRDP.yaml │ │ │ ├── module/ │ │ │ │ ├── __init__.py │ │ │ │ ├── base_module_check.py │ │ │ │ ├── base_registry.py │ │ │ │ ├── generic/ │ │ │ │ │ ├── RevisionHash.py │ │ │ │ │ ├── RevisionVersionTag.py │ │ │ │ │ └── __init__.py │ │ │ │ └── registry.py │ │ │ ├── provider/ │ │ │ │ ├── __init__.py │ │ │ │ ├── aws/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── credentials.py │ │ │ │ ├── base_check.py │ │ │ │ ├── base_registry.py │ │ │ │ ├── bridgecrew/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── credentials.py │ │ │ │ ├── linode/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── credentials.py │ │ │ │ ├── ncp/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── credentials.py │ │ │ │ ├── oci/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── credentials.py │ │ │ │ ├── openstack/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── credentials.py │ │ │ │ ├── panos/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── credentials.py │ │ │ │ └── registry.py │ │ │ ├── resource/ │ │ │ │ ├── __init__.py │ │ │ │ ├── alicloud/ │ │ │ │ │ ├── ALBACLIsUnrestricted.py │ │ │ │ │ ├── APIGatewayProtocolHTTPS.py │ │ │ │ │ ├── AbsRDSParameter.py │ │ │ │ │ ├── AbsSecurityGroupUnrestrictedIngress.py │ │ │ │ │ ├── ActionTrailLogAllEvents.py │ │ │ │ │ ├── ActionTrailLogAllRegions.py │ │ │ │ │ ├── DiskEncryptedWithCMK.py │ │ │ │ │ ├── DiskIsEncrypted.py │ │ │ │ │ ├── K8sEnableNetworkPolicies.py │ │ │ │ │ ├── K8sNodePoolAutoRepair.py │ │ │ │ │ ├── KMSKeyIsEnabled.py │ │ │ │ │ ├── KMSKeyRotationIsEnabled.py │ │ │ │ │ ├── LaunchTemplateDisksAreEncrypted.py │ │ │ │ │ ├── LogAuditRDSEnabled.py │ │ │ │ │ ├── MongoDBInsideVPC.py │ │ │ │ │ ├── MongoDBInstanceSSL.py │ │ │ │ │ ├── MongoDBIsPublic.py │ │ │ │ │ ├── MongoDBTransparentDataEncryptionEnabled.py │ │ │ │ │ ├── OSSBucketAccessLogs.py │ │ │ │ │ ├── OSSBucketEncryptedWithCMK.py │ │ │ │ │ ├── OSSBucketTransferAcceleration.py │ │ │ │ │ ├── OSSBucketVersioning.py │ │ │ │ │ ├── RAMPasswordPolicyExpiration.py │ │ │ │ │ ├── RAMPasswordPolicyLength.py │ │ │ │ │ ├── RAMPasswordPolicyLowercaseLetter.py │ │ │ │ │ ├── RAMPasswordPolicyMaxLogin.py │ │ │ │ │ ├── RAMPasswordPolicyNumber.py │ │ │ │ │ ├── RAMPasswordPolicyReuse.py │ │ │ │ │ ├── RAMPasswordPolicySymbol.py │ │ │ │ │ ├── RAMPasswordPolicyUppcaseLetter.py │ │ │ │ │ ├── RAMSecurityEnforceMFA.py │ │ │ │ │ ├── RDSInstanceAutoUpgrade.py │ │ │ │ │ ├── RDSInstanceLogConnections.py │ │ │ │ │ ├── RDSInstanceLogDisconnections.py │ │ │ │ │ ├── RDSInstanceLogsEnabled.py │ │ │ │ │ ├── RDSInstanceSSL.py │ │ │ │ │ ├── RDSIsPublic.py │ │ │ │ │ ├── RDSRetention.py │ │ │ │ │ ├── RDSTransparentDataEncryptionEnabled.py │ │ │ │ │ ├── SecurityGroupUnrestrictedIngress22.py │ │ │ │ │ ├── SecurityGroupUnrestrictedIngress3389.py │ │ │ │ │ ├── TLSPoliciesAreSecure.py │ │ │ │ │ └── __init__.py │ │ │ │ ├── aws/ │ │ │ │ │ ├── ACMCertCreateBeforeDestroy.py │ │ │ │ │ ├── ACMCertSetLoggingPreference.py │ │ │ │ │ ├── ALBDesyncMode.py │ │ │ │ │ ├── ALBDropHttpHeaders.py │ │ │ │ │ ├── ALBListenerHTTPS.py │ │ │ │ │ ├── AMICopyIsEncrypted.py │ │ │ │ │ ├── AMICopyUsesCMK.py │ │ │ │ │ ├── AMIEncryption.py │ │ │ │ │ ├── AMILaunchIsShared.py │ │ │ │ │ ├── APIGatewayAccessLogging.py │ │ │ │ │ ├── APIGatewayAuthorization.py │ │ │ │ │ ├── APIGatewayCacheEnable.py │ │ │ │ │ ├── APIGatewayCreateBeforeDestroy.py │ │ │ │ │ ├── APIGatewayDeploymentCreateBeforeDestroy.py │ │ │ │ │ ├── APIGatewayDomainNameTLS.py │ │ │ │ │ ├── APIGatewayMethodSettingsCacheEnabled.py │ │ │ │ │ ├── APIGatewayMethodSettingsCacheEncrypted.py │ │ │ │ │ ├── APIGatewayMethodSettingsDataTrace.py │ │ │ │ │ ├── APIGatewayMethodWOAuth.py │ │ │ │ │ ├── APIGatewayV2RouteDefinesAuthorizationType.py │ │ │ │ │ ├── APIGatewayXray.py │ │ │ │ │ ├── AWSCodeGuruHasCMK.py │ │ │ │ │ ├── AbsNACLUnrestrictedIngress.py │ │ │ │ │ ├── AbsSecurityGroupUnrestrictedEgress.py │ │ │ │ │ ├── AbsSecurityGroupUnrestrictedIngress.py │ │ │ │ │ ├── AppFlowConnectorProfileUsesCMK.py │ │ │ │ │ ├── AppFlowUsesCMK.py │ │ │ │ │ ├── AppSyncFieldLevelLogs.py │ │ │ │ │ ├── AppSyncLogging.py │ │ │ │ │ ├── AppsyncAPICacheEncryptionAtRest.py │ │ │ │ │ ├── AppsyncAPICacheEncryptionInTransit.py │ │ │ │ │ ├── AthenaDatabaseEncryption.py │ │ │ │ │ ├── AthenaWorkgroupConfiguration.py │ │ │ │ │ ├── AthenaWorkgroupEncryption.py │ │ │ │ │ ├── AuroraEncryption.py │ │ │ │ │ ├── AutoScalingGroupWithPublicAccess.py │ │ │ │ │ ├── AutoScalingLaunchTemplate.py │ │ │ │ │ ├── AutoScalingTagging.py │ │ │ │ │ ├── BackupVaultEncrypted.py │ │ │ │ │ ├── BatchJobIsNotPrivileged.py │ │ │ │ │ ├── BedrockAgentEncrypted.py │ │ │ │ │ ├── BedrockGuardrails.py │ │ │ │ │ ├── CloudFrontGeoRestrictionDisabled.py │ │ │ │ │ ├── CloudFrontResponseHeaderStrictTransportSecurity.py │ │ │ │ │ ├── CloudWatchAlarmsEnabled.py │ │ │ │ │ ├── CloudWatchLogGroupKMSKey.py │ │ │ │ │ ├── CloudWatchLogGroupRetention.py │ │ │ │ │ ├── CloudWatchLogGroupRetentionYear.py │ │ │ │ │ ├── CloudformationStackNotificationArns.py │ │ │ │ │ ├── CloudfrontDistributionDefaultRoot.py │ │ │ │ │ ├── CloudfrontDistributionEnabled.py │ │ │ │ │ ├── CloudfrontDistributionEncryption.py │ │ │ │ │ ├── CloudfrontDistributionLogging.py │ │ │ │ │ ├── CloudfrontDistributionOriginFailover.py │ │ │ │ │ ├── CloudfrontTLS12.py │ │ │ │ │ ├── CloudsearchDomainEnforceHttps.py │ │ │ │ │ ├── CloudsearchDomainTLS.py │ │ │ │ │ ├── CloudtrailDefinesSNSTopic.py │ │ │ │ │ ├── CloudtrailEnableLogging.py │ │ │ │ │ ├── CloudtrailEncryptionWithCMK.py │ │ │ │ │ ├── CloudtrailEventDataStoreUsesCMK.py │ │ │ │ │ ├── CloudtrailLogValidation.py │ │ │ │ │ ├── CloudtrailMultiRegion.py │ │ │ │ │ ├── CodeArtifactDomainEncryptedWithCMK.py │ │ │ │ │ ├── CodeBuildPrivilegedMode.py │ │ │ │ │ ├── CodeBuildProjectEncryption.py │ │ │ │ │ ├── CodePipelineArtifactsEncrypted.py │ │ │ │ │ ├── CodebuildHasLogs.py │ │ │ │ │ ├── CodebuildS3LogsEncrypted.py │ │ │ │ │ ├── CodebuildUsesCMK.py │ │ │ │ │ ├── CodecommitApprovalsRulesRequireMin2.py │ │ │ │ │ ├── CognitoUnauthenticatedIdentities.py │ │ │ │ │ ├── ComprehendEntityRecognizerModelUsesCMK.py │ │ │ │ │ ├── ComprehendEntityRecognizerVolumeUsesCMK.py │ │ │ │ │ ├── ConfigConfgurationAggregatorAllRegions.py │ │ │ │ │ ├── ConnectInstanceKinesisVideoStreamStorageConfigUsesCMK.py │ │ │ │ │ ├── ConnectInstanceS3StorageConfigUsesCMK.py │ │ │ │ │ ├── DAXEncryption.py │ │ │ │ │ ├── DAXEndpointTLS.py │ │ │ │ │ ├── DBInstanceBackupRetentionPeriod.py │ │ │ │ │ ├── DBInstanceLogging.py │ │ │ │ │ ├── DBInstanceMinorUpgrade.py │ │ │ │ │ ├── DBSnapshotCopyUsesCMK.py │ │ │ │ │ ├── DBSnapshotsArePrivate.py │ │ │ │ │ ├── DLMEventsCrossRegionEncryption.py │ │ │ │ │ ├── DLMEventsCrossRegionEncryptionWithCMK.py │ │ │ │ │ ├── DLMScheduleCrossRegionEncryption.py │ │ │ │ │ ├── DLMScheduleCrossRegionEncryptionWithCMK.py │ │ │ │ │ ├── DMSEndpointUsesCMK.py │ │ │ │ │ ├── DMSReplicationInstanceEncryptedWithCMK.py │ │ │ │ │ ├── DMSReplicationInstanceMinorUpgrade.py │ │ │ │ │ ├── DMSReplicationInstancePubliclyAccessible.py │ │ │ │ │ ├── DMSS3UsesCMK.py │ │ │ │ │ ├── DatasyncLocationExposesSecrets.py │ │ │ │ │ ├── DeprecatedLambdaRuntime.py │ │ │ │ │ ├── DocDBAuditLogs.py │ │ │ │ │ ├── DocDBBackupRetention.py │ │ │ │ │ ├── DocDBEncryptedWithCMK.py │ │ │ │ │ ├── DocDBEncryption.py │ │ │ │ │ ├── DocDBGlobalClusterEncryption.py │ │ │ │ │ ├── DocDBLogging.py │ │ │ │ │ ├── DocDBTLS.py │ │ │ │ │ ├── DynamoDBGlobalTableRecovery.py │ │ │ │ │ ├── DynamoDBTableReplicaKMSUsesCMK.py │ │ │ │ │ ├── DynamoDBTablesEncrypted.py │ │ │ │ │ ├── DynamodbRecovery.py │ │ │ │ │ ├── EBSDefaultEncryption.py │ │ │ │ │ ├── EBSEncryption.py │ │ │ │ │ ├── EBSSnapshotCopyEncryptedWithCMK.py │ │ │ │ │ ├── EBSVolumeEncryptedWithCMK.py │ │ │ │ │ ├── EC2Credentials.py │ │ │ │ │ ├── EC2DetailedMonitoringEnabled.py │ │ │ │ │ ├── EC2EBSOptimized.py │ │ │ │ │ ├── EC2PublicIP.py │ │ │ │ │ ├── ECRImageScanning.py │ │ │ │ │ ├── ECRImmutableTags.py │ │ │ │ │ ├── ECRPolicy.py │ │ │ │ │ ├── ECRRepositoryEncrypted.py │ │ │ │ │ ├── ECSClusterContainerInsights.py │ │ │ │ │ ├── ECSClusterLoggingEnabled.py │ │ │ │ │ ├── ECSClusterLoggingEncryptedWithCMK.py │ │ │ │ │ ├── ECSContainerHostProcess.py │ │ │ │ │ ├── ECSContainerPrivilege.py │ │ │ │ │ ├── ECSContainerReadOnlyRoot.py │ │ │ │ │ ├── ECSServiceFargateLatest.py │ │ │ │ │ ├── ECSServicePublicIP.py │ │ │ │ │ ├── ECSTaskDefinitionEFSVolumeEncryption.py │ │ │ │ │ ├── ECSTaskDefinitionRoleCheck.py │ │ │ │ │ ├── EFSAccessPointRoot.py │ │ │ │ │ ├── EFSAccessUserIdentity.py │ │ │ │ │ ├── EFSEncryptionEnabled.py │ │ │ │ │ ├── EFSFileSystemEncryptedWithCMK.py │ │ │ │ │ ├── EKSControlPlaneLogging.py │ │ │ │ │ ├── EKSNodeGroupRemoteAccess.py │ │ │ │ │ ├── EKSPlatformVersion.py │ │ │ │ │ ├── EKSPublicAccess.py │ │ │ │ │ ├── EKSPublicAccessCIDR.py │ │ │ │ │ ├── EKSSecretsEncryption.py │ │ │ │ │ ├── ELBAccessLogs.py │ │ │ │ │ ├── ELBCrossZoneEnable.py │ │ │ │ │ ├── ELBPolicyUsesSecureProtocols.py │ │ │ │ │ ├── ELBUsesSSL.py │ │ │ │ │ ├── ELBv2AccessLogs.py │ │ │ │ │ ├── ELBwListenerNotTLSSSL.py │ │ │ │ │ ├── EMRClusterConfEncryptsEBS.py │ │ │ │ │ ├── EMRClusterConfEncryptsInTransit.py │ │ │ │ │ ├── EMRClusterConfEncryptsLocalDisk.py │ │ │ │ │ ├── EMRClusterIsEncryptedKMS.py │ │ │ │ │ ├── EMRClusterKerberosAttributes.py │ │ │ │ │ ├── EMRPubliclyAccessible.py │ │ │ │ │ ├── Ec2TransitGatewayAutoAccept.py │ │ │ │ │ ├── ElastiCacheHasCustomSubnet.py │ │ │ │ │ ├── ElasticBeanstalkUseEnhancedHealthChecks.py │ │ │ │ │ ├── ElasticBeanstalkUseManagedUpdates.py │ │ │ │ │ ├── ElasticCacheAutomaticBackup.py │ │ │ │ │ ├── ElasticCacheAutomaticMinorUpgrades.py │ │ │ │ │ ├── ElasticacheHasSecurityGroup.py │ │ │ │ │ ├── ElasticacheReplicationGroupEncryptedWithCMK.py │ │ │ │ │ ├── ElasticacheReplicationGroupEncryptionAtRest.py │ │ │ │ │ ├── ElasticacheReplicationGroupEncryptionAtTransit.py │ │ │ │ │ ├── ElasticacheReplicationGroupEncryptionAtTransitAuthToken.py │ │ │ │ │ ├── ElasticsearchDefaultSG.py │ │ │ │ │ ├── ElasticsearchDomainAuditLogging.py │ │ │ │ │ ├── ElasticsearchDomainEnforceHTTPS.py │ │ │ │ │ ├── ElasticsearchDomainHA.py │ │ │ │ │ ├── ElasticsearchDomainLogging.py │ │ │ │ │ ├── ElasticsearchEncryption.py │ │ │ │ │ ├── ElasticsearchEncryptionWithCMK.py │ │ │ │ │ ├── ElasticsearchInVPC.py │ │ │ │ │ ├── ElasticsearchNodeToNodeEncryption.py │ │ │ │ │ ├── ElasticsearchTLSPolicy.py │ │ │ │ │ ├── FSXOntapFSEncryptedWithCMK.py │ │ │ │ │ ├── FSXOpenZFSFileSystemEncryptedWithCMK.py │ │ │ │ │ ├── FSXWindowsFSEncryptedWithCMK.py │ │ │ │ │ ├── GlacierVaultAnyPrincipal.py │ │ │ │ │ ├── GlobalAcceleratorAcceleratorFlowLogs.py │ │ │ │ │ ├── GlueDataCatalogEncryption.py │ │ │ │ │ ├── GlueSecurityConfiguration.py │ │ │ │ │ ├── GlueSecurityConfigurationEnabled.py │ │ │ │ │ ├── GuarddutyDetectorEnabled.py │ │ │ │ │ ├── IAMAdminPolicyDocument.py │ │ │ │ │ ├── IAMCredentialsExposure.py │ │ │ │ │ ├── IAMDataExfiltration.py │ │ │ │ │ ├── IAMManagedAdminPolicy.py │ │ │ │ │ ├── IAMPermissionsManagement.py │ │ │ │ │ ├── IAMPolicyAttachedToGroupOrRoles.py │ │ │ │ │ ├── IAMPrivilegeEscalation.py │ │ │ │ │ ├── IAMRoleAllowAssumeFromAccount.py │ │ │ │ │ ├── IAMRoleAllowsPublicAssume.py │ │ │ │ │ ├── IAMStarActionPolicyDocument.py │ │ │ │ │ ├── IAMStarResourcePolicyDocument.py │ │ │ │ │ ├── IAMUserNotUsedForAccess.py │ │ │ │ │ ├── IAMUserRootAccessKeys.py │ │ │ │ │ ├── IAMWriteAccess.py │ │ │ │ │ ├── IMDSv1Disabled.py │ │ │ │ │ ├── ImagebuilderComponentEncryptedWithCMK.py │ │ │ │ │ ├── ImagebuilderDistributionConfigurationEncryptedWithCMK.py │ │ │ │ │ ├── ImagebuilderImageRecipeEBSEncrypted.py │ │ │ │ │ ├── KMSKeyIsEnabled.py │ │ │ │ │ ├── KMSKeyWildcardPrincipal.py │ │ │ │ │ ├── KMSRotation.py │ │ │ │ │ ├── KendraIndexSSEUsesCMK.py │ │ │ │ │ ├── KeyspacesTableUsesCMK.py │ │ │ │ │ ├── KinesisFirehoseDeliveryStreamSSE.py │ │ │ │ │ ├── KinesisFirehoseDeliveryStreamUsesCMK.py │ │ │ │ │ ├── KinesisStreamEncryptedWithCMK.py │ │ │ │ │ ├── KinesisStreamEncryptionType.py │ │ │ │ │ ├── KinesisVideoEncryptedWithCMK.py │ │ │ │ │ ├── LBCrossZone.py │ │ │ │ │ ├── LBDeletionProtection.py │ │ │ │ │ ├── LBTargetGroupsDefinesHealthcheck.py │ │ │ │ │ ├── LambdaCodeSigningConfigured.py │ │ │ │ │ ├── LambdaDLQConfigured.py │ │ │ │ │ ├── LambdaEnvironmentCredentials.py │ │ │ │ │ ├── LambdaEnvironmentEncryptionSettings.py │ │ │ │ │ ├── LambdaFunctionIsNotPublic.py │ │ │ │ │ ├── LambdaFunctionLevelConcurrentExecutionLimit.py │ │ │ │ │ ├── LambdaFunctionURLAuth.py │ │ │ │ │ ├── LambdaInVPC.py │ │ │ │ │ ├── LambdaServicePermission.py │ │ │ │ │ ├── LambdaXrayEnabled.py │ │ │ │ │ ├── LaunchConfigurationEBSEncryption.py │ │ │ │ │ ├── LaunchTemplateMetadataHop.py │ │ │ │ │ ├── LustreFSEncryptedWithCMK.py │ │ │ │ │ ├── MQBrokerAuditLogging.py │ │ │ │ │ ├── MQBrokerEncryptedWithCMK.py │ │ │ │ │ ├── MQBrokerLogging.py │ │ │ │ │ ├── MQBrokerMinorAutoUpgrade.py │ │ │ │ │ ├── MQBrokerNotPubliclyExposed.py │ │ │ │ │ ├── MQBrokerVersion.py │ │ │ │ │ ├── MSKClusterEncryption.py │ │ │ │ │ ├── MSKClusterLogging.py │ │ │ │ │ ├── MSKClusterNodesArePrivate.py │ │ │ │ │ ├── MWAASchedulerLogsEnabled.py │ │ │ │ │ ├── MWAAWebserverLogsEnabled.py │ │ │ │ │ ├── MWAAWorkerLogsEnabled.py │ │ │ │ │ ├── MemoryDBClusterIntransitEncryption.py │ │ │ │ │ ├── MemoryDBEncryptionWithCMK.py │ │ │ │ │ ├── MemoryDBSnapshotEncryptionWithCMK.py │ │ │ │ │ ├── NeptuneClusterBackupRetention.py │ │ │ │ │ ├── NeptuneClusterEncryptedWithCMK.py │ │ │ │ │ ├── NeptuneClusterInstancePublic.py │ │ │ │ │ ├── NeptuneClusterLogging.py │ │ │ │ │ ├── NeptuneClusterSnapshotEncrypted.py │ │ │ │ │ ├── NeptuneClusterSnapshotEncryptedWithCMK.py │ │ │ │ │ ├── NeptuneClusterStorageEncrypted.py │ │ │ │ │ ├── NeptuneDBClustersCopyTagsToSnapshots.py │ │ │ │ │ ├── NeptuneDBClustersIAMDatabaseAuthenticationEnabled.py │ │ │ │ │ ├── NetworkACLUnrestricted.py │ │ │ │ │ ├── NetworkACLUnrestrictedIngress20.py │ │ │ │ │ ├── NetworkACLUnrestrictedIngress21.py │ │ │ │ │ ├── NetworkACLUnrestrictedIngress22.py │ │ │ │ │ ├── NetworkACLUnrestrictedIngress3389.py │ │ │ │ │ ├── NetworkFirewallDeletionProtection.py │ │ │ │ │ ├── NetworkFirewallPolicyDefinesCMK.py │ │ │ │ │ ├── NetworkFirewallUsesCMK.py │ │ │ │ │ ├── PasswordPolicyExpiration.py │ │ │ │ │ ├── PasswordPolicyLength.py │ │ │ │ │ ├── PasswordPolicyLowercaseLetter.py │ │ │ │ │ ├── PasswordPolicyNumber.py │ │ │ │ │ ├── PasswordPolicyReuse.py │ │ │ │ │ ├── PasswordPolicySymbol.py │ │ │ │ │ ├── PasswordPolicyUppercaseLetter.py │ │ │ │ │ ├── QLDBLedgerDeletionProtection.py │ │ │ │ │ ├── QLDBLedgerPermissionsMode.py │ │ │ │ │ ├── RDSCACertIsRecent.py │ │ │ │ │ ├── RDSClusterActivityStreamEncryptedWithCMK.py │ │ │ │ │ ├── RDSClusterAuditLogging.py │ │ │ │ │ ├── RDSClusterAuroraBacktrack.py │ │ │ │ │ ├── RDSClusterCopyTags.py │ │ │ │ │ ├── RDSClusterEncrypted.py │ │ │ │ │ ├── RDSClusterEncryptedWithCMK.py │ │ │ │ │ ├── RDSClusterIAMAuthentication.py │ │ │ │ │ ├── RDSClusterLogging.py │ │ │ │ │ ├── RDSClusterSnapshotEncrypted.py │ │ │ │ │ ├── RDSDeletionProtection.py │ │ │ │ │ ├── RDSEncryption.py │ │ │ │ │ ├── RDSEnhancedMonitorEnabled.py │ │ │ │ │ ├── RDSHasSecurityGroup.py │ │ │ │ │ ├── RDSIAMAuthentication.py │ │ │ │ │ ├── RDSInstanceAutoBackupEncryptionWithCMK.py │ │ │ │ │ ├── RDSInstanceDeletionProtection.py │ │ │ │ │ ├── RDSInstancePerfInsightsEncryptionWithCMK.py │ │ │ │ │ ├── RDSInstancePerformanceInsights.py │ │ │ │ │ ├── RDSMultiAZEnabled.py │ │ │ │ │ ├── RDSPostgreSQLLogFDWExtension.py │ │ │ │ │ ├── RDSPubliclyAccessible.py │ │ │ │ │ ├── RedShiftSSL.py │ │ │ │ │ ├── RedshiftClusterAllowVersionUpgrade.py │ │ │ │ │ ├── RedshiftClusterAutoSnap.py │ │ │ │ │ ├── RedshiftClusterDatabaseName.py │ │ │ │ │ ├── RedshiftClusterEncryption.py │ │ │ │ │ ├── RedshiftClusterKMSKey.py │ │ │ │ │ ├── RedshiftClusterLogging.py │ │ │ │ │ ├── RedshiftClusterSnapshotCopyGrantEncryptedWithCMK.py │ │ │ │ │ ├── RedshiftClusterUseEnhancedVPCRouting.py │ │ │ │ │ ├── RedshiftClusterWithCommonUsernameAndPublicAccess.py │ │ │ │ │ ├── RedshiftInEc2ClassicMode.py │ │ │ │ │ ├── RedshiftServerlessNamespaceKMSKey.py │ │ │ │ │ ├── RedshitClusterPubliclyAvailable.py │ │ │ │ │ ├── Route53TransferLock.py │ │ │ │ │ ├── S3AbortIncompleteUploads.py │ │ │ │ │ ├── S3AccessPointPubliclyAccessible.py │ │ │ │ │ ├── S3AllowsAnyPrincipal.py │ │ │ │ │ ├── S3BlockPublicACLs.py │ │ │ │ │ ├── S3BlockPublicPolicy.py │ │ │ │ │ ├── S3BucketObjectEncryptedWithCMK.py │ │ │ │ │ ├── S3BucketObjectLock.py │ │ │ │ │ ├── S3GlobalViewACL.py │ │ │ │ │ ├── S3IgnorePublicACLs.py │ │ │ │ │ ├── S3ObjectCopyEncryptedWithCMK.py │ │ │ │ │ ├── S3ProtectAgainstPolicyLockout.py │ │ │ │ │ ├── S3RestrictPublicBuckets.py │ │ │ │ │ ├── S3SecureDataTransport.py │ │ │ │ │ ├── SNSCrossAccountAccess.py │ │ │ │ │ ├── SNSTopicEncryption.py │ │ │ │ │ ├── SNSTopicPolicyAnyPrincipal.py │ │ │ │ │ ├── SQSOverlyPermissive.py │ │ │ │ │ ├── SQSPolicy.py │ │ │ │ │ ├── SQSQueueEncryption.py │ │ │ │ │ ├── SQSQueuePolicyAnyPrincipal.py │ │ │ │ │ ├── SSMDocumentsArePrivate.py │ │ │ │ │ ├── SSMParameterUsesCMK.py │ │ │ │ │ ├── SSMSessionManagerDocumentEncryption.py │ │ │ │ │ ├── SSMSessionManagerDocumentLogging.py │ │ │ │ │ ├── SageMakerInternetAccessDisabled.py │ │ │ │ │ ├── SagemakerDataQualityJobDefinitionEncryption.py │ │ │ │ │ ├── SagemakerDataQualityJobDefinitionTrafficEncryption.py │ │ │ │ │ ├── SagemakerDataQualityJobDefinitionVolumeEncryption.py │ │ │ │ │ ├── SagemakerDomainEncryptedWithCMK.py │ │ │ │ │ ├── SagemakerEndpointConfigurationEncryption.py │ │ │ │ │ ├── SagemakerFlowDefinitionUsesKMS.py │ │ │ │ │ ├── SagemakerModelWithNetworkIsolation.py │ │ │ │ │ ├── SagemakerNotebookEncryption.py │ │ │ │ │ ├── SagemakerNotebookInCustomVPC.py │ │ │ │ │ ├── SagemakerNotebookInstanceAllowsIMDSv2.py │ │ │ │ │ ├── SagemakerNotebookRoot.py │ │ │ │ │ ├── SchedulerScheduleUsesCMK.py │ │ │ │ │ ├── SecretManagerSecret90days.py │ │ │ │ │ ├── SecretManagerSecretEncrypted.py │ │ │ │ │ ├── SecurityGroupRuleDescription.py │ │ │ │ │ ├── SecurityGroupUnrestrictedEgressAny.py │ │ │ │ │ ├── SecurityGroupUnrestrictedIngress22.py │ │ │ │ │ ├── SecurityGroupUnrestrictedIngress3389.py │ │ │ │ │ ├── SecurityGroupUnrestrictedIngress80.py │ │ │ │ │ ├── SecurityGroupUnrestrictedIngressAny.py │ │ │ │ │ ├── SesConfigurationSetDefinesTLS.py │ │ │ │ │ ├── StateMachineLoggingExecutionHistory.py │ │ │ │ │ ├── StateMachineXray.py │ │ │ │ │ ├── SubnetPublicIP.py │ │ │ │ │ ├── TimestreamDatabaseKMSKey.py │ │ │ │ │ ├── TransferServerAllowsOnlySecureProtocols.py │ │ │ │ │ ├── TransferServerIsPublic.py │ │ │ │ │ ├── TransferServerLatestPolicy.py │ │ │ │ │ ├── UnpatchedAuroraPostgresDB.py │ │ │ │ │ ├── VPCDefaultNetwork.py │ │ │ │ │ ├── VPCEndpointAcceptanceConfigured.py │ │ │ │ │ ├── WAFACLCVE202144228.py │ │ │ │ │ ├── WAFEnabled.py │ │ │ │ │ ├── WAFHasAnyRules.py │ │ │ │ │ ├── WAFHasLogs.py │ │ │ │ │ ├── WAFRuleHasAnyActions.py │ │ │ │ │ ├── WorkspaceRootVolumeEncrypted.py │ │ │ │ │ ├── WorkspaceUserVolumeEncrypted.py │ │ │ │ │ └── __init__.py │ │ │ │ ├── azure/ │ │ │ │ │ ├── ACRAdminAccountDisabled.py │ │ │ │ │ ├── ACRAnonymousPullDisabled.py │ │ │ │ │ ├── ACRContainerScanEnabled.py │ │ │ │ │ ├── ACRDedicatedDataEndpointEnabled.py │ │ │ │ │ ├── ACREnableImageQuarantine.py │ │ │ │ │ ├── ACREnableRetentionPolicy.py │ │ │ │ │ ├── ACREnableZoneRedundancy.py │ │ │ │ │ ├── ACRGeoreplicated.py │ │ │ │ │ ├── ACRPublicNetworkAccessDisabled.py │ │ │ │ │ ├── ACRUseSignedImages.py │ │ │ │ │ ├── AKSApiServerAuthorizedIpRanges.py │ │ │ │ │ ├── AKSDashboardDisabled.py │ │ │ │ │ ├── AKSEnablesPrivateClusters.py │ │ │ │ │ ├── AKSEncryptionAtHostEnabled.py │ │ │ │ │ ├── AKSEphemeralOSDisks.py │ │ │ │ │ ├── AKSIsPaidSku.py │ │ │ │ │ ├── AKSLocalAdminDisabled.py │ │ │ │ │ ├── AKSLoggingEnabled.py │ │ │ │ │ ├── AKSMaxPodsMinimum.py │ │ │ │ │ ├── AKSNetworkPolicy.py │ │ │ │ │ ├── AKSNodePublicIpDisabled.py │ │ │ │ │ ├── AKSOnlyCriticalPodsOnSystemNodes.py │ │ │ │ │ ├── AKSPoolTypeIsScaleSet.py │ │ │ │ │ ├── AKSRbacEnabled.py │ │ │ │ │ ├── AKSSecretStoreRotation.py │ │ │ │ │ ├── AKSUpgradeChannel.py │ │ │ │ │ ├── AKSUsesAzurePoliciesAddon.py │ │ │ │ │ ├── AKSUsesDiskEncryptionSet.py │ │ │ │ │ ├── APIManagementBackendHTTPS.py │ │ │ │ │ ├── APIManagementCertsEnforced.py │ │ │ │ │ ├── APIManagementMinTLS12.py │ │ │ │ │ ├── APIManagementPublicAccess.py │ │ │ │ │ ├── APIServicesUseVirtualNetwork.py │ │ │ │ │ ├── ActiveDirectoryUsedAuthenticationServiceFabric.py │ │ │ │ │ ├── AppConfigEncryption.py │ │ │ │ │ ├── AppConfigLocalAuth.py │ │ │ │ │ ├── AppConfigPublicAccess.py │ │ │ │ │ ├── AppConfigPurgeProtection.py │ │ │ │ │ ├── AppConfigSku.py │ │ │ │ │ ├── AppGWDefinesSecureProtocols.py │ │ │ │ │ ├── AppGWUseWAFMode.py │ │ │ │ │ ├── AppGWUsesHttps.py │ │ │ │ │ ├── AppGatewayWAFACLCVE202144228.py │ │ │ │ │ ├── AppServiceAlwaysOn.py │ │ │ │ │ ├── AppServiceAuthentication.py │ │ │ │ │ ├── AppServiceClientCertificate.py │ │ │ │ │ ├── AppServiceDetailedErrorMessagesEnabled.py │ │ │ │ │ ├── AppServiceDisallowCORS.py │ │ │ │ │ ├── AppServiceDotnetFrameworkVersion.py │ │ │ │ │ ├── AppServiceEnableFailedRequest.py │ │ │ │ │ ├── AppServiceEnvironmentZoneRedundant.py │ │ │ │ │ ├── AppServiceFTPSState.py │ │ │ │ │ ├── AppServiceHTTPSOnly.py │ │ │ │ │ ├── AppServiceHttpLoggingEnabled.py │ │ │ │ │ ├── AppServiceHttps20Enabled.py │ │ │ │ │ ├── AppServiceIdentity.py │ │ │ │ │ ├── AppServiceIdentityProviderEnabled.py │ │ │ │ │ ├── AppServiceInstanceMinimum.py │ │ │ │ │ ├── AppServiceJavaVersion.py │ │ │ │ │ ├── AppServiceMinTLSVersion.py │ │ │ │ │ ├── AppServicePHPVersion.py │ │ │ │ │ ├── AppServicePlanZoneRedundant.py │ │ │ │ │ ├── AppServicePublicAccessDisabled.py │ │ │ │ │ ├── AppServicePythonVersion.py │ │ │ │ │ ├── AppServiceRemoteDebuggingNotEnabled.py │ │ │ │ │ ├── AppServiceSetHealthCheck.py │ │ │ │ │ ├── AppServiceSkuMinimum.py │ │ │ │ │ ├── AppServiceSlotDebugDisabled.py │ │ │ │ │ ├── AppServiceSlotHTTPSOnly.py │ │ │ │ │ ├── AppServiceSlotMinTLS.py │ │ │ │ │ ├── AppServiceUsedAzureFiles.py │ │ │ │ │ ├── AutomationEncrypted.py │ │ │ │ │ ├── AzureBatchAccountEndpointAccessDefaultAction.py │ │ │ │ │ ├── AzureBatchAccountUsesKeyVaultEncryption.py │ │ │ │ │ ├── AzureContainerGroupDeployedIntoVirtualNetwork.py │ │ │ │ │ ├── AzureContainerInstanceEnvVarSecureValueType.py │ │ │ │ │ ├── AzureContainerInstancePublicIPAddressType.py │ │ │ │ │ ├── AzureDataExplorerDoubleEncryptionEnabled.py │ │ │ │ │ ├── AzureDefenderDisabledForResManager.py │ │ │ │ │ ├── AzureDefenderOnAppServices.py │ │ │ │ │ ├── AzureDefenderOnContainerRegistry.py │ │ │ │ │ ├── AzureDefenderOnKeyVaults.py │ │ │ │ │ ├── AzureDefenderOnKubernetes.py │ │ │ │ │ ├── AzureDefenderOnServers.py │ │ │ │ │ ├── AzureDefenderOnSqlServerVMS.py │ │ │ │ │ ├── AzureDefenderOnSqlServers.py │ │ │ │ │ ├── AzureDefenderOnStorage.py │ │ │ │ │ ├── AzureFirewallDefinesPolicy.py │ │ │ │ │ ├── AzureFirewallDenyThreatIntelMode.py │ │ │ │ │ ├── AzureFirewallPolicyIDPSDeny.py │ │ │ │ │ ├── AzureFrontDoorEnablesWAF.py │ │ │ │ │ ├── AzureInstanceExtensions.py │ │ │ │ │ ├── AzureInstancePassword.py │ │ │ │ │ ├── AzureManagedDiskEncryption.py │ │ │ │ │ ├── AzureManagedDiskEncryptionSet.py │ │ │ │ │ ├── AzureScaleSetPassword.py │ │ │ │ │ ├── AzureSearchAllowedIPsNotGlobal.py │ │ │ │ │ ├── AzureSearchManagedIdentity.py │ │ │ │ │ ├── AzureSearchPublicNetworkAccessDisabled.py │ │ │ │ │ ├── AzureSearchSLAIndex.py │ │ │ │ │ ├── AzureSearchSLAQueryUpdates.py │ │ │ │ │ ├── AzureServiceFabricClusterProtectionLevel.py │ │ │ │ │ ├── AzureServicebusDoubleEncryptionEnabled.py │ │ │ │ │ ├── AzureServicebusHasCMK.py │ │ │ │ │ ├── AzureServicebusIdentityProviderEnabled.py │ │ │ │ │ ├── AzureServicebusLocalAuthDisabled.py │ │ │ │ │ ├── AzureServicebusMinTLSVersion.py │ │ │ │ │ ├── AzureServicebusPublicAccessDisabled.py │ │ │ │ │ ├── AzureSparkPoolIsolatedComputeEnabled.py │ │ │ │ │ ├── CDNDisableHttpEndpoints.py │ │ │ │ │ ├── CDNEnableHttpsEndpoints.py │ │ │ │ │ ├── CDNTLSProtocol12.py │ │ │ │ │ ├── CognitiveServicesConfigureIdentity.py │ │ │ │ │ ├── CognitiveServicesDisablesPublicNetwork.py │ │ │ │ │ ├── CognitiveServicesEnableLocalAuth.py │ │ │ │ │ ├── CosmosDBAccountsRestrictedAccess.py │ │ │ │ │ ├── CosmosDBDisableAccessKeyWrite.py │ │ │ │ │ ├── CosmosDBDisablesPublicNetwork.py │ │ │ │ │ ├── CosmosDBHaveCMK.py │ │ │ │ │ ├── CosmosDBLocalAuthDisabled.py │ │ │ │ │ ├── CutsomRoleDefinitionSubscriptionOwner.py │ │ │ │ │ ├── DataExplorerSKUHasSLA.py │ │ │ │ │ ├── DataExplorerServiceIdentity.py │ │ │ │ │ ├── DataExplorerUsesDiskEncryption.py │ │ │ │ │ ├── DataFactoryNoPublicNetworkAccess.py │ │ │ │ │ ├── DataFactoryUsesGitRepository.py │ │ │ │ │ ├── DataLakeStoreEncryption.py │ │ │ │ │ ├── DatabricksWorkspaceIsNotPublic.py │ │ │ │ │ ├── EventHubNamespaceMinTLS12.py │ │ │ │ │ ├── EventHubNamespaceZoneRedundant.py │ │ │ │ │ ├── EventgridDomainIdentityProviderEnabled.py │ │ │ │ │ ├── EventgridDomainLocalAuthentication.py │ │ │ │ │ ├── EventgridDomainNetworkAccess.py │ │ │ │ │ ├── EventgridTopicIdentityProviderEnabled.py │ │ │ │ │ ├── EventgridTopicLocalAuthentication.py │ │ │ │ │ ├── EventgridTopicNetworkAccess.py │ │ │ │ │ ├── FrontDoorWAFACLCVE202144228.py │ │ │ │ │ ├── FrontdoorUseWAFMode.py │ │ │ │ │ ├── FunctionAppDisallowCORS.py │ │ │ │ │ ├── FunctionAppEnableLogging.py │ │ │ │ │ ├── FunctionAppHttpVersionLatest.py │ │ │ │ │ ├── FunctionAppMinTLSVersion.py │ │ │ │ │ ├── FunctionAppPublicAccessDisabled.py │ │ │ │ │ ├── FunctionAppsAccessibleOverHttps.py │ │ │ │ │ ├── FunctionAppsEnableAuthentication.py │ │ │ │ │ ├── GithubActionsOIDCTrustPolicy.py │ │ │ │ │ ├── IoTNoPublicNetworkAccess.py │ │ │ │ │ ├── KeyBackedByHSM.py │ │ │ │ │ ├── KeyExpirationDate.py │ │ │ │ │ ├── KeyVaultDisablesPublicNetworkAccess.py │ │ │ │ │ ├── KeyVaultEnablesFirewallRulesSettings.py │ │ │ │ │ ├── KeyVaultEnablesPurgeProtection.py │ │ │ │ │ ├── KeyVaultEnablesSoftDelete.py │ │ │ │ │ ├── KeyvaultRecoveryEnabled.py │ │ │ │ │ ├── KubernetesClusterHTTPApplicationRouting.py │ │ │ │ │ ├── LinuxVMUsesSSH.py │ │ │ │ │ ├── MLCCLADisabled.py │ │ │ │ │ ├── MLComputeClusterMinNodes.py │ │ │ │ │ ├── MLPublicAccess.py │ │ │ │ │ ├── MSSQLServerAuditPolicyLogMonitor.py │ │ │ │ │ ├── MSSQLServerMinTLSVersion.py │ │ │ │ │ ├── MariaDBGeoBackupEnabled.py │ │ │ │ │ ├── MariaDBPublicAccessDisabled.py │ │ │ │ │ ├── MariaDBSSLEnforcementEnabled.py │ │ │ │ │ ├── MonitorLogProfileCategories.py │ │ │ │ │ ├── MonitorLogProfileRetentionDays.py │ │ │ │ │ ├── MySQLEncryptionEnabled.py │ │ │ │ │ ├── MySQLGeoBackupEnabled.py │ │ │ │ │ ├── MySQLPublicAccessDisabled.py │ │ │ │ │ ├── MySQLServerMinTLSVersion.py │ │ │ │ │ ├── MySQLServerSSLEnforcementEnabled.py │ │ │ │ │ ├── MySQLTreatDetectionEnabled.py │ │ │ │ │ ├── NSGRuleHTTPAccessRestricted.py │ │ │ │ │ ├── NSGRulePortAccessRestricted.py │ │ │ │ │ ├── NSGRuleRDPAccessRestricted.py │ │ │ │ │ ├── NSGRuleSSHAccessRestricted.py │ │ │ │ │ ├── NSGRuleUDPAccessRestricted.py │ │ │ │ │ ├── NetworkInterfaceEnableIPForwarding.py │ │ │ │ │ ├── NetworkWatcherFlowLogPeriod.py │ │ │ │ │ ├── OpenAICognitiveServicesRestrictOutboundNetwork.py │ │ │ │ │ ├── PostgreSQLEncryptionEnabled.py │ │ │ │ │ ├── PostgreSQLFlexiServerGeoBackupEnabled.py │ │ │ │ │ ├── PostgreSQLMinTLSVersion.py │ │ │ │ │ ├── PostgreSQLServerConnectionThrottlingEnabled.py │ │ │ │ │ ├── PostgreSQLServerLogCheckpointsEnabled.py │ │ │ │ │ ├── PostgreSQLServerLogConnectionsEnabled.py │ │ │ │ │ ├── PostgreSQLServerLogRetentionEnabled.py │ │ │ │ │ ├── PostgreSQLServerPublicAccessDisabled.py │ │ │ │ │ ├── PostgreSQLServerSSLEnforcementEnabled.py │ │ │ │ │ ├── PostgresSQLTreatDetectionEnabled.py │ │ │ │ │ ├── PostgressSQLGeoBackupEnabled.py │ │ │ │ │ ├── PubsubSKUSLA.py │ │ │ │ │ ├── PubsubSpecifyIdentity.py │ │ │ │ │ ├── RedisCacheEnableNonSSLPort.py │ │ │ │ │ ├── RedisCacheMinTLSVersion.py │ │ │ │ │ ├── RedisCachePublicNetworkAccessEnabled.py │ │ │ │ │ ├── RedisCacheStandardReplicationEnabled.py │ │ │ │ │ ├── SQLDatabaseLedgerEnabled.py │ │ │ │ │ ├── SQLDatabaseZoneRedundant.py │ │ │ │ │ ├── SQLServerEmailAlertsEnabled.py │ │ │ │ │ ├── SQLServerEmailAlertsToAdminsEnabled.py │ │ │ │ │ ├── SQLServerNoPublicAccess.py │ │ │ │ │ ├── SQLServerPublicAccessDisabled.py │ │ │ │ │ ├── SQLServerThreatDetectionTypes.py │ │ │ │ │ ├── SecretContentType.py │ │ │ │ │ ├── SecretExpirationDate.py │ │ │ │ │ ├── SecurityCenterContactEmailAlert.py │ │ │ │ │ ├── SecurityCenterContactEmailAlertAdmins.py │ │ │ │ │ ├── SecurityCenterContactEmails.py │ │ │ │ │ ├── SecurityCenterContactPhone.py │ │ │ │ │ ├── SecurityCenterStandardPricing.py │ │ │ │ │ ├── SignalRSKUSLA.py │ │ │ │ │ ├── SpringCloudAPIPortalHTTPSOnly.py │ │ │ │ │ ├── SpringCloudAPIPortalPublicAccessIsDisabled.py │ │ │ │ │ ├── StorageAccountAzureServicesAccessEnabled.py │ │ │ │ │ ├── StorageAccountDefaultNetworkAccessDeny.py │ │ │ │ │ ├── StorageAccountDisablePublicAccess.py │ │ │ │ │ ├── StorageAccountLoggingQueueServiceEnabled.py │ │ │ │ │ ├── StorageAccountMinimumTlsVersion.py │ │ │ │ │ ├── StorageAccountName.py │ │ │ │ │ ├── StorageAccountsTransportEncryption.py │ │ │ │ │ ├── StorageAccountsUseReplication.py │ │ │ │ │ ├── StorageBlobRestrictPublicAccess.py │ │ │ │ │ ├── StorageBlobServiceContainerPrivateAccess.py │ │ │ │ │ ├── StorageLocalUsers.py │ │ │ │ │ ├── StorageSyncPublicAccessDisabled.py │ │ │ │ │ ├── StorageSyncServicePermissiveAccess.py │ │ │ │ │ ├── SynapseSQLPoolDataEncryption.py │ │ │ │ │ ├── SynapseWorkspaceAdministratorLoginPasswordHidden.py │ │ │ │ │ ├── SynapseWorkspaceCMKEncryption.py │ │ │ │ │ ├── SynapseWorkspaceEnablesDataExfilProtection.py │ │ │ │ │ ├── SynapseWorkspaceEnablesManagedVirtualNetworks.py │ │ │ │ │ ├── VMAgentIsInstalled.py │ │ │ │ │ ├── VMCredsInCustomData.py │ │ │ │ │ ├── VMDisablePasswordAuthentication.py │ │ │ │ │ ├── VMDiskWithPublicAccess.py │ │ │ │ │ ├── VMEncryptionAtHostEnabled.py │ │ │ │ │ ├── VMScaleSetsAutoOSImagePatchingEnabled.py │ │ │ │ │ ├── VMStorageOsDisk.py │ │ │ │ │ ├── VnetLocalDNS.py │ │ │ │ │ ├── VnetSingleDNSServer.py │ │ │ │ │ ├── WinVMAutomaticUpdates.py │ │ │ │ │ ├── WinVMEncryptionAtHost.py │ │ │ │ │ └── __init__.py │ │ │ │ ├── base_cloudsplaining_resource_iam_check.py │ │ │ │ ├── base_registry.py │ │ │ │ ├── base_resource_check.py │ │ │ │ ├── base_resource_negative_value_check.py │ │ │ │ ├── base_resource_value_check.py │ │ │ │ ├── digitalocean/ │ │ │ │ │ ├── DropletSSHKeys.py │ │ │ │ │ ├── FirewallIngressOpen.py │ │ │ │ │ ├── SpacesBucketPublicRead.py │ │ │ │ │ ├── SpacesBucketVersioning.py │ │ │ │ │ └── __init__.py │ │ │ │ ├── gcp/ │ │ │ │ │ ├── AbsGoogleBasicRoles.py │ │ │ │ │ ├── AbsGoogleComputeFirewallUnrestrictedIngress.py │ │ │ │ │ ├── AbsGoogleIAMMemberDefaultServiceAccount.py │ │ │ │ │ ├── AbsGoogleImpersonationRoles.py │ │ │ │ │ ├── AbsGooglePostgresqlDatabaseFlags.py │ │ │ │ │ ├── ArtifactRegistryPrivateRepo.py │ │ │ │ │ ├── ArtifactRegsitryEncryptedWithCMK.py │ │ │ │ │ ├── BigQueryDatasetEncryptedWithCMK.py │ │ │ │ │ ├── BigQueryPrivateTable.py │ │ │ │ │ ├── BigQueryTableDeletionProtection.py │ │ │ │ │ ├── BigQueryTableEncryptedWithCMK.py │ │ │ │ │ ├── BigTableInstanceDeletionProtection.py │ │ │ │ │ ├── BigTableInstanceEncryptedWithCMK.py │ │ │ │ │ ├── CloudArmorWAFACLCVE202144228.py │ │ │ │ │ ├── CloudBuildWorkersArePrivate.py │ │ │ │ │ ├── CloudFunctionPermissiveIngress.py │ │ │ │ │ ├── CloudFunctionsShouldNotBePublic.py │ │ │ │ │ ├── CloudPubSubEncryptedWithCMK.py │ │ │ │ │ ├── CloudSqlMajorVersion.py │ │ │ │ │ ├── CloudStorageLogging.py │ │ │ │ │ ├── CloudStorageSelfLogging.py │ │ │ │ │ ├── CloudStorageVersioningEnabled.py │ │ │ │ │ ├── DataFusionPrivateInstance.py │ │ │ │ │ ├── DataFusionStackdriverLogs.py │ │ │ │ │ ├── DataFusionStackdriverMonitoring.py │ │ │ │ │ ├── DataflowJobEncryptedWithCMK.py │ │ │ │ │ ├── DataflowPrivateJob.py │ │ │ │ │ ├── DataprocClusterEncryptedWithCMK.py │ │ │ │ │ ├── DataprocPrivateCluster.py │ │ │ │ │ ├── DataprocPublicIpCluster.py │ │ │ │ │ ├── GCPCloudRunPrivateService.py │ │ │ │ │ ├── GKEAliasIpEnabled.py │ │ │ │ │ ├── GKEBinaryAuthorization.py │ │ │ │ │ ├── GKEClientCertificateDisabled.py │ │ │ │ │ ├── GKEClusterLogging.py │ │ │ │ │ ├── GKEDisableLegacyAuth.py │ │ │ │ │ ├── GKEDontUseNodePools.py │ │ │ │ │ ├── GKEEnableShieldedNodes.py │ │ │ │ │ ├── GKEEnableVPCFlowLogs.py │ │ │ │ │ ├── GKEEnsureIntegrityMonitoring.py │ │ │ │ │ ├── GKEHasLabels.py │ │ │ │ │ ├── GKEKubernetesRBACGoogleGroups.py │ │ │ │ │ ├── GKEMasterAuthorizedNetworksEnabled.py │ │ │ │ │ ├── GKEMetadataServerIsEnabled.py │ │ │ │ │ ├── GKEMonitoringEnabled.py │ │ │ │ │ ├── GKENetworkPolicyEnabled.py │ │ │ │ │ ├── GKENodePoolAutoRepairEnabled.py │ │ │ │ │ ├── GKENodePoolAutoUpgradeEnabled.py │ │ │ │ │ ├── GKEPodSecurityPolicyEnabled.py │ │ │ │ │ ├── GKEPrivateClusterConfig.py │ │ │ │ │ ├── GKEPrivateNodes.py │ │ │ │ │ ├── GKEPublicControlPlane.py │ │ │ │ │ ├── GKEReleaseChannel.py │ │ │ │ │ ├── GKESecureBootforShieldedNodes.py │ │ │ │ │ ├── GKEUseCosImage.py │ │ │ │ │ ├── GithubActionsOIDCTrustPolicy.py │ │ │ │ │ ├── GoogleBigQueryDatasetPublicACL.py │ │ │ │ │ ├── GoogleCloudDNSKeySpecsRSASHA1.py │ │ │ │ │ ├── GoogleCloudDNSSECEnabled.py │ │ │ │ │ ├── GoogleCloudMySqlLocalInfileOff.py │ │ │ │ │ ├── GoogleCloudPostgreSqlEnablePgaudit.py │ │ │ │ │ ├── GoogleCloudPostgreSqlLogCheckpoints.py │ │ │ │ │ ├── GoogleCloudPostgreSqlLogConnection.py │ │ │ │ │ ├── GoogleCloudPostgreSqlLogDisconnection.py │ │ │ │ │ ├── GoogleCloudPostgreSqlLogHostname.py │ │ │ │ │ ├── GoogleCloudPostgreSqlLogLockWaits.py │ │ │ │ │ ├── GoogleCloudPostgreSqlLogMinDuration.py │ │ │ │ │ ├── GoogleCloudPostgreSqlLogMinErrorStatement.py │ │ │ │ │ ├── GoogleCloudPostgreSqlLogMinMessage.py │ │ │ │ │ ├── GoogleCloudPostgreSqlLogStatement.py │ │ │ │ │ ├── GoogleCloudPostgreSqlLogTemp.py │ │ │ │ │ ├── GoogleCloudSqlBackupConfiguration.py │ │ │ │ │ ├── GoogleCloudSqlDatabasePubliclyAccessible.py │ │ │ │ │ ├── GoogleCloudSqlDatabaseRequireSsl.py │ │ │ │ │ ├── GoogleCloudSqlServerContainedDBAuthentication.py │ │ │ │ │ ├── GoogleCloudSqlServerCrossDBOwnershipChaining.py │ │ │ │ │ ├── GoogleCloudSqlServerNoPublicIP.py │ │ │ │ │ ├── GoogleComputeBlockProjectSSH.py │ │ │ │ │ ├── GoogleComputeBootDiskEncryption.py │ │ │ │ │ ├── GoogleComputeDefaultServiceAccount.py │ │ │ │ │ ├── GoogleComputeDefaultServiceAccountFullAccess.py │ │ │ │ │ ├── GoogleComputeDiskEncryption.py │ │ │ │ │ ├── GoogleComputeExternalIP.py │ │ │ │ │ ├── GoogleComputeFirewallUnrestrictedIngress20.py │ │ │ │ │ ├── GoogleComputeFirewallUnrestrictedIngress21.py │ │ │ │ │ ├── GoogleComputeFirewallUnrestrictedIngress22.py │ │ │ │ │ ├── GoogleComputeFirewallUnrestrictedIngress3306.py │ │ │ │ │ ├── GoogleComputeFirewallUnrestrictedIngress3389.py │ │ │ │ │ ├── GoogleComputeFirewallUnrestrictedIngress80.py │ │ │ │ │ ├── GoogleComputeIPForward.py │ │ │ │ │ ├── GoogleComputeInstanceOSLogin.py │ │ │ │ │ ├── GoogleComputeProjectOSLogin.py │ │ │ │ │ ├── GoogleComputeSSLPolicy.py │ │ │ │ │ ├── GoogleComputeSerialPorts.py │ │ │ │ │ ├── GoogleComputeShieldedVM.py │ │ │ │ │ ├── GoogleFolderBasicRole.py │ │ │ │ │ ├── GoogleFolderImpersonationRole.py │ │ │ │ │ ├── GoogleFolderMemberDefaultServiceAccount.py │ │ │ │ │ ├── GoogleIAMWorkloadIdentityConditional.py │ │ │ │ │ ├── GoogleKMSKeyIsPublic.py │ │ │ │ │ ├── GoogleKMSPreventDestroy.py │ │ │ │ │ ├── GoogleKMSRotationPeriod.py │ │ │ │ │ ├── GoogleOrgBasicRole.py │ │ │ │ │ ├── GoogleOrgImpersonationRole.py │ │ │ │ │ ├── GoogleOrgMemberDefaultServiceAccount.py │ │ │ │ │ ├── GoogleProjectAdminServiceAccount.py │ │ │ │ │ ├── GoogleProjectBasicRole.py │ │ │ │ │ ├── GoogleProjectDefaultNetwork.py │ │ │ │ │ ├── GoogleProjectImpersonationRole.py │ │ │ │ │ ├── GoogleProjectMemberDefaultServiceAccount.py │ │ │ │ │ ├── GoogleRoleServiceAccountUser.py │ │ │ │ │ ├── GoogleStorageBucketNotPublic.py │ │ │ │ │ ├── GoogleStorageBucketUniformAccess.py │ │ │ │ │ ├── GoogleStoragePublicAccessPrevention.py │ │ │ │ │ ├── GoogleSubnetworkIPV6PrivateGoogleEnabled.py │ │ │ │ │ ├── GoogleSubnetworkLoggingEnabled.py │ │ │ │ │ ├── GoogleSubnetworkPrivateGoogleEnabled.py │ │ │ │ │ ├── GoogleVertexAINotebookShieldedVM.py │ │ │ │ │ ├── MemorystoreForRedisAuthEnabled.py │ │ │ │ │ ├── MemorystoreForRedisInTransitEncryption.py │ │ │ │ │ ├── PubSubPrivateTopic.py │ │ │ │ │ ├── SpannerDatabaseDeletionProtection.py │ │ │ │ │ ├── SpannerDatabaseDropProtection.py │ │ │ │ │ ├── SpannerDatabaseEncryptedWithCMK.py │ │ │ │ │ ├── VertexAIDatasetEncryptedWithCMK.py │ │ │ │ │ ├── VertexAIMetadataStoreEncryptedWithCMK.py │ │ │ │ │ ├── VertexAINotebookEnsureIntegrityMonitoring.py │ │ │ │ │ ├── VertexAIPrivateInstance.py │ │ │ │ │ └── __init__.py │ │ │ │ ├── github/ │ │ │ │ │ ├── BranchProtectionRequireSignedCommits.py │ │ │ │ │ ├── BranchProtectionReviewNumTwo.py │ │ │ │ │ ├── PrivateRepo.py │ │ │ │ │ ├── RepositoryEnableVulnerabilityAlerts.py │ │ │ │ │ ├── SecretsEncrypted.py │ │ │ │ │ ├── WebhookInsecureSsl.py │ │ │ │ │ └── __init__.py │ │ │ │ ├── gitlab/ │ │ │ │ │ ├── ForcePushDisabled.py │ │ │ │ │ ├── PreventSecretsEnabled.py │ │ │ │ │ ├── RejectUnsignedCommits.py │ │ │ │ │ ├── RequireTwoApprovalsToMerge.py │ │ │ │ │ └── __init__.py │ │ │ │ ├── kubernetes/ │ │ │ │ │ ├── AllowPrivilegeEscalation.py │ │ │ │ │ ├── AllowPrivilegeEscalationPSP.py │ │ │ │ │ ├── AllowedCapabilities.py │ │ │ │ │ ├── AllowedCapabilitiesPSP.py │ │ │ │ │ ├── AllowedCapabilitiesSysAdmin.py │ │ │ │ │ ├── CPULimits.py │ │ │ │ │ ├── CPURequests.py │ │ │ │ │ ├── ContainerSecurityContext.py │ │ │ │ │ ├── DangerousGitSync.py │ │ │ │ │ ├── DefaultNamespace.py │ │ │ │ │ ├── DefaultServiceAccount.py │ │ │ │ │ ├── DefaultServiceAccountBinding.py │ │ │ │ │ ├── DockerSocketVolume.py │ │ │ │ │ ├── DropCapabilities.py │ │ │ │ │ ├── DropCapabilitiesPSP.py │ │ │ │ │ ├── HostPort.py │ │ │ │ │ ├── ImageDigest.py │ │ │ │ │ ├── ImagePullPolicyAlways.py │ │ │ │ │ ├── ImageTagFixed.py │ │ │ │ │ ├── LivenessProbe.py │ │ │ │ │ ├── MemoryLimits.py │ │ │ │ │ ├── MemoryRequests.py │ │ │ │ │ ├── MinimiseCapabilities.py │ │ │ │ │ ├── MinimiseCapabilitiesPSP.py │ │ │ │ │ ├── PodSecurityContext.py │ │ │ │ │ ├── PrivilegedContainer.py │ │ │ │ │ ├── PrivilegedContainerPSP.py │ │ │ │ │ ├── ReadinessProbe.py │ │ │ │ │ ├── ReadonlyRootFilesystem.py │ │ │ │ │ ├── RootContainerPSP.py │ │ │ │ │ ├── SeccompPSP.py │ │ │ │ │ ├── Secrets.py │ │ │ │ │ ├── ShareHostIPC.py │ │ │ │ │ ├── ShareHostIPCPSP.py │ │ │ │ │ ├── ShareHostPID.py │ │ │ │ │ ├── ShareHostPIDPSP.py │ │ │ │ │ ├── SharedHostNetworkNamespace.py │ │ │ │ │ ├── SharedHostNetworkNamespacePSP.py │ │ │ │ │ ├── Tiller.py │ │ │ │ │ ├── TillerService.py │ │ │ │ │ ├── WildcardRoles.py │ │ │ │ │ └── __init__.py │ │ │ │ ├── linode/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── authorized_keys.py │ │ │ │ │ ├── firewall_inbound_policy.py │ │ │ │ │ ├── firewall_outbound_policy.py │ │ │ │ │ ├── user_email_set.py │ │ │ │ │ └── user_username_set.py │ │ │ │ ├── ncp/ │ │ │ │ │ ├── AccessControlGroupInboundRule.py │ │ │ │ │ ├── AccessControlGroupInboundRulePort22.py │ │ │ │ │ ├── AccessControlGroupInboundRulePort3389.py │ │ │ │ │ ├── AccessControlGroupInboundRulePort80.py │ │ │ │ │ ├── AccessControlGroupOutboundRule.py │ │ │ │ │ ├── AccessControlGroupRuleDescription.py │ │ │ │ │ ├── LBListenerUsesSecureProtocols.py │ │ │ │ │ ├── LBListenerUsingHTTPS.py │ │ │ │ │ ├── LBNetworkPrivate.py │ │ │ │ │ ├── LBTargetGroupDefinesHealthCheck.py │ │ │ │ │ ├── LBTargetGroupUsingHTTPS.py │ │ │ │ │ ├── LaunchConfigurationEncryptionVPC.py │ │ │ │ │ ├── NACLInbound20.py │ │ │ │ │ ├── NACLInbound21.py │ │ │ │ │ ├── NACLInbound22.py │ │ │ │ │ ├── NACLInbound3389.py │ │ │ │ │ ├── NACLInboundCheck.py │ │ │ │ │ ├── NACLPortCheck.py │ │ │ │ │ ├── NASEncryptionEnabled.py │ │ │ │ │ ├── NKSControlPlaneLogging.py │ │ │ │ │ ├── NKSPublicAccess.py │ │ │ │ │ ├── RouteTableNATGatewayDefault.py │ │ │ │ │ ├── ServerEncryptionVPC.py │ │ │ │ │ ├── ServerPublicIP.py │ │ │ │ │ └── __init__.py │ │ │ │ ├── oci/ │ │ │ │ │ ├── AbsSecurityGroupUnrestrictedIngress.py │ │ │ │ │ ├── AbsSecurityListUnrestrictedIngress.py │ │ │ │ │ ├── DataCatalogWithPublicAccess.py │ │ │ │ │ ├── FileSystemEncryption.py │ │ │ │ │ ├── IAMPasswordLength.py │ │ │ │ │ ├── IAMPasswordPolicyLowerCase.py │ │ │ │ │ ├── IAMPasswordPolicyNumeric.py │ │ │ │ │ ├── IAMPasswordPolicySpecialCharacters.py │ │ │ │ │ ├── IAMPasswordPolicyUpperCase.py │ │ │ │ │ ├── InstanceBootVolumeIntransitEncryption.py │ │ │ │ │ ├── InstanceMetadataServiceEnabled.py │ │ │ │ │ ├── InstanceMonitoringEnabled.py │ │ │ │ │ ├── ObjectStorageEmitEvents.py │ │ │ │ │ ├── ObjectStorageEncryption.py │ │ │ │ │ ├── ObjectStoragePublic.py │ │ │ │ │ ├── ObjectStorageVersioning.py │ │ │ │ │ ├── SecurityGroupUnrestrictedIngress22.py │ │ │ │ │ ├── SecurityGroupsIngressStatelessSecurityRules.py │ │ │ │ │ ├── SecurityListIngress.py │ │ │ │ │ ├── SecurityListIngressStateless.py │ │ │ │ │ ├── SecurityListUnrestrictedIngress22.py │ │ │ │ │ ├── SecurityListUnrestrictedIngress3389.py │ │ │ │ │ ├── StorageBlockBackupEnabled.py │ │ │ │ │ ├── StorageBlockEncryption.py │ │ │ │ │ └── __init__.py │ │ │ │ ├── okta/ │ │ │ │ │ ├── TwoFASignOnPolicyRule.py │ │ │ │ │ └── __init__.py │ │ │ │ ├── openstack/ │ │ │ │ │ ├── AbsSecurityGroupUnrestrictedIngress.py │ │ │ │ │ ├── ComputeInstanceAdminPassword.py │ │ │ │ │ ├── FirewallRuleSetDestinationIP.py │ │ │ │ │ ├── SecurityGroupUnrestrictedIngress22.py │ │ │ │ │ ├── SecurityGroupUnrestrictedIngress3389.py │ │ │ │ │ └── __init__.py │ │ │ │ ├── panos/ │ │ │ │ │ ├── InterfaceMgmtProfileNoHTTP.py │ │ │ │ │ ├── InterfaceMgmtProfileNoTelnet.py │ │ │ │ │ ├── NetworkIPsecAlgorithms.py │ │ │ │ │ ├── NetworkIPsecAuthAlgorithms.py │ │ │ │ │ ├── NetworkIPsecProtocols.py │ │ │ │ │ ├── PolicyDescription.py │ │ │ │ │ ├── PolicyLogForwarding.py │ │ │ │ │ ├── PolicyLoggingEnabled.py │ │ │ │ │ ├── PolicyNoApplicationAny.py │ │ │ │ │ ├── PolicyNoDSRI.py │ │ │ │ │ ├── PolicyNoServiceAny.py │ │ │ │ │ ├── PolicyNoSrcAnyDstAny.py │ │ │ │ │ ├── ZoneProtectionProfile.py │ │ │ │ │ ├── ZoneUserIDIncludeACL.py │ │ │ │ │ └── __init__.py │ │ │ │ ├── registry.py │ │ │ │ ├── tencentcloud/ │ │ │ │ │ ├── CBSEncryption.py │ │ │ │ │ ├── CDBInternetService.py │ │ │ │ │ ├── CDBIntranetPort.py │ │ │ │ │ ├── CLBInstanceLog.py │ │ │ │ │ ├── CLBListenerProtocol.py │ │ │ │ │ ├── CVMAllocatePublicIp.py │ │ │ │ │ ├── CVMDisableMonitorService.py │ │ │ │ │ ├── CVMUseDefaultSecurityGroup.py │ │ │ │ │ ├── CVMUseDefaultVPC.py │ │ │ │ │ ├── CVMUserData.py │ │ │ │ │ ├── TKELogAgentEnabled.py │ │ │ │ │ ├── TKEPublicIpAssigned.py │ │ │ │ │ ├── VPCFlowLogConfigEnable.py │ │ │ │ │ ├── VPCSecurityGroupRuleSet.py │ │ │ │ │ └── __init__.py │ │ │ │ └── yandexcloud/ │ │ │ │ ├── ComputeInstanceGroupPublicIP.py │ │ │ │ ├── ComputeInstanceGroupSecurityGroup.py │ │ │ │ ├── ComputeVMPublicIP.py │ │ │ │ ├── ComputeVMSecurityGroup.py │ │ │ │ ├── ComputeVMSerialConsole.py │ │ │ │ ├── IAMCloudElevatedMembers.py │ │ │ │ ├── IAMFolderElevatedMembers.py │ │ │ │ ├── IAMOrganizationElevatedMembers.py │ │ │ │ ├── IAMPassportAccountUsage.py │ │ │ │ ├── K8SAutoUpgrade.py │ │ │ │ ├── K8SEtcdKMSEncryption.py │ │ │ │ ├── K8SNetworkPolicy.py │ │ │ │ ├── K8SNodeGroupAutoUpgrade.py │ │ │ │ ├── K8SNodeGroupPublicIP.py │ │ │ │ ├── K8SNodeGroupSecurityGroup.py │ │ │ │ ├── K8SPublicIP.py │ │ │ │ ├── K8SSecurityGroup.py │ │ │ │ ├── KMSSymmetricKeyRotation.py │ │ │ │ ├── MDBPublicIP.py │ │ │ │ ├── MDBSecurityGroup.py │ │ │ │ ├── ObjectStorageBucketEncryption.py │ │ │ │ ├── ObjectStorageBucketPublicAccess.py │ │ │ │ ├── VPCSecurityGroupAllowAll.py │ │ │ │ ├── VPCSecurityGroupRuleAllowAll.py │ │ │ │ └── __init__.py │ │ │ └── utils/ │ │ │ ├── __init__.py │ │ │ ├── base_cloudsplaining_iam_scanner.py │ │ │ ├── consts.py │ │ │ ├── dependency_path_handler.py │ │ │ └── iam_terraform_document_to_policy_converter.py │ │ ├── context_parsers/ │ │ │ ├── __init__.py │ │ │ ├── base_parser.py │ │ │ ├── parsers/ │ │ │ │ ├── __init__.py │ │ │ │ ├── data_context_parser.py │ │ │ │ ├── locals_context_parser.py │ │ │ │ ├── module_context_parser.py │ │ │ │ ├── provider_context_parser.py │ │ │ │ ├── resource_context_parser.py │ │ │ │ └── variable_context_parser.py │ │ │ ├── registry.py │ │ │ └── tf_plan/ │ │ │ └── __init__.py │ │ ├── deep_analysis_plan_graph_manager.py │ │ ├── evaluation/ │ │ │ ├── __init__.py │ │ │ └── base_variable_evaluation.py │ │ ├── graph_builder/ │ │ │ ├── EncryptionCalculation.md │ │ │ ├── __init__.py │ │ │ ├── foreach/ │ │ │ │ ├── __init__.py │ │ │ │ ├── abstract_handler.py │ │ │ │ ├── builder.py │ │ │ │ ├── consts.py │ │ │ │ ├── data_handler.py │ │ │ │ ├── foreach_entity_handler.py │ │ │ │ ├── module_handler.py │ │ │ │ ├── resource_handler.py │ │ │ │ └── utils.py │ │ │ ├── graph_components/ │ │ │ │ ├── __init__.py │ │ │ │ ├── attribute_names.py │ │ │ │ ├── block_types.py │ │ │ │ ├── blocks.py │ │ │ │ ├── generic_resource_encryption.py │ │ │ │ └── module.py │ │ │ ├── graph_to_tf_definitions.py │ │ │ ├── local_graph.py │ │ │ ├── utils.py │ │ │ └── variable_rendering/ │ │ │ ├── __init__.py │ │ │ ├── evaluate_terraform.py │ │ │ ├── renderer.py │ │ │ ├── safe_eval_functions.py │ │ │ └── vertex_reference.py │ │ ├── graph_manager.py │ │ ├── image_referencer/ │ │ │ ├── __init__.py │ │ │ ├── base_provider.py │ │ │ ├── manager.py │ │ │ └── provider/ │ │ │ ├── __init__.py │ │ │ ├── aws.py │ │ │ ├── azure.py │ │ │ └── gcp.py │ │ ├── module_loading/ │ │ │ ├── __init__.py │ │ │ ├── content.py │ │ │ ├── loader.py │ │ │ ├── loaders/ │ │ │ │ ├── __init__.py │ │ │ │ ├── bitbucket_access_token_loader.py │ │ │ │ ├── bitbucket_loader.py │ │ │ │ ├── git_loader.py │ │ │ │ ├── github_access_token_loader.py │ │ │ │ ├── github_loader.py │ │ │ │ ├── local_path_loader.py │ │ │ │ ├── registry_loader.py │ │ │ │ └── versions_parser.py │ │ │ ├── module_finder.py │ │ │ ├── module_params.py │ │ │ └── registry.py │ │ ├── modules/ │ │ │ ├── __init__.py │ │ │ ├── module_objects.py │ │ │ └── module_utils.py │ │ ├── parser_functions.py │ │ ├── parser_utils.py │ │ ├── plan_parser.py │ │ ├── plan_runner.py │ │ ├── plan_utils.py │ │ ├── runner.py │ │ ├── tag_providers/ │ │ │ ├── __init__.py │ │ │ ├── aws.py │ │ │ ├── azure.py │ │ │ └── gcp.py │ │ └── tf_parser.py │ ├── terraform_json/ │ │ ├── __init__.py │ │ ├── parser.py │ │ ├── runner.py │ │ └── utils.py │ ├── version.py │ └── yaml_doc/ │ ├── __init__.py │ ├── base_registry.py │ ├── base_yaml_check.py │ ├── enums.py │ ├── registry.py │ └── runner.py ├── dangerfile.ts ├── docs/ │ ├── 1.Welcome/ │ │ ├── Feature Descriptions.md │ │ ├── Migration.md │ │ ├── Quick Start.md │ │ ├── Terms and Concepts.md │ │ └── What is Checkov.md │ ├── 2.Basics/ │ │ ├── CLI Command Reference.md │ │ ├── Handling Variables.md │ │ ├── Hard and soft fail.md │ │ ├── Installing Checkov.md │ │ ├── Reviewing Scan Results.md │ │ ├── Scanning Credentials and Secrets.md │ │ ├── Suppressing and Skipping Policies.md │ │ └── Visualizing Checkov Output.md │ ├── 3.Custom Policies/ │ │ ├── Custom Policies Overview.md │ │ ├── Examples.md │ │ ├── Python Custom Policies.md │ │ ├── Sharing Custom Policies.md │ │ └── YAML Custom Policies.md │ ├── 4.Integrations/ │ │ ├── Bitbucket Cloud Pipelines.md │ │ ├── Docker.md │ │ ├── GitHub Actions.md │ │ ├── GitLab CI.md │ │ ├── Jenkins.md │ │ ├── Kubernetes.md │ │ └── pre-commit.md │ ├── 404.md │ ├── 5.Policy Index/ │ │ ├── all.md │ │ ├── ansible.md │ │ ├── argo_workflows.md │ │ ├── arm.md │ │ ├── azure_pipelines.md │ │ ├── bicep.md │ │ ├── bitbucket_configuration.md │ │ ├── bitbucket_pipelines.md │ │ ├── circleci_pipelines.md │ │ ├── cloudformation.md │ │ ├── dockerfile.md │ │ ├── github_actions.md │ │ ├── github_configuration.md │ │ ├── gitlab_ci.md │ │ ├── gitlab_configuration.md │ │ ├── kubernetes.md │ │ ├── openapi.md │ │ ├── secrets.md │ │ ├── serverless.md │ │ └── terraform.md │ ├── 6.Contribution/ │ │ ├── Contribute New Argo Workflows Policies.md │ │ ├── Contribute New Azure Pipelines Policies.md │ │ ├── Contribute New Bitbucket Policies.md │ │ ├── Contribute New GitHub Policies.md │ │ ├── Contribute New Gitlab Policies.md │ │ ├── Contribute New OpenAPI Policies.md │ │ ├── Contribute New Terraform Provider.md │ │ ├── Contribute Python-Based Policies.md │ │ ├── Contribute YAML-based Policies.md │ │ ├── Contribution New IaC Runner.md │ │ ├── Contribution Overview.md │ │ ├── Implementing CI Metadata Extractor.md │ │ └── Implementing ImageReferencer.md │ ├── 7.Scan Examples/ │ │ ├── AWS SAM.md │ │ ├── Ansible.md │ │ ├── Argo Workflows.md │ │ ├── Azure ARM templates.md │ │ ├── Azure Pipelines.md │ │ ├── Bicep.md │ │ ├── Bitbucket.md │ │ ├── CDK.md │ │ ├── Cloudformation.md │ │ ├── Dockerfile.md │ │ ├── Git History.md │ │ ├── Github.md │ │ ├── Gitlab.md │ │ ├── Helm.md │ │ ├── Kubernetes.md │ │ ├── Kustomize.md │ │ ├── OpenAPI.md │ │ ├── Sca.md │ │ ├── Serverless Framework.md │ │ ├── Terraform Plan Scanning.md │ │ └── Terraform.md │ ├── 8.Outputs/ │ │ ├── CSV.md │ │ ├── CycloneDX BOM.md │ │ ├── GitLab SAST.md │ │ ├── JUnit XML.md │ │ └── SARIF.md │ ├── CNAME │ ├── Gemfile │ ├── _config.yml │ ├── index.md │ ├── menus.json │ ├── search.html │ └── web/ │ ├── css/ │ │ ├── checkov.pyro.css │ │ ├── normalize.css │ │ ├── pyro.css │ │ └── theme.css │ └── js/ │ └── pyro.js ├── dogfood_tests/ │ ├── pytest.ini │ └── test_checkov_dogfood.py ├── extra_stubs/ │ ├── boolean/ │ │ ├── __init__.pyi │ │ └── boolean.py │ ├── docker/ │ │ ├── __init__.pyi │ │ ├── client.pyi │ │ └── models/ │ │ └── images.pyi │ ├── dockerfile_parse/ │ │ ├── __init__.pyi │ │ ├── constants.pyi │ │ └── parser.pyi │ ├── junit_xml/ │ │ └── __init__.pyi │ └── license_expression/ │ └── __init__.pyi ├── flake8_plugins/ │ ├── __init__.py │ └── flake8_class_attributes_plugin/ │ ├── __init__.py │ ├── flake8_class_attributes/ │ │ ├── __init__.py │ │ ├── checker.py │ │ ├── class_members_errors.py │ │ └── model_parts_info.py │ └── tests/ │ ├── __init__.py │ ├── conftest.py │ ├── test_files/ │ │ ├── __init__.py │ │ ├── class_attribute_fail.py │ │ ├── class_const_pass.py │ │ ├── class_special_attributes_pass.py │ │ ├── dataclass_skip.py │ │ └── typing_class_skip.py │ └── test_handler.py ├── github_action_resources/ │ ├── checkov-problem-matcher-softfail.json │ ├── checkov-problem-matcher.json │ └── entrypoint.sh ├── integration_tests/ │ ├── __init__.py │ ├── example_config_files/ │ │ └── config.yaml │ ├── example_ext_private_modules/ │ │ └── main.tf │ ├── example_workflow_file/ │ │ ├── .github/ │ │ │ └── workflows/ │ │ │ └── vulnerable_container.yaml │ │ └── bitbucket/ │ │ └── bitbucket-pipelines.yml │ ├── prepare_data.sh │ ├── run_integration_tests.sh │ ├── test_checkov_cli_integration_report.py │ ├── test_checkov_config.py │ ├── test_checkov_cyclonedx_report.py │ ├── test_checkov_ext_module_cloning.py │ ├── test_checkov_json_report.py │ ├── test_checkov_junit_report.py │ ├── test_checkov_platform_only_policies.py │ └── test_checkov_sarif_report.py ├── kubernetes/ │ ├── Dockerfile │ ├── README.md │ ├── checkov-job.yaml │ ├── requirements.txt │ └── run_checkov.sh ├── mypy.ini ├── performance_tests/ │ ├── __init__.py │ ├── pytest.ini │ └── test_checkov_performance.py ├── pyproject.toml ├── sast_integration_tests/ │ ├── __init__.py │ ├── prepare_data.sh │ ├── run_integration_tests.sh │ └── test_checkov_sast_report.py ├── setup.py └── tests/ ├── __init__.py ├── ansible/ │ ├── __init__.py │ ├── checks/ │ │ ├── __init__.py │ │ ├── graph_checks/ │ │ │ ├── __init__.py │ │ │ ├── resources/ │ │ │ │ ├── BlockErrorHandling/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ ├── fail.yaml │ │ │ │ │ └── pass.yaml │ │ │ │ ├── DnfDisableGpgCheck/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ ├── fail.yaml │ │ │ │ │ └── pass.yaml │ │ │ │ ├── DnfSslVerify/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ ├── fail.yaml │ │ │ │ │ └── pass.yaml │ │ │ │ ├── DnfValidateCerts/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ ├── fail.yaml │ │ │ │ │ └── pass.yaml │ │ │ │ ├── GetUrlHttpsOnly/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ ├── fail.yaml │ │ │ │ │ ├── pass.yaml │ │ │ │ │ └── unknown.yaml │ │ │ │ ├── PanosIPsecAuthenticationAlgorithms/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ ├── fail.yaml │ │ │ │ │ └── pass.yaml │ │ │ │ ├── PanosIPsecProtocols/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ ├── fail.yaml │ │ │ │ │ └── pass.yaml │ │ │ │ ├── PanosInterfaceMgmtProfileNoHTTP/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ ├── fail.yaml │ │ │ │ │ └── pass.yaml │ │ │ │ ├── PanosInterfaceMgmtProfileNoTelnet/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ ├── fail.yaml │ │ │ │ │ └── pass.yaml │ │ │ │ ├── PanosPolicyDescription/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ ├── fail.yaml │ │ │ │ │ └── pass.yaml │ │ │ │ ├── PanosPolicyLogForwarding/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ ├── fail.yaml │ │ │ │ │ └── pass.yaml │ │ │ │ ├── PanosPolicyLogSessionStart/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ ├── fail.yaml │ │ │ │ │ └── pass.yaml │ │ │ │ ├── PanosPolicyLoggingEnabled/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ ├── fail.yaml │ │ │ │ │ └── pass.yaml │ │ │ │ ├── PanosPolicyNoApplicationAny/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ ├── fail.yaml │ │ │ │ │ └── pass.yaml │ │ │ │ ├── PanosPolicyNoDSRI/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ ├── fail.yaml │ │ │ │ │ └── pass.yaml │ │ │ │ ├── PanosPolicyNoServiceAny/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ ├── fail.yaml │ │ │ │ │ └── pass.yaml │ │ │ │ ├── PanosPolicyNoSrcAnyDstAny/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ ├── fail.yaml │ │ │ │ │ └── pass.yaml │ │ │ │ ├── PanosPolicyNoSrcZoneAnyNoDstZoneAny/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ ├── fail.yaml │ │ │ │ │ └── pass.yaml │ │ │ │ ├── PanosZoneProtectionProfile/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ ├── fail.yaml │ │ │ │ │ └── pass.yaml │ │ │ │ ├── PanosZoneUserIDIncludeACL/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ ├── fail.yaml │ │ │ │ │ └── pass.yaml │ │ │ │ └── UriHttpsOnly/ │ │ │ │ ├── expected.yaml │ │ │ │ ├── fail.yaml │ │ │ │ └── pass.yaml │ │ │ └── test_yaml_policies.py │ │ ├── task/ │ │ │ ├── __init__.py │ │ │ ├── aws/ │ │ │ │ ├── EC2EBSOptimized/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ ├── fail.yaml │ │ │ │ │ ├── pass.yaml │ │ │ │ │ └── unknown.yaml │ │ │ │ ├── EC2PublicIP/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ ├── fail.yaml │ │ │ │ │ ├── pass.yaml │ │ │ │ │ └── unknown.yaml │ │ │ │ └── __init__.py │ │ │ └── builtin/ │ │ │ ├── AptAllowUnauthenticated/ │ │ │ │ ├── expected.yaml │ │ │ │ ├── fail.yaml │ │ │ │ └── pass.yaml │ │ │ ├── AptForce/ │ │ │ │ ├── expected.yaml │ │ │ │ ├── fail.yaml │ │ │ │ └── pass.yaml │ │ │ ├── GetUrlValidateCerts/ │ │ │ │ ├── expected.yaml │ │ │ │ ├── fail.yaml │ │ │ │ └── pass.yaml │ │ │ ├── UriValidateCerts/ │ │ │ │ ├── expected.yaml │ │ │ │ ├── fail.yaml │ │ │ │ └── pass.yaml │ │ │ ├── YumSslVerify/ │ │ │ │ ├── expected.yaml │ │ │ │ ├── fail.yaml │ │ │ │ └── pass.yaml │ │ │ ├── YumValidateCerts/ │ │ │ │ ├── expected.yaml │ │ │ │ ├── fail.yaml │ │ │ │ └── pass.yaml │ │ │ └── __init__.py │ │ └── test_python_policies.py │ ├── examples/ │ │ ├── blocks.yml │ │ ├── empty_tasks.yml │ │ ├── k8s_utf16.yaml │ │ ├── nested_blocks.yml │ │ ├── no_tasks.yml │ │ ├── site.yml │ │ ├── skip.yml │ │ └── tasks.yml │ ├── graph_builder/ │ │ ├── __init__.py │ │ └── test_local_graph.py │ ├── test_graph_manager.py │ ├── test_runner.py │ └── test_utils.py ├── argo_workflows/ │ ├── __init__.py │ ├── checks/ │ │ ├── __init__.py │ │ └── template/ │ │ ├── __init__.py │ │ ├── example_DefaultServiceAccount/ │ │ │ ├── fail_default.yaml │ │ │ ├── fail_none.yaml │ │ │ └── pass.yaml │ │ ├── example_RunAsNonRoot/ │ │ │ ├── fail.yaml │ │ │ └── pass.yaml │ │ ├── test_DefaultServiceAccount.py │ │ └── test_RunAsNonRoot.py │ ├── examples/ │ │ ├── argo_cd_application.yaml │ │ ├── hello_world.yaml │ │ └── scripts_python.yaml │ └── test_runner.py ├── arm/ │ ├── __init__.py │ ├── checks/ │ │ ├── __init__.py │ │ ├── parameter/ │ │ │ ├── __init__.py │ │ │ ├── test_SecureStringParameterNoHardcodedValue/ │ │ │ │ └── test_parameters.json │ │ │ └── test_SecureStringParameterNoHardcodedValue.py │ │ └── resource/ │ │ ├── __init__.py │ │ ├── example_ACRAdminAccountDisabled/ │ │ │ ├── fail.json │ │ │ └── pass.json │ │ ├── example_ACRAnonymousPullDisabled/ │ │ │ ├── fail.json │ │ │ ├── fail2.json │ │ │ ├── pass.json │ │ │ ├── pass2.json │ │ │ ├── pass3.json │ │ │ ├── pass4.json │ │ │ ├── pass5.json │ │ │ └── pass6.json │ │ ├── example_ACRContainerScanEnabled/ │ │ │ ├── fail.json │ │ │ └── pass.json │ │ ├── example_ACREnableImageQuarantine/ │ │ │ ├── fail.json │ │ │ └── pass.json │ │ ├── example_ACREnableZoneRedundancy/ │ │ │ ├── fail1.json │ │ │ ├── fail2.json │ │ │ ├── pass.json │ │ │ └── pass2.json │ │ ├── example_ACRPublicNetworkAccessDisabled/ │ │ │ ├── fail.json │ │ │ └── pass.json │ │ ├── example_AKSApiServerAuthorizedIpRanges/ │ │ │ ├── aks-authIPRanges-preview-FAILED-3.json │ │ │ ├── aks-authIPRanges-preview-FAILED.json │ │ │ ├── aks-authIPRanges-preview-PASSED.json │ │ │ ├── aks-authIPRanges-supported-FAILED-2.json │ │ │ ├── aks-authIPRanges-supported-FAILED.json │ │ │ ├── aks-authIPRanges-supported-PASSED.json │ │ │ └── aks-authIPRanges-unsupported-FAILED.json │ │ ├── example_AKSDashboardDisabled/ │ │ │ ├── AKSDashboardDisabled-FAILED.json │ │ │ ├── AKSDashboardDisabled-FAILED2.json │ │ │ ├── AKSDashboardDisabled-FAILED3.json │ │ │ ├── AKSDashboardDisabled-FAILED4.json │ │ │ └── AKSDashboardDisabled-PASSED.json │ │ ├── example_AKSEncryptionAtHostEnabled/ │ │ │ ├── fail1.json │ │ │ ├── fail2.json │ │ │ ├── failA1.json │ │ │ ├── failA2.json │ │ │ ├── pass.json │ │ │ └── passA.json │ │ ├── example_AKSEphemeralOSDisks/ │ │ │ ├── fail.json │ │ │ ├── fail2.json │ │ │ └── pass.json │ │ ├── example_AKSLocalAdminDisabled/ │ │ │ ├── fail.json │ │ │ ├── fail2.json │ │ │ └── pass.json │ │ ├── example_AKSLoggingEnabled/ │ │ │ ├── AKSLoggingEnabled-FAILED2.json │ │ │ ├── aksLoggingEnabled-FAILED.json │ │ │ ├── aksLoggingEnabled-FAILED3.json │ │ │ └── aksLoggingEnabled-PASSED.json │ │ ├── example_AKSMaxPodsMinimum/ │ │ │ ├── agentPoolProfiles_with_maxPods_fail4.json │ │ │ ├── agentPoolProfiles_with_maxPods_pass.json │ │ │ ├── agentPoolProfiles_without_maxPods_fail3.json │ │ │ ├── properties_with_maxPods_fail2.json │ │ │ ├── properties_with_maxPods_pass1.json │ │ │ └── properties_without_maxPods_fail.json │ │ ├── example_AKSNetworkPolicy/ │ │ │ ├── aksNetworkPolicy-FAILED.json │ │ │ ├── aksNetworkPolicy-FAILED2.json │ │ │ ├── aksNetworkPolicy-FAILED3.json │ │ │ ├── aksNetworkPolicy-FAILED4.json │ │ │ └── aksNetworkPolicy-PASSED.json │ │ ├── example_AKSPoolTypeIsScaleSet/ │ │ │ ├── fail.json │ │ │ ├── pass.json │ │ │ └── pass1.json │ │ ├── example_AKSRbacEnabled/ │ │ │ ├── aksEnableRbac-FAILED.json │ │ │ ├── aksEnableRbac-FAILED2.json │ │ │ ├── aksEnableRbac-FAILED3.json │ │ │ └── aksEnableRbac-PASSED.json │ │ ├── example_AKSUpgradeChannel/ │ │ │ ├── fail.json │ │ │ ├── fail1.json │ │ │ └── pass.json │ │ ├── example_APIManagementMinTLS12/ │ │ │ ├── fail.json │ │ │ └── pass.json │ │ ├── example_APIManagementPublicAccess/ │ │ │ ├── fail.json │ │ │ └── pass.json │ │ ├── example_APIServicesUseVirtualNetwork/ │ │ │ ├── fail.json │ │ │ └── pass.json │ │ ├── example_AkSSecretStoreRotation/ │ │ │ ├── fail.json │ │ │ ├── fail1.json │ │ │ └── pass.json │ │ ├── example_AppGWDefinesSecureProtocols/ │ │ │ ├── empty_sslPolicy_fail1.json │ │ │ ├── with_policyName_fail3.json │ │ │ ├── with_policyName_pass1.json │ │ │ ├── with_protocolversion_and_cipher_fail2.json │ │ │ ├── with_protocolversion_and_cipher_pass.json │ │ │ └── without_sslPolicy_fail.json │ │ ├── example_AppGatewayWAFACLCVE202144228/ │ │ │ ├── empty_disabled_rules_pass.json │ │ │ ├── owasp_3_0_fail.json │ │ │ ├── owasp_3_1_default_pass.json │ │ │ ├── owasp_3_1_disabled_different_pass.json │ │ │ ├── owasp_3_1_disabled_fail.json │ │ │ ├── owasp_3_2_default_pass.json │ │ │ └── version_3_1_default_pass.json │ │ ├── example_AppServiceAuthentication/ │ │ │ ├── appServiceAuthentication-FAILED.json │ │ │ ├── appServiceAuthentication-PASSED.json │ │ │ └── appServiceAuthentication-PASSED2.json │ │ ├── example_AppServiceClientCertificate/ │ │ │ ├── appServiceClientCertificate-FAILED.json │ │ │ ├── appServiceClientCertificate-FAILED2.json │ │ │ ├── appServiceClientCertificate-PASSED.json │ │ │ └── appServiceClientCertificate-PASSED2.json │ │ ├── example_AppServiceDetailedErrorMessagesEnabled/ │ │ │ ├── AppServiceDetailedErrorMessagesEnabled-failed.json │ │ │ ├── AppServiceDetailedErrorMessagesEnabled-failed2.json │ │ │ └── AppServiceDetailedErrorMessagesEnabled-passed.json │ │ ├── example_AppServiceDisallowCORS/ │ │ │ ├── fail.json │ │ │ └── pass.json │ │ ├── example_AppServiceDotnetFrameworkVersion/ │ │ │ ├── failed.json │ │ │ └── passed.json │ │ ├── example_AppServiceEnabledFailedRequest/ │ │ │ ├── AppServiceEnableFailedRequest-failed.json │ │ │ └── AppServiceEnableFailedRequest-passed.json │ │ ├── example_AppServiceFTPSState/ │ │ │ ├── fail.json │ │ │ ├── fail2.json │ │ │ ├── fail3.json │ │ │ ├── pass.json │ │ │ ├── pass2.json │ │ │ └── pass3.json │ │ ├── example_AppServiceHTTPSOnly/ │ │ │ ├── appServiceHTTPSOnly-FAILED.json │ │ │ ├── appServiceHTTPSOnly-FAILED2.json │ │ │ ├── appServiceHTTPSOnly-PASSED.json │ │ │ └── appServiceHTTPSOnly-PASSED2.json │ │ ├── example_AppServiceHttpLoggingEnabled/ │ │ │ ├── AppServiceHttpLoggingEnabled-failed.json │ │ │ ├── AppServiceHttpLoggingEnabled-failed2.json │ │ │ └── AppServiceHttpLoggingEnabled-passed.json │ │ ├── example_AppServiceHttps20Enabled/ │ │ │ ├── appServiceHttps20Enabled-FAILED.json │ │ │ ├── appServiceHttps20Enabled-FAILED2.json │ │ │ ├── appServiceHttps20Enabled-FAILED3.json │ │ │ ├── appServiceHttps20Enabled-PASSED.json │ │ │ └── appServiceHttps20Enabled-PASSED2.json │ │ ├── example_AppServiceIdentity/ │ │ │ ├── appServiceIdentity-FAILED.json │ │ │ ├── appServiceIdentity-PASSED.json │ │ │ └── appServiceIdentity-PASSED2.json │ │ ├── example_AppServiceIdentityProviderEnabled/ │ │ │ ├── fail.json │ │ │ └── pass.json │ │ ├── example_AppServiceInstanceMinimum/ │ │ │ ├── fail.json │ │ │ ├── fail2.json │ │ │ ├── pass.json │ │ │ ├── pass2.json │ │ │ ├── unknown.json │ │ │ └── unknown2.json │ │ ├── example_AppServiceJavaVersion/ │ │ │ ├── fail.json │ │ │ └── pass.json │ │ ├── example_AppServiceMinTLSVersion/ │ │ │ ├── appServiceMinTLSVersion-FAILED.json │ │ │ ├── appServiceMinTLSVersion-FAILED2.json │ │ │ ├── appServiceMinTLSVersion-FAILED3.json │ │ │ ├── appServiceMinTLSVersion-PASSED.json │ │ │ └── appServiceMinTLSVersion-PASSED2.json │ │ ├── example_AppServicePHPVersion/ │ │ │ ├── fail.json │ │ │ └── pass.json │ │ ├── example_AppServicePlanZoneRedundant/ │ │ │ ├── fail.json │ │ │ ├── fail2.json │ │ │ └── pass.json │ │ ├── example_AppServicePublicAccessDisabled/ │ │ │ ├── configFail.json │ │ │ ├── configPass.json │ │ │ ├── linuxDefault.json │ │ │ ├── linuxFail.json │ │ │ ├── linuxPass.json │ │ │ ├── slotFail.json │ │ │ ├── slotPass.json │ │ │ ├── windowsDefault.json │ │ │ ├── windowsFail.json │ │ │ └── windowsPass.json │ │ ├── example_AppServicePythonVersion/ │ │ │ ├── fail.json │ │ │ ├── pass.json │ │ │ └── unknown.json │ │ ├── example_AppServiceRemoteDebuggingNotEnabled/ │ │ │ ├── fail.json │ │ │ ├── pass.json │ │ │ └── pass1.json │ │ ├── example_AppServiceSetHealthCheck/ │ │ │ ├── fail.json │ │ │ ├── fail2.json │ │ │ ├── pass.json │ │ │ └── pass2.json │ │ ├── example_AppServiceSlotDebugDisabled/ │ │ │ ├── fail.json │ │ │ ├── fail2.json │ │ │ ├── pass.json │ │ │ └── pass2.json │ │ ├── example_AppServiceSlotHTTPSOnly/ │ │ │ ├── fail.json │ │ │ ├── fail2.json │ │ │ ├── pass.json │ │ │ └── pass2.json │ │ ├── example_AppServiceUsedAzureFiles/ │ │ │ ├── AppServiceEnableFailedRequest-failed.json │ │ │ ├── AppServiceEnableFailedRequest-failed2.json │ │ │ └── AppServiceUsedAzureFiles-passed.json │ │ ├── example_AutomationEncrypted/ │ │ │ ├── fail.json │ │ │ ├── fail1.json │ │ │ └── pass.json │ │ ├── example_AzureBatchAccountEndpointAccessDefaultAction.py/ │ │ │ ├── fail.json │ │ │ └── pass.json │ │ ├── example_AzureBatchAccountUsesKeyVaultEncryption/ │ │ │ ├── fail.json │ │ │ └── pass.json │ │ ├── example_AzureDataExplorerDoubleEncryptionEnabled/ │ │ │ ├── fail.json │ │ │ └── pass.json │ │ ├── example_AzureDefenderOnKeyVaults/ │ │ │ ├── fail.json │ │ │ └── pass.json │ │ ├── example_AzureDefenderOnKubernetes/ │ │ │ ├── fail.json │ │ │ └── pass.json │ │ ├── example_AzureDefenderOnSqlServersVMS/ │ │ │ ├── fail.json │ │ │ └── pass.json │ │ ├── example_AzureDefenderOnStorage/ │ │ │ ├── fail.json │ │ │ └── pass.json │ │ ├── example_AzureFirewallDenyThreatIntelMode/ │ │ │ ├── CKV_AZURE_216.fail.json │ │ │ ├── CKV_AZURE_216.fail2.json │ │ │ └── CKV_AZURE_216.pass.json │ │ ├── example_AzureFrontDoorEnablesWAF/ │ │ │ ├── fail.json │ │ │ └── pass.json │ │ ├── example_AzureInstanceExtensions/ │ │ │ ├── fail.json │ │ │ ├── fail2.json │ │ │ └── pass.json │ │ ├── example_AzureInstancePassword/ │ │ │ ├── FAILED.json │ │ │ ├── PASSED.json │ │ │ ├── UNKNOWN.json │ │ │ └── UNKNOWN_1.json │ │ ├── example_AzureMLWorkspacePrivateEndpoint/ │ │ │ ├── fail.json │ │ │ ├── fail2.json │ │ │ ├── pass.json │ │ │ └── pass2.json │ │ ├── example_AzureManagedDiscEncryption/ │ │ │ ├── azureManagedDiscEncryption-FAILED.json │ │ │ ├── azureManagedDiscEncryption-PASSED.json │ │ │ ├── azureManagedDiscEncryption-PASSED_2.json │ │ │ └── azureManagedDiscEncryption-PASSED_3.json │ │ ├── example_AzureManagedDiskEncryptionSet/ │ │ │ ├── azureManagedDiskEncyptionSet-FAILED.json │ │ │ └── azureManagedDiskEncyptionSet-PASSED.json │ │ ├── example_AzureScaleSetPassword/ │ │ │ ├── FAILED.json │ │ │ ├── PASSED.json │ │ │ └── UNKNOWN.json │ │ ├── example_AzureSearchSLAIndex/ │ │ │ ├── fail.json │ │ │ ├── fail2.json │ │ │ └── pass.json │ │ ├── example_AzureSearchSLAQueryUpdates/ │ │ │ ├── fail.json │ │ │ ├── fail2.json │ │ │ └── pass.json │ │ ├── example_AzureServiceFabricClusterProtectionLevel/ │ │ │ ├── fail.json │ │ │ ├── fail2.json │ │ │ └── pass.json │ │ ├── example_AzureSparkPoolIsolatedComputeEnabled/ │ │ │ ├── fail1.json │ │ │ ├── fail2.json │ │ │ └── pass.json │ │ ├── example_AzureSynapseWorkspaceVAisEnabled/ │ │ │ ├── fail1.json │ │ │ ├── fail2.json │ │ │ └── pass.json │ │ ├── example_AzureSynapseWorkspacesHaveNoIPFirewallRulesAttached/ │ │ │ ├── fail.json │ │ │ ├── pass.json │ │ │ └── pass2.json │ │ ├── example_CognitiveServicesConfigureIdentity/ │ │ │ ├── fail.json │ │ │ └── pass.json │ │ ├── example_CognitiveServicesDisablesPublicNetwork/ │ │ │ ├── fail.json │ │ │ ├── fail2.json │ │ │ └── pass.json │ │ ├── example_CognitiveServicesEnableLocalAuth/ │ │ │ ├── fail.json │ │ │ ├── fail2.json │ │ │ └── pass.json │ │ ├── example_CosmosDBAccountsRestrictedAccess/ │ │ │ ├── fail.json │ │ │ ├── fail2.json │ │ │ ├── fail3.json │ │ │ ├── fail4.json │ │ │ ├── pass.json │ │ │ ├── pass2.json │ │ │ ├── pass3.json │ │ │ └── pass4.json │ │ ├── example_CosmosDBDisableAccessKeyWrite/ │ │ │ ├── CosmosDBDisableAccessKeyWrite-FAILED.json │ │ │ └── CosmosDBDisableAccessKeyWrite-PASSED.json │ │ ├── example_CosmosDBDisablesPublicNetwork/ │ │ │ ├── Fail.json │ │ │ ├── Fail2.json │ │ │ ├── Fail3.json │ │ │ └── Pass.json │ │ ├── example_CosmosDBHaveCMK/ │ │ │ ├── fail.json │ │ │ └── pass.json │ │ ├── example_CosmosDBLocalAuthDisabled/ │ │ │ ├── fail.json │ │ │ ├── fail1.json │ │ │ ├── pass.json │ │ │ └── unknown.json │ │ ├── example_CustomRoleDefinitionSubscriptionOwner/ │ │ │ ├── example_customRoleDefinitionSubscriptionOwner-FAILED.json │ │ │ └── example_customRoleDefinitionSubscriptionOwner-PASSED.json │ │ ├── example_DataExplorerUsesDiskEncryption/ │ │ │ ├── fail.json │ │ │ └── pass.json │ │ ├── example_DataFactoryNoPublicNetworkAccess/ │ │ │ ├── fail.json │ │ │ ├── fail2.json │ │ │ └── pass.json │ │ ├── example_DataFactoryUsesGitRepository/ │ │ │ ├── fail.json │ │ │ ├── fail2.json │ │ │ ├── pass.json │ │ │ └── unknown.json │ │ ├── example_DataLakeStoreEncryption/ │ │ │ ├── fail.json │ │ │ ├── pass.json │ │ │ └── pass2.json │ │ ├── example_DatabricksWorkspaceDBFSRootEncryptedWithCustomerManagedKey/ │ │ │ ├── fail.json │ │ │ ├── fail2.json │ │ │ └── pass.json │ │ ├── example_DatabricksWorkspaceIsNotPublic/ │ │ │ ├── fail.json │ │ │ ├── fail2.json │ │ │ ├── pass.json │ │ │ └── pass2.json │ │ ├── example_EventHubNamespaceMinTLS12/ │ │ │ ├── fail.json │ │ │ ├── pass.json │ │ │ └── pass2.json │ │ ├── example_EventgridTopicIdentityProviderEnabled/ │ │ │ ├── fail.json │ │ │ └── pass.json │ │ ├── example_EventgridTopicLocalAuthentication/ │ │ │ ├── fail.json │ │ │ ├── fail2.json │ │ │ └── pass.json │ │ ├── example_EventgridTopicNetworkAccess/ │ │ │ ├── fail.json │ │ │ ├── fail2.json │ │ │ └── pass.json │ │ ├── example_FrontDoorWAFACLCVE202144228/ │ │ │ ├── fail1.json │ │ │ ├── fail3.json │ │ │ ├── fail4.json │ │ │ ├── pass1.json │ │ │ ├── pass2.json │ │ │ ├── pass3.json │ │ │ └── pass4.json │ │ ├── example_FrontdoorUseWAFMode/ │ │ │ ├── example_FrontdoorUseWAFMode-FAILED.json │ │ │ └── example_FrontdoorUseWAFMode-PASSED.json │ │ ├── example_FunctionAppDisallowCORS/ │ │ │ ├── fail.json │ │ │ ├── pass.json │ │ │ └── pass_with_cors.json │ │ ├── example_FunctionAppHttpVersionLatest/ │ │ │ ├── fail.json │ │ │ ├── fail2.json │ │ │ ├── pass.json │ │ │ └── pass2.json │ │ ├── example_FunctionAppMinTLSVersion/ │ │ │ ├── fail.json │ │ │ ├── fail2.json │ │ │ ├── pass.json │ │ │ ├── pass2.json │ │ │ ├── pass3.json │ │ │ └── pass4.json │ │ ├── example_FunctionAppsAccessibleOverHttps/ │ │ │ ├── sites_config_fail.json │ │ │ ├── sites_config_pass.json │ │ │ ├── sites_config_pass1.json │ │ │ ├── sites_fail.json │ │ │ ├── sites_fail1.json │ │ │ └── sites_pass.json │ │ ├── example_FunctionAppsEnableAuthentication/ │ │ │ ├── fail.json │ │ │ ├── fail2.json │ │ │ ├── pass.json │ │ │ └── pass2.json │ │ ├── example_KeyBackedByHSM/ │ │ │ ├── fail.json │ │ │ └── pass.json │ │ ├── example_KeyExpirationDate/ │ │ │ ├── fail.json │ │ │ └── pass.json │ │ ├── example_KeyVaultDisablesPublicNetworkAccess/ │ │ │ ├── fail1.json │ │ │ ├── fail2.json │ │ │ ├── fail3.json │ │ │ ├── fail4.json │ │ │ ├── fail5.json │ │ │ ├── pass1.json │ │ │ ├── pass2.json │ │ │ ├── pass3.json │ │ │ └── pass4.json │ │ ├── example_KeyVaultEnablesFirewallRulesSettings/ │ │ │ ├── KeyVaultEnablesFirewallRulesSettings-FAILED.json │ │ │ └── KeyVaultEnablesFirewallRulesSettings-PASSED.json │ │ ├── example_KeyVaultEnablesPurgeProtection/ │ │ │ ├── fail1.json │ │ │ ├── fail2.json │ │ │ └── pass.json │ │ ├── example_KeyVaultEnablesSoftDelete/ │ │ │ ├── fail.json │ │ │ ├── pass.json │ │ │ └── pass2.json │ │ ├── example_KeyvaultRecoveryEnabled/ │ │ │ ├── keyvaultRecoveryEnabled-FAILED.json │ │ │ ├── keyvaultRecoveryEnabled-FAILED2.json │ │ │ └── keyvaultRecoveryEnabled-PASSED.json │ │ ├── example_LinuxVMUsesSSH/ │ │ │ ├── fail.json │ │ │ └── pass.json │ │ ├── example_MSSQLServerMinTLSVersion/ │ │ │ ├── fail.json │ │ │ ├── pass.json │ │ │ └── pass2.json │ │ ├── example_MariaDBGeoBackupEnabled/ │ │ │ ├── fail.json │ │ │ └── pass.json │ │ ├── example_MariaDBPublicAccessDisabled/ │ │ │ ├── fail.json │ │ │ └── pass.json │ │ ├── example_MariaDBSSLEnforcementEnabled/ │ │ │ ├── FAILED.json │ │ │ ├── FAILED_2.json │ │ │ └── PASSED.json │ │ ├── example_MonitorLogProfileCategories/ │ │ │ ├── monitorLogProfileCategories-FAILED.json │ │ │ └── monitorLogProfileCategories-PASSED.json │ │ ├── example_MonitorLogProfileRetentionDays/ │ │ │ ├── monitorLogProfileRetentionDays-FAILED.json │ │ │ ├── monitorLogProfileRetentionDays-FAILED2.json │ │ │ └── monitorLogProfileRetentionDays-PASSED.json │ │ ├── example_MySQLEncryptionEnabled/ │ │ │ ├── fail.json │ │ │ ├── pass.json │ │ │ └── unknown.json │ │ ├── example_MySQLGeoBackupEnabled/ │ │ │ ├── fail.json │ │ │ └── pass.json │ │ ├── example_MySQLServerMinTLSVersion/ │ │ │ ├── fail.json │ │ │ └── pass.json │ │ ├── example_MySQLServerSSLEnforcementEnabled/ │ │ │ ├── mysqlSSLEnforcementEnabled-FAILED.json │ │ │ ├── mysqlSSLEnforcementEnabled-FAILED2.json │ │ │ └── mysqlSSLEnforcementEnabled-PASSED.json │ │ ├── example_NSGRuleHTTPAccessRestricted/ │ │ │ ├── NSGRulePortAccessRestricted-FAILED.json │ │ │ ├── NSGRulePortAccessRestricted-RULE-1Pass-1Fail.json │ │ │ └── NSGRulePortAccessRestricted-RULE-PASSED.json │ │ ├── example_NSGRuleRDPAccessRestricted/ │ │ │ ├── NSGRulePortAccessRestricted-FAILED.json │ │ │ ├── NSGRulePortAccessRestricted-RULE-1Pass-1Fail.json │ │ │ └── NSGRulePortAccessRestricted-RULE-PASSED.json │ │ ├── example_NSGRuleSSHAccessRestricted/ │ │ │ ├── NSGRulePortAccessRestricted-FAILED.json │ │ │ ├── NSGRulePortAccessRestricted-RULE-1Pass-1Fail.json │ │ │ └── NSGRulePortAccessRestricted-RULE-PASSED.json │ │ ├── example_NetworkWatcherFlowLogPeriod/ │ │ │ ├── networkWatcherFlowLogPeriod-FAILED.json │ │ │ ├── networkWatcherFlowLogPeriod-FAILED2.json │ │ │ ├── networkWatcherFlowLogPeriod-FAILED3.json │ │ │ ├── networkWatcherFlowLogPeriod-FAILED4.json │ │ │ └── networkWatcherFlowLogPeriod-PASSED.json │ │ ├── example_PostgreSQLEncryptionEnabled/ │ │ │ ├── fail.json │ │ │ └── pass.json │ │ ├── example_PostgreSQLServerConnectionThrottlingEnabled/ │ │ │ ├── postgreSQL-ConnectionThrottlingEnabled-FAILED.json │ │ │ ├── postgreSQL-ConnectionThrottlingEnabled-PASSED.json │ │ │ └── postgreSQL-ConnectionThrottlingEnabled-PASSED2.json │ │ ├── example_PostgreSQLServerLogCheckpointsEnabled/ │ │ │ ├── postgreSQL-LogCheckpointsEnabled-FAILED.json │ │ │ ├── postgreSQL-LogCheckpointsEnabled-PASSED.json │ │ │ └── postgreSQL-LogCheckpointsEnabled-PASSED2.json │ │ ├── example_PostgreSQLServerLogConnectionsEnabled/ │ │ │ ├── postgreSQL-LogConnectionsEnabled-FAILED.json │ │ │ ├── postgreSQL-LogConnectionsEnabled-PASSED.json │ │ │ └── postgreSQL-LogConnectionsEnabled-PASSED2.json │ │ ├── example_PostgreSQLServerPublicAccessDisable/ │ │ │ ├── fail1.json │ │ │ ├── fail2.json │ │ │ └── pass.json │ │ ├── example_PostgreSQLServerSSLEnforcementEnabled/ │ │ │ ├── postgreSQL-SSL-FAILED.json │ │ │ ├── postgreSQL-SSL-FAILED2.json │ │ │ └── postgreSQL-SSL-PASSED.json │ │ ├── example_PostgressSQLGeoBackupEnabled/ │ │ │ ├── fail1.json │ │ │ ├── fail2.json │ │ │ └── pass.json │ │ ├── example_PubsubSKUSLA/ │ │ │ ├── fail.json │ │ │ └── pass.json │ │ ├── example_PubsubSpecifyIdentity/ │ │ │ ├── fail.json │ │ │ ├── pass.json │ │ │ └── pass2.json │ │ ├── example_RedisCachePublicNetworkAccessEnabled/ │ │ │ ├── fail.json │ │ │ ├── fail2.json │ │ │ └── pass.json │ │ ├── example_SQLDatabaseZoneRedundant/ │ │ │ ├── fail.json │ │ │ ├── fail2.json │ │ │ └── pass.json │ │ ├── example_SQLServerAuditingEnabled/ │ │ │ ├── sqlServerAuditingEnabled-PASSED.json │ │ │ ├── sqlServerAuditingEnabled-TDE-FAILED.json │ │ │ └── sqlServerDatabaseAuditingEnabled-PASSED.json │ │ ├── example_SQLServerAuditingRetention90Days/ │ │ │ ├── sqlServerAuditingRetention90Days-2021-05-PASSED.json │ │ │ ├── sqlServerAuditingRetention90Days-FAILED2.json │ │ │ ├── sqlServerAuditingRetention90Days-FAILED3.json │ │ │ ├── sqlServerAuditingRetention90Days-PASSED.json │ │ │ ├── sqlServerAuditingRetention90Days-PASSED2.json │ │ │ └── sqlServerAuditingRetention90Days-TDE-FAILED.json │ │ ├── example_SQLServerEmailAlertsEnabled/ │ │ │ ├── sqlServerEmailAlertsEnabled-FAILED.json │ │ │ └── sqlServerEmailAlertsEnabled-PASSED.json │ │ ├── example_SQLServerEmailAlertsToAdminsEnabled/ │ │ │ ├── sqlServerEmailAlertsToAdminsEnabled-FAILED.json │ │ │ └── sqlServerEmailAlertsToAdminsEnabled-PASSED.json │ │ ├── example_SQLServerHasPublicAccessDisabled/ │ │ │ ├── fail.json │ │ │ └── pass.json │ │ ├── example_SQLServerNoPublicAccess/ │ │ │ ├── sqlServerNoPublicAccess-TDE-FAILED.json │ │ │ └── sqlServerNoPublicAccess-TDE-PASSED.json │ │ ├── example_SQLServerThreatDetectionTypes/ │ │ │ ├── sqlServerThreatDetectionTypes-FAILED.json │ │ │ ├── sqlServerThreatDetectionTypes-PASSED.json │ │ │ └── sqlServerThreatDetectionTypes-PASSED2.json │ │ ├── example_SQLServerUsesADAuth/ │ │ │ ├── fail.json │ │ │ └── pass.json │ │ ├── example_SecretContentType/ │ │ │ ├── SecretExpirationDate-FAILED.json │ │ │ └── SecretExpirationDate-PASSED.json │ │ ├── example_SecretExpirationDate/ │ │ │ ├── SecretExpirationDate-FAILED.json │ │ │ └── SecretExpirationDate-PASSED.json │ │ ├── example_SecurityCenter/ │ │ │ ├── securityCenter-FAILED.json │ │ │ └── securityCenter-PASSED.json │ │ ├── example_SkipJsonRegex/ │ │ │ ├── skip1.json │ │ │ ├── skip2/ │ │ │ │ ├── skip1.json │ │ │ │ └── skip2.json │ │ │ └── skip2.json │ │ ├── example_StorageAccountAzureServicesAccessEnabled/ │ │ │ ├── storageAccountAzureServicesAccessEnabled-FAILED.json │ │ │ ├── storageAccountAzureServicesAccessEnabled-FAILED2.json │ │ │ ├── storageAccountAzureServicesAccessEnabled-PASSED.json │ │ │ ├── storageAccountAzureServicesAccessEnabled-PASSED2.json │ │ │ ├── storageAccountAzureServicesAccessEnabled-UNKNOWN.json │ │ │ └── storageAccountAzureServicesAccessEnabled-VARIABLE.json │ │ ├── example_StorageAccountDefaultNetworkAccessDeny/ │ │ │ ├── storageAccountDefaultNetworkAccessDeny-FAILED.json │ │ │ ├── storageAccountDefaultNetworkAccessDeny-FAILED2.json │ │ │ ├── storageAccountDefaultNetworkAccessDeny-PASSED.json │ │ │ ├── storageAccountDefaultNetworkAccessDeny-PASSED2.json │ │ │ └── storageAccountDefaultNetworkAccessDeny-UNKNOWN.json │ │ ├── example_StorageAccountDisablePublicAccess/ │ │ │ ├── FAILED.json │ │ │ ├── PASSED.json │ │ │ └── PASSED_2.json │ │ ├── example_StorageAccountLoggingQueueServiceEnabled/ │ │ │ ├── exampleStorageAccountLoggingQueueServiceEnabled-Failed.json │ │ │ ├── exampleStorageAccountLoggingQueueServiceEnabled-Failed2.json │ │ │ └── exampleStorageAccountLoggingQueueServiceEnabled-PASSED.json │ │ ├── example_StorageAccountMinimumTlsVersion/ │ │ │ ├── exampleStorageAccountMinimumTlsVersion-fail1.json │ │ │ ├── exampleStorageAccountMinimumTlsVersion-fail2.json │ │ │ ├── exampleStorageAccountMinimumTlsVersion-fail3.json │ │ │ └── exampleStorageAccountMinimumTlsVersion-passed.json │ │ ├── example_StorageAccountName/ │ │ │ ├── camelCase.json │ │ │ ├── kebabCase.json │ │ │ ├── pass.json │ │ │ ├── passNumber.json │ │ │ ├── substring.bicep │ │ │ └── tooLong.json │ │ ├── example_StorageAccountsTransportEncryption/ │ │ │ ├── notes.txt │ │ │ ├── storageAccount-FAILED.json │ │ │ ├── storageAccount-FAILED2.json │ │ │ ├── storageAccount-PASSED.json │ │ │ ├── storageAccount-PASSED2.json │ │ │ ├── storageAccount-PASSED3.json │ │ │ ├── storageAccount-SKIPPED.json │ │ │ ├── storageAccount-SKIPPED2.json │ │ │ └── storageAccount-SKIPPED3.json │ │ ├── example_StorageAccountsUseReplication/ │ │ │ ├── fail.json │ │ │ └── pass.json │ │ ├── example_StorageBlobServiceContainerPrivateAccess/ │ │ │ ├── storageBlobServiceContainerPrivateAccess-FAILED.json │ │ │ ├── storageBlobServiceContainerPrivateAccess-PASSED.json │ │ │ └── storageBlobServiceContainerPrivateAccess-PASSED2.json │ │ ├── example_StorageSyncPublicAccessDisabled/ │ │ │ ├── fail1.json │ │ │ ├── fail2.json │ │ │ └── pass.json │ │ ├── example_SynapseWorkspaceAdministratorLoginPasswordHidden/ │ │ │ ├── fail.json │ │ │ └── pass.json │ │ ├── example_SynapseWorkspaceCMKEncryption/ │ │ │ ├── fail.json │ │ │ └── pass.json │ │ ├── example_SynapseWorkspaceEnablesDataExfilProtection/ │ │ │ ├── fail1.json │ │ │ ├── fail2.json │ │ │ └── pass.json │ │ ├── example_SynapseWorkspaceEnablesManagedVirtualNetworks/ │ │ │ ├── fail.json │ │ │ └── pass.json │ │ ├── example_TestMySQLPublicAccessDisabled/ │ │ │ ├── fail.json │ │ │ ├── fail2.json │ │ │ ├── pass.json │ │ │ └── pass2.json │ │ ├── example_VMCredsInCustomData/ │ │ │ ├── fail-secret.json │ │ │ ├── pass-empty-os-profile.json │ │ │ ├── pass-no-custom-date.json │ │ │ ├── pass-no-os-profile.json │ │ │ └── pass-no-secret.json │ │ ├── example_VMDisablePasswordAuthentication/ │ │ │ ├── failed-vm.json │ │ │ ├── failed.json │ │ │ ├── passed-vm.json │ │ │ └── passed.json │ │ ├── example_VMEncryptionAtHostEnabled/ │ │ │ ├── scaleset-fail.json │ │ │ ├── scaleset-fail2.json │ │ │ ├── scaleset-pass.json │ │ │ ├── vm-fail.json │ │ │ ├── vm-fail2.json │ │ │ └── vm-pass.json │ │ ├── example_VMScaleSetsAutoOSImagePatchingEnabled/ │ │ │ ├── fail-windows.json │ │ │ ├── fail-windows2.json │ │ │ ├── fail.json │ │ │ ├── fail2.json │ │ │ ├── pass-windows.json │ │ │ └── pass.json │ │ ├── example_VMStorageOsDisk/ │ │ │ ├── fail.json │ │ │ ├── fail2.json │ │ │ ├── pass.json │ │ │ └── pass2.json │ │ ├── example_VnetLocalDNS/ │ │ │ ├── fail.json │ │ │ ├── fail2.json │ │ │ ├── fail3.json │ │ │ ├── pass.json │ │ │ ├── pass2.json │ │ │ ├── unknown.json │ │ │ └── unknown2.json │ │ ├── example_VnetSingleDNSServer/ │ │ │ ├── fail.json │ │ │ ├── fail2.json │ │ │ ├── fail3.json │ │ │ ├── pass.json │ │ │ ├── pass2.json │ │ │ ├── pass3.json │ │ │ └── pass4.json │ │ ├── example_WildcardEntities/ │ │ │ └── main.json │ │ ├── example_WinVMAutomaticUpdates/ │ │ │ ├── fail.json │ │ │ └── pass.json │ │ ├── example_WinVMEncryptionAtHost/ │ │ │ ├── failed.json │ │ │ └── passed.json │ │ ├── test_ACRAdminAccountDisabled.py │ │ ├── test_ACRAnonymousPullDisabled.py │ │ ├── test_ACRContainerScanEnabled.py │ │ ├── test_ACREnableImageQuarantine.py │ │ ├── test_ACREnableZoneRedundancy.py │ │ ├── test_ACRPublicNetworkAccessDisabled.py │ │ ├── test_AKSApiServerAuthorizedIpRanges.py │ │ ├── test_AKSDashboardDisabled.py │ │ ├── test_AKSEncryptionAtHostEnabled.py │ │ ├── test_AKSEphemeralOSDisks.py │ │ ├── test_AKSLocalAdminDisabled.py │ │ ├── test_AKSLoggingEnabled.py │ │ ├── test_AKSMaxPodsMinimum.py │ │ ├── test_AKSNetworkPolicy.py │ │ ├── test_AKSPoolTypeIsScaleSet.py │ │ ├── test_AKSRbacEnabled.py │ │ ├── test_AKSUpgradeChannel.py │ │ ├── test_APIManagementMinTLS12.py │ │ ├── test_APIManagementPublicAccess.py │ │ ├── test_APIServicesUseVirtualNetwork.py │ │ ├── test_AkSSecretStoreRotation.py │ │ ├── test_AppGWDefinesSecureProtocols.py │ │ ├── test_AppGatewayWAFACLCVE202144228.py │ │ ├── test_AppServiceAuthentication.py │ │ ├── test_AppServiceClientCertificate.py │ │ ├── test_AppServiceDetailedErrorMessagesEnabled.py │ │ ├── test_AppServiceDisallowCORS.py │ │ ├── test_AppServiceDotnetFrameworkVersion.py │ │ ├── test_AppServiceEnabledFailedRequest.py │ │ ├── test_AppServiceFTPSState.py │ │ ├── test_AppServiceHTTPSOnly.py │ │ ├── test_AppServiceHttpLoggingEnabled.py │ │ ├── test_AppServiceHttps20Enabled.py │ │ ├── test_AppServiceIdentity.py │ │ ├── test_AppServiceIdentityProviderEnabled.py │ │ ├── test_AppServiceInstanceMinimum.py │ │ ├── test_AppServiceJavaVersion.py │ │ ├── test_AppServiceMinTLSVersion.py │ │ ├── test_AppServicePHPVersion.py │ │ ├── test_AppServicePlanZoneRedundant.py │ │ ├── test_AppServicePublicAccessDisabled.py │ │ ├── test_AppServicePythonVersion.py │ │ ├── test_AppServiceRemoteDebuggingNotEnabled.py │ │ ├── test_AppServiceSetHealthCheck.py │ │ ├── test_AppServiceSlotDebugDisabled.py │ │ ├── test_AppServiceSlotHTTPSOnly.py │ │ ├── test_AppServiceUsedAzureFiles.py │ │ ├── test_AutomationEncrypted.py │ │ ├── test_AzureBatchAccountEndpointAccessDefaultAction.py │ │ ├── test_AzureBatchAccountUsesKeyVaultEncryption.py │ │ ├── test_AzureDataExplorerDoubleEncryptionEnabled.py │ │ ├── test_AzureDefenderOnKeyVaults.py │ │ ├── test_AzureDefenderOnKubernetes.py │ │ ├── test_AzureDefenderOnSqlServersVMS.py │ │ ├── test_AzureDefenderOnStorage.py │ │ ├── test_AzureFirewallDenyThreatIntelMode.py │ │ ├── test_AzureFrontDoorEnablesWAF.py │ │ ├── test_AzureInstanceExtensions.py │ │ ├── test_AzureInstancePassword.py │ │ ├── test_AzureMLWorkspacePrivateEndpoint.py │ │ ├── test_AzureManagedDiscEncryption.py │ │ ├── test_AzureManagedDiscEncryptionSet.py │ │ ├── test_AzureScaleSetPassword.py │ │ ├── test_AzureSearchSLAIndex.py │ │ ├── test_AzureSearchSLAQueryUpdates.py │ │ ├── test_AzureServiceFabricClusterProtectionLevel.py │ │ ├── test_AzureSparkPoolIsolatedComputeEnabled.py │ │ ├── test_AzureSynapseWorkspaceVAisEnabled.py │ │ ├── test_AzureSynapseWorkspacesHaveNoIPFirewallRulesAttached.py │ │ ├── test_CognitiveServicesConfigureIdentity.py │ │ ├── test_CognitiveServicesDisablesPublicNetwork.py │ │ ├── test_CognitiveServicesEnableLocalAuth.py │ │ ├── test_CosmosDBAccountsRestrictedAccess.py │ │ ├── test_CosmosDBDisableAccessKeyWrite.py │ │ ├── test_CosmosDBDisablesPublicNetwork.py │ │ ├── test_CosmosDBHaveCMK.py │ │ ├── test_CosmosDBLocalAuthDisabled.py │ │ ├── test_CustomRoleDefinitionSubscriptionOwner.py │ │ ├── test_DataExplorerUsesDiskEncryption.py │ │ ├── test_DataFactoryNoPublicNetworkAccess.py │ │ ├── test_DataFactoryUsesGitRepository.py │ │ ├── test_DataLakeStoreEncryption.py │ │ ├── test_DatabricksWorkspaceDBFSRootEncryptedWithCustomerManagedKey.py │ │ ├── test_DatabricksWorkspaceDataPlaneToControlPlaneCommunicateOverPrivateLink.py │ │ ├── test_EventHubNamespaceMinTLS12.py │ │ ├── test_EventgridTopicIdentityProviderEnabled.py │ │ ├── test_EventgridTopicLocalAuthentication.py │ │ ├── test_EventgridTopicNetworkAccess.py │ │ ├── test_FrontDoorWAFACLCVE202144228.py │ │ ├── test_FrontdoorUseWAFMode.py │ │ ├── test_FunctionAppDisallowCORS.py │ │ ├── test_FunctionAppHttpVersionLatest.py │ │ ├── test_FunctionAppMinTLSVersion.py │ │ ├── test_FunctionAppsAccessibleOverHttps.py │ │ ├── test_FunctionAppsEnableAuthentication.py │ │ ├── test_KeyBackedByHSM.py │ │ ├── test_KeyExpirationDate.py │ │ ├── test_KeyVaultDisablesPublicNetworkAccess.py │ │ ├── test_KeyVaultEnablesFirewallRulesSettings.py │ │ ├── test_KeyVaultEnablesPurgeProtection.py │ │ ├── test_KeyVaultEnablesSoftDelete.py │ │ ├── test_KeyvaultRecoveryEnabled.py │ │ ├── test_LinuxVMUsesSSH.py │ │ ├── test_MSSQLServerMinTLSVersion.py │ │ ├── test_MariaDBGeoBackupEnabled.py │ │ ├── test_MariaDBPublicAccessDisabled.py │ │ ├── test_MariaDBSSLEnforcementEnabled.py │ │ ├── test_MonitorLogProfileCategories.py │ │ ├── test_MonitorLogRetentionDays.py │ │ ├── test_MySQLEncryptionEnabled.py │ │ ├── test_MySQLGeoBackupEnabled.py │ │ ├── test_MySQLPublicAccessDisabled.py │ │ ├── test_MySQLServerMinTLSVersion.py │ │ ├── test_MySQLServerSSLEnforcementEnabled.py │ │ ├── test_NSGRuleHTTPAccessRestricted.py │ │ ├── test_NSGRuleRDPAccessRestricted.py │ │ ├── test_NSGRuleSSHAccessRestricted.py │ │ ├── test_NetworkWatcherFlowLogPeriod.py │ │ ├── test_PostgreSQLEncryptionEnabled.py │ │ ├── test_PostgreSQLServerConnectionThrottlingEnabled.py │ │ ├── test_PostgreSQLServerLogCheckpointsEnabled.py │ │ ├── test_PostgreSQLServerLogConnectionsEnabled.py │ │ ├── test_PostgreSQLServerPublicAccessDisabled.py │ │ ├── test_PostgreSQLServerSSLEnforcementEnabled.py │ │ ├── test_PostgressSQLGeoBackupEnabled.py │ │ ├── test_PubsubSKUSLA.py │ │ ├── test_PubsubSpecifyIdentity.py │ │ ├── test_RedisCachePublicNetworkAccessEnabled.py │ │ ├── test_SQLDatabaseZoneRedundant.py │ │ ├── test_SQLServerAuditingEnabled.py │ │ ├── test_SQLServerAuditingRetention90Days.py │ │ ├── test_SQLServerEmailAlertsEnabled.py │ │ ├── test_SQLServerEmailAlertsToAdminsEnabled.py │ │ ├── test_SQLServerHasPublicAccessDisabled.py │ │ ├── test_SQLServerNoPublicAccess.py │ │ ├── test_SQLServerThreatDetectionTypes.py │ │ ├── test_SQLServerUsesADAuth.py │ │ ├── test_SecretContentType.py │ │ ├── test_SecretExpirationDate.py │ │ ├── test_SecurityCenterContactEmailAlert.py │ │ ├── test_SecurityCenterContactEmailAlertAdmins.py │ │ ├── test_SecurityCenterContactPhone.py │ │ ├── test_SecurityCenterStandardPricing.py │ │ ├── test_SkipJsonRegexPattern.py │ │ ├── test_StorageAccountAzureServicesAccessEnabled.py │ │ ├── test_StorageAccountDefaultNetworkAccessDeny.py │ │ ├── test_StorageAccountDisablePublicAccess.py │ │ ├── test_StorageAccountLoggingQueueServiceEnabled.py │ │ ├── test_StorageAccountMinimumTlsVersion.py │ │ ├── test_StorageAccountName.py │ │ ├── test_StorageAccountsTransportEncryption.py │ │ ├── test_StorageAccountsUseReplication.py │ │ ├── test_StorageBlobServiceContainerPrivateAccess.py │ │ ├── test_StorageSyncPublicAccessDisabled.py │ │ ├── test_SynapseWorkspaceAdministratorLoginPasswordHidden.py │ │ ├── test_SynapseWorkspaceCMKEncryption.py │ │ ├── test_SynapseWorkspaceEnablesDataExfilProtection.py │ │ ├── test_SynapseWorkspaceEnablesManagedVirtualNetworks.py │ │ ├── test_VMCredsInCustomData.py │ │ ├── test_VMDisablePasswordAuthentication.py │ │ ├── test_VMEncryptionAtHostEnabled.py │ │ ├── test_VMScaleSetsAutoOSImagePatchingEnabled.py │ │ ├── test_VMStorageOsDisk.py │ │ ├── test_VnetLocalDNS.py │ │ ├── test_VnetSingleDNSServer.py │ │ ├── test_WinVMAutomaticUpdates.py │ │ ├── test_WinVMEncryptionAtHost.py │ │ └── test_wildcard_entities.py │ ├── examples/ │ │ ├── ExplicitDepsResources/ │ │ │ ├── interface.json │ │ │ ├── storage.json │ │ │ └── subnet.json │ │ ├── ImplicitDepsResources/ │ │ │ ├── interface.json │ │ │ ├── storage.json │ │ │ └── subnet.json │ │ ├── container_instance.json │ │ └── convert_def_test.json │ ├── graph_builder/ │ │ ├── __init__.py │ │ ├── checks/ │ │ │ ├── __init__.py │ │ │ ├── resources/ │ │ │ │ ├── AzureMLWorkspacePublicNetwork/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ ├── fail.json │ │ │ │ │ ├── pass.json │ │ │ │ │ └── pass2.json │ │ │ │ ├── AzureSpringCloudConfigWithVnet/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ ├── fail.json │ │ │ │ │ └── pass.json │ │ │ │ ├── SynapseLogMonitoringEnabledForSQLPool/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ ├── fail.json │ │ │ │ │ └── pass.json │ │ │ │ ├── SynapseSQLPoolHasSecurityAlertPolicy/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ ├── fail1.json │ │ │ │ │ ├── fail2.json │ │ │ │ │ └── pass.json │ │ │ │ ├── SynapseSQLPoolHasVulnerabilityAssessment/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ ├── fail.json │ │ │ │ │ ├── fail2.json │ │ │ │ │ └── pass.json │ │ │ │ └── SynapseWorkspaceHasExtendedAuditLogs/ │ │ │ │ ├── expected.yaml │ │ │ │ ├── fail1.json │ │ │ │ ├── fail2.json │ │ │ │ └── pass.json │ │ │ └── test_yaml_policies.py │ │ └── test_local_graph.py │ ├── parser/ │ │ ├── __init__.py │ │ ├── examples/ │ │ │ └── json/ │ │ │ ├── mariadb.json │ │ │ ├── normal.json │ │ │ └── with_comments.json │ │ └── test_parser.py │ ├── rendering/ │ │ ├── __init__.py │ │ ├── test_rendering.json │ │ └── test_rendering.py │ ├── runner/ │ │ ├── __init__.py │ │ ├── resources/ │ │ │ ├── example.json │ │ │ ├── invalid.json │ │ │ └── no_resource.json │ │ └── test_runner.py │ ├── test_graph_manager.py │ ├── test_scanner_registry.py │ └── test_utils.py ├── azure_pipelines/ │ ├── __init__.py │ ├── checks/ │ │ ├── __init__.py │ │ └── jobs/ │ │ ├── __init__.py │ │ ├── example_ContainerDigest/ │ │ │ └── azure-pipelines.yml │ │ ├── example_ContainerLatestTag/ │ │ │ └── azure-pipelines.yml │ │ ├── example_SetSecretVariable/ │ │ │ └── azure-pipelines.yml │ │ ├── test_ContainerDigest.py │ │ ├── test_ContainerLatestTag.py │ │ └── test_SetSecretVariable.py │ ├── conftest.py │ ├── examples/ │ │ └── azure-pipelines.yml │ ├── resources/ │ │ └── azure-pipelines.yaml │ ├── test_resource_names.py │ └── test_runner.py ├── bicep/ │ ├── __init__.py │ ├── checks/ │ │ ├── __init__.py │ │ ├── param/ │ │ │ ├── __init__.py │ │ │ └── azure/ │ │ │ ├── __init__.py │ │ │ ├── example_SecureStringParameterNoHardcodedValue/ │ │ │ │ └── main.bicep │ │ │ └── test_SecureStringParameterNoHardcodedValue.py │ │ └── resource/ │ │ ├── __init__.py │ │ └── azure/ │ │ ├── __init__.py │ │ ├── example_AKSApiServerAuthorizedIpRanges/ │ │ │ └── main.bicep │ │ ├── example_AKSDashboardDisabled/ │ │ │ └── main.bicep │ │ ├── example_AKSLoggingEnabled/ │ │ │ └── main.bicep │ │ ├── example_AKSNetworkPolicy/ │ │ │ └── main.bicep │ │ ├── example_AKSRbacEnabled/ │ │ │ └── main.bicep │ │ ├── example_AzureFirewallDenyThreatIntelMode/ │ │ │ ├── CKV_AZURE_216.fail.bicep │ │ │ ├── CKV_AZURE_216.fail2.bicep │ │ │ └── CKV_AZURE_216.pass.bicep │ │ ├── example_AzureFrontDoorEnablesWAF/ │ │ │ ├── fail.bicep │ │ │ └── pass.bicep │ │ ├── example_AzureManagedDiscEncryption/ │ │ │ └── main.bicep │ │ ├── example_FrontdoorUseWAFMode/ │ │ │ ├── example_FrontdoorUseWAFMode-FAILED.bicep │ │ │ └── example_FrontdoorUseWAFMode-PASSED.bicep │ │ ├── example_MonitorLogProfileCategories/ │ │ │ └── main.bicep │ │ ├── example_MonitorLogProfileRetentionDays/ │ │ │ └── main.bicep │ │ ├── example_StorageAccountAzureServicesAccessEnabled/ │ │ │ └── main.bicep │ │ ├── example_StorageAccountDefaultNetworkAccessDeny/ │ │ │ └── main.bicep │ │ ├── example_StorageAccountsTransportEncryption/ │ │ │ └── main.bicep │ │ ├── example_VMEncryptionAtHostEnabled/ │ │ │ └── main.bicep │ │ ├── test_AKSApiServerAuthorizedIpRanges.py │ │ ├── test_AKSDashboardDisabled.py │ │ ├── test_AKSLoggingEnabled.py │ │ ├── test_AKSNetworkPolicy.py │ │ ├── test_AKSRbacEnabled.py │ │ ├── test_AzureFirewallDenyThreatIntelMode.py │ │ ├── test_AzureFrontDoorEnablesWAF.py │ │ ├── test_AzureManagedDiscEncryption.py │ │ ├── test_FrontdoorUseWAFMode.py │ │ ├── test_MonitorLogProfileCategories.py │ │ ├── test_MonitorLogProfileRetentionDays.py │ │ ├── test_StorageAccountAzureServicesAccessEnabled.py │ │ ├── test_StorageAccountDefaultNetworkAccessDeny.py │ │ ├── test_StorageAccountsTransportEncryption.py │ │ └── test_VMEncryptionAtHostEnabled.py │ ├── examples/ │ │ ├── existing.bicep │ │ ├── graph.bicep │ │ ├── loop.bicep │ │ ├── malformed.bicep │ │ └── playground.bicep │ ├── graph/ │ │ ├── __init__.py │ │ ├── checks/ │ │ │ ├── __init__.py │ │ │ ├── resources/ │ │ │ │ ├── SQLServerAuditingEnabled/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.bicep │ │ │ │ ├── SQLServerAuditingRetention90Days/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ ├── fail1_less_90.bicep │ │ │ │ │ ├── fail2_no_auditsettings.bicep │ │ │ │ │ ├── fail3_not_enabled.bicep │ │ │ │ │ └── pass1.bicep │ │ │ │ ├── SQLServerThreatDetectionTypes/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.bicep │ │ │ │ └── __init__.py │ │ │ └── test_yaml_policies.py │ │ ├── definitions_context/ │ │ │ ├── resources/ │ │ │ │ ├── definitions_example1.bicep │ │ │ │ └── definitions_example2.bicep │ │ │ └── test_definitions_context.py │ │ └── graph_builder/ │ │ ├── __init__.py │ │ ├── examples/ │ │ │ ├── mixed/ │ │ │ │ └── main.bicep │ │ │ ├── parameter/ │ │ │ │ └── main.bicep │ │ │ └── variable/ │ │ │ └── main.bicep │ │ ├── test_local_graph.py │ │ └── test_renderer.py │ ├── image_referencer/ │ │ ├── __init__.py │ │ ├── provider/ │ │ │ ├── __init__.py │ │ │ └── test_azure.py │ │ ├── resources/ │ │ │ └── azure/ │ │ │ ├── batch.bicep │ │ │ ├── container_instance.bicep │ │ │ └── web.bicep │ │ ├── test_manager.py │ │ └── test_runner_azure_resources.py │ ├── test_graph_manager.py │ ├── test_parser.py │ ├── test_runner.py │ └── test_utils.py ├── bitbucket/ │ ├── __init__.py │ ├── resources/ │ │ └── bitbucket_conf/ │ │ ├── fail/ │ │ │ └── branch_restrictions.json │ │ └── pass/ │ │ └── branch_restrictions.json │ └── test_runner.py ├── bitbucket_pipelines/ │ ├── __init__.py │ ├── resources/ │ │ └── bitbucket-pipelines.yml │ └── test_runner.py ├── circleci_pipelines/ │ ├── __init__.py │ ├── conftest.py │ ├── resources/ │ │ └── .circleci/ │ │ └── config.yml │ └── test_runner.py ├── cloudformation/ │ ├── __init__.py │ ├── checks/ │ │ ├── __init__.py │ │ ├── example_WildcardEntities/ │ │ │ └── main.yaml │ │ ├── resource/ │ │ │ ├── __init__.py │ │ │ └── aws/ │ │ │ ├── Cloudsplaining_IAMCredentialsExposure/ │ │ │ │ ├── FAILED.yml │ │ │ │ └── PASSED.yml │ │ │ ├── Cloudsplaining_IAMGroup/ │ │ │ │ ├── FAILED.yml │ │ │ │ └── PASSED.yaml │ │ │ ├── Cloudsplaining_IAMPermissionsManagement/ │ │ │ │ ├── FAILED.yml │ │ │ │ └── PASSED.yaml │ │ │ ├── Cloudsplaining_IAMRole/ │ │ │ │ ├── FAILED.yml │ │ │ │ └── PASSED.yaml │ │ │ ├── Cloudsplaining_IAMUser/ │ │ │ │ ├── FAILED.yml │ │ │ │ └── PASSED.yaml │ │ │ ├── Cloudsplaining_IAMWriteAccess/ │ │ │ │ ├── FAILED.yml │ │ │ │ └── PASSED.yaml │ │ │ ├── Cloudsplaining_ManagedPolicy/ │ │ │ │ ├── FAILED.yml │ │ │ │ └── PASSED.yaml │ │ │ ├── S3Templates/ │ │ │ │ └── ExampleS3.yaml │ │ │ ├── __init__.py │ │ │ ├── cloudsplaining.md │ │ │ ├── example_ALBDropHttpHeaders/ │ │ │ │ ├── FAIL.yaml │ │ │ │ ├── PASS.yaml │ │ │ │ └── UNKNOWN.yaml │ │ │ ├── example_ALBListener/ │ │ │ │ ├── ALBListenerHTTPS-FAILED-HTTP.yaml │ │ │ │ ├── ALBListenerHTTPS-PASSED-HTTPS.yaml │ │ │ │ ├── ALBListenerHTTPS-PASSED-TCP.yaml │ │ │ │ ├── ALBListenerHTTPS-PASSED-TCP_UDP.yaml │ │ │ │ ├── ALBListenerHTTPS-PASSED-TLS.yaml │ │ │ │ ├── ALBListenerHTTPS-PASSED-UDP.yaml │ │ │ │ └── ALBListenerHTTPS-PASSED-redirect.yaml │ │ │ ├── example_ALBListenerTLS12/ │ │ │ │ ├── ALBListenerTLS1.2-FAILED.yaml │ │ │ │ ├── ALBListenerTLS1.2-PASSED.yaml │ │ │ │ └── ALBListenerTLS1.3-PASSED.yaml │ │ │ ├── example_APIGatewayAccessLogging/ │ │ │ │ ├── APIGatewayAccessLogging-FAILED.yaml │ │ │ │ ├── APIGatewayAccessLogging-PASSED.yaml │ │ │ │ └── sam.yaml │ │ │ ├── example_APIGatewayAuthorization/ │ │ │ │ ├── APIGatewayAuthorization-FAILED.yaml │ │ │ │ └── APIGatewayAuthorization-PASSED.yaml │ │ │ ├── example_APIGatewayCacheEnable/ │ │ │ │ ├── FAIL.yaml │ │ │ │ ├── PASS.yaml │ │ │ │ └── sam.yaml │ │ │ ├── example_APIGatewayV2AccessLogging/ │ │ │ │ ├── APIGatewayV2AccessLogging-FAILED.yaml │ │ │ │ ├── APIGatewayV2AccessLogging-PASSED.yaml │ │ │ │ └── sam.yaml │ │ │ ├── example_APIGatewayXray/ │ │ │ │ ├── APIGatewayXray-FAILED.yaml │ │ │ │ ├── APIGatewayXray-PASSED.yaml │ │ │ │ └── sam.yaml │ │ │ ├── example_AmazonMQBrokerPublicAccess/ │ │ │ │ ├── AmazonMQBrokerPublicAccess-FAILED-1.yaml │ │ │ │ ├── AmazonMQBrokerPublicAccess-FAILED-2.yaml │ │ │ │ ├── AmazonMQBrokerPublicAccess-PASSED-1.yaml │ │ │ │ └── AmazonMQBrokerPublicAccess-PASSED-2.yaml │ │ │ ├── example_AppSyncFieldLevelLogs/ │ │ │ │ └── template.yaml │ │ │ ├── example_AppSyncLogging/ │ │ │ │ └── template.yaml │ │ │ ├── example_AthenaWorkgroupConfiguration/ │ │ │ │ ├── AthenaWorkgroupConfiguration-FAIL.yaml │ │ │ │ └── AthenaWorkgroupConfiguration-PASSED.yaml │ │ │ ├── example_AuroraEncryption/ │ │ │ │ ├── AuroraEncryption-FAIL.yaml │ │ │ │ ├── AuroraEncryption-PASSED.yaml │ │ │ │ └── AuroraEncryption-UNKNOWN.yaml │ │ │ ├── example_BackupVaultEncrypted/ │ │ │ │ ├── FAIL.yaml │ │ │ │ └── PASS.yaml │ │ │ ├── example_BedrockAgentEncrypted/ │ │ │ │ ├── FAIL.yaml │ │ │ │ └── PASS.yaml │ │ │ ├── example_CloudFrontTLS12/ │ │ │ │ ├── CloudFrontTLS12-FAILED.yaml │ │ │ │ └── CloudFrontTLS12-PASSED.yaml │ │ │ ├── example_CloudWatchLogGroupKMSKey/ │ │ │ │ ├── FAIL.yaml │ │ │ │ └── PASS.yaml │ │ │ ├── example_CloudWatchLogGroupRetention/ │ │ │ │ ├── FAIL.yaml │ │ │ │ └── PASS.yaml │ │ │ ├── example_CloudfrontDistributionLogging/ │ │ │ │ ├── CloudfrontDistributionLogging-FAILED.yaml │ │ │ │ └── CloudfrontDistributionLogging-PASSED.yaml │ │ │ ├── example_CloudtrailEncryption/ │ │ │ │ ├── CloudTrailEncryption-FAILED.yaml │ │ │ │ ├── CloudTrailEncryption-PASSED.json │ │ │ │ └── CloudTrailEncryption-PASSED.yaml │ │ │ ├── example_CloudtrailLogValidation/ │ │ │ │ ├── CloudTrailLogValidation-FAILED.yaml │ │ │ │ └── CloudTrailLogValidation-PASSED.yaml │ │ │ ├── example_CloudtrailMultiRegion/ │ │ │ │ ├── CloudtrailMultiRegion-FAILED.yaml │ │ │ │ └── CloudtrailMultiRegion-PASSED.yaml │ │ │ ├── example_CodeBuildProjectEncryption/ │ │ │ │ ├── CodeBuildProjectEncryption-FAILED.yaml │ │ │ │ └── CodeBuildProjectEncryption-PASSED.yaml │ │ │ ├── example_CognitoUnauthenticatedIdentities/ │ │ │ │ ├── FAILED.yml │ │ │ │ └── PASSED.yaml │ │ │ ├── example_DAXEncryption/ │ │ │ │ ├── DAXEncryption-FAILED.yml │ │ │ │ └── DAXEncryption-PASSED.yml │ │ │ ├── example_DMSReplicationInstancePubliclyAccessible/ │ │ │ │ ├── DMSReplicationInstancePubliclyAccessible-FAILED.yml │ │ │ │ └── DMSReplicationInstancePubliclyAccessible-PASSED.yml │ │ │ ├── example_DeprecatedLambdaRuntime/ │ │ │ │ ├── example.yaml │ │ │ │ └── exampleSAM.yaml │ │ │ ├── example_DocDBAuditLogs/ │ │ │ │ ├── DocDBAuditLogs-FAILED.yaml │ │ │ │ └── DocDBAuditLogs-PASSED.yaml │ │ │ ├── example_DocDBBackupRetention/ │ │ │ │ ├── DocDBBackupRetention-FAILED.yaml │ │ │ │ └── DocDBBackupRetention-PASSED.yaml │ │ │ ├── example_DocDBEncryption/ │ │ │ │ ├── DocDBEncryption-FAILED.yaml │ │ │ │ └── DocDBEncryption-PASSED.yaml │ │ │ ├── example_DocDBLogging/ │ │ │ │ ├── DocDBLogging-FAILED.yaml │ │ │ │ └── DocDBLogging-PASSED.yaml │ │ │ ├── example_DocDBTLS/ │ │ │ │ ├── DocDBTLS-FAILED.yaml │ │ │ │ └── DocDBTLS-PASSED.yaml │ │ │ ├── example_DynamoDBTablesEncrypted/ │ │ │ │ ├── FAILED.yaml │ │ │ │ └── PASSED.yaml │ │ │ ├── example_DynamodbGlobalTableRecovery/ │ │ │ │ ├── DynamodbGlobalTableRecovery-FAILED-2.yaml │ │ │ │ ├── DynamodbGlobalTableRecovery-FAILED.yaml │ │ │ │ └── DynamodbGlobalTableRecovery-PASSED.yaml │ │ │ ├── example_DynamodbRecovery/ │ │ │ │ ├── DynamodbRecovery-FAILED-2.yaml │ │ │ │ ├── DynamodbRecovery-FAILED.yaml │ │ │ │ └── DynamodbRecovery-PASSED.yaml │ │ │ ├── example_EBSEncryption/ │ │ │ │ ├── EBSEncryption-FAILED-2.yaml │ │ │ │ ├── EBSEncryption-FAILED.yaml │ │ │ │ └── EBSEncryption-PASSED.yaml │ │ │ ├── example_EC2Credentials/ │ │ │ │ ├── EC2Credentials-FAILED.yaml │ │ │ │ ├── EC2Credentials-FAILED_B64encoded.yaml │ │ │ │ └── EC2Credentials-PASSED.yaml │ │ │ ├── example_EC2PublicIP/ │ │ │ │ ├── EC2PublicIP-FAILED.yaml │ │ │ │ ├── EC2PublicIP-PASSED.yaml │ │ │ │ └── EC2PublicIP-UNKNOWN.yaml │ │ │ ├── example_ECRImageScanning/ │ │ │ │ ├── FAILED.yml │ │ │ │ └── PASSED.yml │ │ │ ├── example_ECRImmutableTags/ │ │ │ │ ├── ECRImmutableTags-FAILED.yaml │ │ │ │ └── ECRImmutableTags-PASSED.yaml │ │ │ ├── example_ECRPolicy/ │ │ │ │ ├── ECRPolicy-FAILED.yaml │ │ │ │ ├── ECRPolicy-PASSED-2.yaml │ │ │ │ ├── ECRPolicy-PASSED.yaml │ │ │ │ └── ECRPolicy_passed.json │ │ │ ├── example_ECRRepositoryEncrypted/ │ │ │ │ ├── FAILED.yml │ │ │ │ └── PASSED.yml │ │ │ ├── example_ECSClusterContainerInsights/ │ │ │ │ ├── ECSClusterContainerInsights-FAILED-2.yaml │ │ │ │ ├── ECSClusterContainerInsights-FAILED.yaml │ │ │ │ ├── ECSClusterContainerInsights-PASSED.yaml │ │ │ │ └── ECSClusterContainerInsights-PASSED2.yaml │ │ │ ├── example_ECSTaskDefinitionEFSVolumeEncryption/ │ │ │ │ ├── ECSTaskDefinitionEFSVolumeEncryption-FAILED.yaml │ │ │ │ └── ECSTaskDefinitionEFSVolumeEncryption-PASSED.yaml │ │ │ ├── example_EFSEncryption/ │ │ │ │ ├── EFSEncrpytion-FAILED.yml │ │ │ │ └── EFSEncrpytion-PASSED.yml │ │ │ ├── example_EKSNodeGroupRemoteAccess/ │ │ │ │ ├── EKSNodeGroupRemoteAccess-FAILED.yml │ │ │ │ └── EKSNodeGroupRemoteAccess-PASSED.yml │ │ │ ├── example_EKSSecretEncryption/ │ │ │ │ ├── EKSSecretEncryption-FAILED.yml │ │ │ │ └── EKSSecretEncryption-PASSED.yml │ │ │ ├── example_ELBAccessLogs/ │ │ │ │ ├── ELBAccessLogs-FAILED.yml │ │ │ │ └── ELBAccessLogs-PASSED.yml │ │ │ ├── example_ELBv2AccessLogs/ │ │ │ │ ├── ELBv2AccessLogs-FAILED.yml │ │ │ │ └── ELBv2AccessLogs-PASSED.yml │ │ │ ├── example_ElasticacheReplicationGroupEncryptionAtRest/ │ │ │ │ ├── ElasticacheReplicationGroupEncryptionAtRest-FAILED-2.yaml │ │ │ │ ├── ElasticacheReplicationGroupEncryptionAtRest-FAILED.yaml │ │ │ │ └── ElasticacheReplicationGroupEncryptionAtRest-PASSED.yaml │ │ │ ├── example_ElasticacheReplicationGroupEncryptionAtTransit/ │ │ │ │ ├── ElasticacheReplicationGroupEncryptionAtTransit-FAILED-2.yaml │ │ │ │ ├── ElasticacheReplicationGroupEncryptionAtTransit-FAILED.yaml │ │ │ │ └── ElasticacheReplicationGroupEncryptionAtTransit-PASSED.yaml │ │ │ ├── example_ElasticacheReplicationGroupEncryptionAtTransitAuthToken/ │ │ │ │ ├── ElasticacheReplicationGroupEncryptionAtTransitAuthToken-FAILED.yaml │ │ │ │ ├── ElasticacheReplicationGroupEncryptionAtTransitAuthToken-FAILED2.yaml │ │ │ │ ├── ElasticacheReplicationGroupEncryptionAtTransitAuthToken-PASSED.yaml │ │ │ │ └── ElasticacheReplicationGroupEncryptionAtTransitAuthToken-PASSED2.yaml │ │ │ ├── example_ElasticsearchDomainAuditLogging/ │ │ │ │ ├── ElasticsearchDomainLogging-FAILED.yaml │ │ │ │ ├── ElasticsearchDomainLogging-PASSED.yaml │ │ │ │ ├── OpensearchDomainLogging-FAILED.yaml │ │ │ │ └── OpensearchDomainLogging-PASSED.yaml │ │ │ ├── example_ElasticsearchDomainEnforceHTTPS/ │ │ │ │ ├── ElasticsearchDomainEnforceHTTPS-FAILED.yaml │ │ │ │ └── ElasticsearchDomainEnforceHTTPS-PASSED.yaml │ │ │ ├── example_ElasticsearchDomainLogging/ │ │ │ │ ├── ElasticsearchDomainLogging-FAILED.yaml │ │ │ │ ├── ElasticsearchDomainLogging-PASSED.yaml │ │ │ │ ├── OpensearchDomainLogging-FAILED.yaml │ │ │ │ └── OpensearchDomainLogging-PASSED.yaml │ │ │ ├── example_ElasticsearchEncryption/ │ │ │ │ ├── ElasticsearchEncryption-FAILED-2.yaml │ │ │ │ ├── ElasticsearchEncryption-FAILED.yaml │ │ │ │ └── ElasticsearchEncryption-PASSED.yaml │ │ │ ├── example_ElasticsearchNodeToNodeEncryption/ │ │ │ │ ├── ElasticsearchNodeToNodeEncryption-FAILED-2.yaml │ │ │ │ ├── ElasticsearchNodeToNodeEncryption-FAILED.yaml │ │ │ │ └── ElasticsearchNodeToNodeEncryption-PASSED.yaml │ │ │ ├── example_GlueDataCatalogEncryption/ │ │ │ │ ├── GlueDataCatalogEncryption-FAILED.yml │ │ │ │ └── GlueDataCatalogEncryption-PASSED.yml │ │ │ ├── example_GlueSecurityConfiguration/ │ │ │ │ ├── GlueSecurityConfiguration-FAILED.yml │ │ │ │ └── GlueSecurityConfiguration-PASSED.yml │ │ │ ├── example_GlueSecurityConfigurationEnabled/ │ │ │ │ ├── FAIL.yaml │ │ │ │ └── PASS.yaml │ │ │ ├── example_IAMAdminPolicyDocument/ │ │ │ │ ├── iam_group.fail.json │ │ │ │ ├── iam_group.pass.json │ │ │ │ ├── iam_policy.fail.json │ │ │ │ ├── iam_policy.pass.json │ │ │ │ ├── iam_role.fail.json │ │ │ │ ├── iam_role.pass.json │ │ │ │ ├── iam_role.unknown.yaml │ │ │ │ ├── iam_user.fail.json │ │ │ │ └── iam_user.pass.json │ │ │ ├── example_IAMPolicyAttachedToGroupOrRoles/ │ │ │ │ ├── IAMPolicyAttachedToGroupOrRoles-FAILED.yml │ │ │ │ └── IAMPolicyAttachedToGroupOrRoles-PASSED.yml │ │ │ ├── example_IAMRoleAllowAssumeFromAccount/ │ │ │ │ ├── UNKNOWN.yml │ │ │ │ ├── example_IAMRoleAllowAssumeFromAccount-FAILED.yml │ │ │ │ ├── example_IAMRoleAllowAssumeFromAccount-PASSED-2.yml │ │ │ │ └── example_IAMRoleAllowAssumeFromAccount-PASSED.yml │ │ │ ├── example_IAMRoleAllowsPublicAssume/ │ │ │ │ ├── FAILED-2.yml │ │ │ │ ├── FAILED.yml │ │ │ │ ├── PASSED-2.yml │ │ │ │ └── PASSED.yml │ │ │ ├── example_IAMStarActionPolicyDocument/ │ │ │ │ ├── cfn_bad_iam_pass.yaml │ │ │ │ ├── iam_group.fail.json │ │ │ │ ├── iam_group.pass.json │ │ │ │ ├── iam_policy.fail.json │ │ │ │ ├── iam_policy.pass.json │ │ │ │ ├── iam_role.fail.json │ │ │ │ ├── iam_role.pass.json │ │ │ │ ├── iam_role.unknown.yaml │ │ │ │ ├── iam_user.fail.json │ │ │ │ └── iam_user.pass.json │ │ │ ├── example_IMDSv1Disabled/ │ │ │ │ ├── FAILED.yml │ │ │ │ └── PASSED.yml │ │ │ ├── example_KMSKeyWildCardPrincipal/ │ │ │ │ ├── KMSKeyWildCardPrincipal-FAILED-AWS-Wildcard.yaml │ │ │ │ ├── KMSKeyWildCardPrincipal-FAILED-Wildcard.yaml │ │ │ │ └── KMSKeyWildCardPrincipal-PASSED.yaml │ │ │ ├── example_KMSRotation/ │ │ │ │ ├── KMSRotation-FAILED.yml │ │ │ │ ├── KMSRotation-PASSED-Asymmetric.yml │ │ │ │ └── KMSRotation-PASSED-Symmetric.yml │ │ │ ├── example_KinesisStreamEncryptionType/ │ │ │ │ ├── FAILED.yml │ │ │ │ └── PASSED.yml │ │ │ ├── example_LambdaDLQConfigured/ │ │ │ │ ├── FAIL.yaml │ │ │ │ ├── PASS.yaml │ │ │ │ └── sam.yaml │ │ │ ├── example_LambdaEnvironmentCredentials/ │ │ │ │ ├── FAIL.yaml │ │ │ │ ├── PASS.yaml │ │ │ │ ├── PASS2.yaml │ │ │ │ ├── PASS3.yaml │ │ │ │ └── sam.yaml │ │ │ ├── example_LambdaEnvironmentEncryptionSettings/ │ │ │ │ ├── FAIL.yaml │ │ │ │ ├── PASS.yaml │ │ │ │ └── sam.yaml │ │ │ ├── example_LambdaFunctionLevelConcurrentExecutionLimit/ │ │ │ │ ├── FAIL.yaml │ │ │ │ ├── PASS.yaml │ │ │ │ └── sam.yaml │ │ │ ├── example_LambdaFunctionURLAuth/ │ │ │ │ ├── LambdaFunctionURLAuth_Fail.yml │ │ │ │ └── LambdaFunctionURLAuth_Pass.yml │ │ │ ├── example_LambdaInVPC/ │ │ │ │ ├── FAIL.yaml │ │ │ │ ├── PASS.yaml │ │ │ │ └── sam.yaml │ │ │ ├── example_LambdaServicePermission/ │ │ │ │ ├── LambdaServicePermission_Fail.yml │ │ │ │ └── LambdaServicePermission_Pass.yml │ │ │ ├── example_LaunchConfigurationEBSEncryption/ │ │ │ │ ├── LaunchConfigurationEBSEncryption-FAILED-no-enc.yml │ │ │ │ ├── LaunchConfigurationEBSEncryption-PASSED-ephermal.yml │ │ │ │ ├── LaunchConfigurationEBSEncryption-PASSED.yml │ │ │ │ ├── LaunchConfigurationEBSEncryption-UNKNOWN.yml │ │ │ │ └── LaunchConfigurationEBSEncryption-UNKNOWN_2.yml │ │ │ ├── example_MQBrokerAuditLogging/ │ │ │ │ ├── FAIL.yaml │ │ │ │ ├── PASS.yaml │ │ │ │ └── UNKNOWN.yaml │ │ │ ├── example_MSKClusterEncryption/ │ │ │ │ ├── MSKClusterEncryption-FAIL.yaml │ │ │ │ └── MSKClusterEncryption-PASS.yaml │ │ │ ├── example_MSKClusterLogging/ │ │ │ │ ├── MSKClusterNodesArePrivate-FAIL.yaml │ │ │ │ └── MSKClusterNodesArePrivate-PASS.yaml │ │ │ ├── example_MSKClusterNodesArePrivate/ │ │ │ │ ├── MSKClusterNodesArePrivate-FAIL.yaml │ │ │ │ └── MSKClusterNodesArePrivate-PASS.yaml │ │ │ ├── example_NeptuneClusterBackupRetention/ │ │ │ │ ├── NeptuneClusterBackupRetention-FAILED.yml │ │ │ │ └── NeptuneClusterBackupRetention-PASSED.yml │ │ │ ├── example_NeptuneClusterLogging/ │ │ │ │ ├── NeptuneClusterLogging-FAILED.yml │ │ │ │ └── NeptuneClusterLogging-PASSED.yml │ │ │ ├── example_NeptuneClusterStorageEncrypted/ │ │ │ │ ├── NeptuneClusterStorageEncrypted-FAILED.yml │ │ │ │ └── NeptuneClusterStorageEncrypted-PASSED.yml │ │ │ ├── example_OpensearchDomainAuditLogging/ │ │ │ │ ├── ElasticsearchDomainLogging-FAILED.yaml │ │ │ │ └── ElasticsearchDomainLogging-PASSED.yaml │ │ │ ├── example_ParameterStoreCredentials/ │ │ │ │ ├── mix.yaml │ │ │ │ └── no_crash.yaml │ │ │ ├── example_QLDBLedgerDeletionProtection/ │ │ │ │ ├── FAIL.yaml │ │ │ │ └── PASS.yaml │ │ │ ├── example_QLDBLedgerPermissionsMode/ │ │ │ │ ├── FAIL.yaml │ │ │ │ └── PASS.yaml │ │ │ ├── example_RDSClusterIAMAuthentication/ │ │ │ │ ├── RDSClusterIAMAuthentication-FAIL.yaml │ │ │ │ └── RDSClusterIAMAuthentication-PASSED.yaml │ │ │ ├── example_RDSEncryption/ │ │ │ │ ├── RDSEncryption-FAIL.yaml │ │ │ │ ├── RDSEncryption-PASSED.yaml │ │ │ │ └── RDSEncryption-UNKNOWN.yaml │ │ │ ├── example_RDSEnhancedMonitorEnabled/ │ │ │ │ ├── FAIL.yaml │ │ │ │ └── PASS.yaml │ │ │ ├── example_RDSIAMAuthentication/ │ │ │ │ ├── RDSIAMAuthentication-FAIL.yaml │ │ │ │ ├── RDSIAMAuthentication-PASSED.yaml │ │ │ │ └── RDSIAMAuthentication-UNKNOWN.yaml │ │ │ ├── example_RDSMultiAZEnabled/ │ │ │ │ ├── RDSMultiAZEnabled-FAILED-2.yaml │ │ │ │ ├── RDSMultiAZEnabled-FAILED.yaml │ │ │ │ ├── RDSMultiAZEnabled-PASSED.yaml │ │ │ │ └── RDSMultiAZEnabled-UNKNOWN.yaml │ │ │ ├── example_RDSPubliclyAccessible/ │ │ │ │ ├── RDSPubliclyAccessible-FAIL.yaml │ │ │ │ ├── RDSPubliclyAccessible-PASSED-2.yaml │ │ │ │ └── RDSPubliclyAccessible-PASSED.yaml │ │ │ ├── example_RedShiftSSL/ │ │ │ │ ├── RedShiftSSL-FAILED.yaml │ │ │ │ └── RedShiftSSL-PASSED.yaml │ │ │ ├── example_RedshiftClusterEncryption/ │ │ │ │ ├── RedshiftClusterEncryption-FAILED.yaml │ │ │ │ └── RedshiftClusterEncryption-PASSED.yaml │ │ │ ├── example_RedshiftClusterLogging/ │ │ │ │ ├── RedshiftClusterLogging-FAILED.yaml │ │ │ │ └── RedshiftClusterLogging-PASSED.yaml │ │ │ ├── example_RedshiftClusterPubliclyAccessible/ │ │ │ │ ├── RedshiftClusterPubliclyAccessible-FAILED.yaml │ │ │ │ └── RedshiftClusterPubliclyAccessible-PASSED.yaml │ │ │ ├── example_RedshiftInEc2ClassicMode/ │ │ │ │ ├── RedshiftInEc2ClassicMode-FAILED.yaml │ │ │ │ └── RedshiftInEc2ClassicMode-PASSED.yaml │ │ │ ├── example_SNSTopicEncryption/ │ │ │ │ ├── test_SNSTopicEncryption-FAILED.yml │ │ │ │ └── test_SNSTopicEncryption-PASSED.yml │ │ │ ├── example_SQSQueueEncryption/ │ │ │ │ ├── test_SQSQueueEncryption-FAILED.yml │ │ │ │ ├── test_SQSQueueEncryption-FAILED2.yml │ │ │ │ └── test_SQSQueueEncryption-PASSED.yml │ │ │ ├── example_SagemakerDataQualityJobDefinitionEncryption/ │ │ │ │ ├── SagemakerDataQualityJobDefinitionEncryption-FAILED.yaml │ │ │ │ └── SagemakerDataQualityJobDefinitionEncryption-PASSED.yaml │ │ │ ├── example_SagemakerDataQualityJobDefinitionTrafficEncryption/ │ │ │ │ ├── SagemakerDataQualityJobDefinitionTrafficEncryption-FAILED.yaml │ │ │ │ └── SagemakerDataQualityJobDefinitionTrafficEncryption-PASSED.yaml │ │ │ ├── example_SagemakerDataQualityJobDefinitionVolumeEncryption/ │ │ │ │ ├── SagemakerDataQualityJobDefinitionVolumeEncryption-FAILED.yaml │ │ │ │ └── SagemakerDataQualityJobDefinitionVolumeEncryption-PASSED.yaml │ │ │ ├── example_SagemakerModelWithNetworkIsolation/ │ │ │ │ ├── SagemakerModelWithNetworkIsolation-FAILED.yaml │ │ │ │ └── SagemakerModelWithNetworkIsolation-PASSED.yaml │ │ │ ├── example_SagemakerNotebookEncryptedWithCMK/ │ │ │ │ └── template.yaml │ │ │ ├── example_SagemakerNotebookInstanceAllowsIMDSv2/ │ │ │ │ ├── SagemakerNotebookInstanceAllowsIMDSv2-FAILED.yaml │ │ │ │ └── SagemakerNotebookInstanceAllowsIMDSv2-PASSED.yaml │ │ │ ├── example_SecretManagerSecretEncrypted/ │ │ │ │ ├── FAIL.yaml │ │ │ │ └── PASS.yaml │ │ │ ├── example_SecurityGroupRuleDescription/ │ │ │ │ ├── SecurityGroupRuleDescription-FAILED-2.yaml │ │ │ │ ├── SecurityGroupRuleDescription-FAILED-3.yaml │ │ │ │ ├── SecurityGroupRuleDescription-FAILED.yaml │ │ │ │ ├── SecurityGroupRuleDescription-PASSED-2.yaml │ │ │ │ ├── SecurityGroupRuleDescription-PASSED-3.yaml │ │ │ │ ├── SecurityGroupRuleDescription-PASSED-4.yaml │ │ │ │ └── SecurityGroupRuleDescription-PASSED.yaml │ │ │ ├── example_SecurityGroupUnrestrictedIngress22/ │ │ │ │ ├── SecurityGroupQuotes-FAILED.yaml │ │ │ │ ├── SecurityGroupRange-FAILED.yaml │ │ │ │ ├── SecurityGroupRangeInvalid-PASSED.yaml │ │ │ │ ├── SecurityGroupUnrestrictedIngress22-FAILED-2.yaml │ │ │ │ ├── SecurityGroupUnrestrictedIngress22-FAILED-3.yaml │ │ │ │ ├── SecurityGroupUnrestrictedIngress22-FAILED.yaml │ │ │ │ ├── SecurityGroupUnrestrictedIngress22-PASSED.yaml │ │ │ │ └── SecurityGroupUnrestrictedIngress22-UNKNOWN.yaml │ │ │ ├── example_SecurityGroupUnrestrictedIngress3389/ │ │ │ │ ├── SecurityGroupUnrestrictedIngress3389-FAILED-2.yaml │ │ │ │ ├── SecurityGroupUnrestrictedIngress3389-FAILED.yaml │ │ │ │ └── SecurityGroupUnrestrictedIngress3389-PASSED.yaml │ │ │ ├── example_SecurityGroupUnrestrictedIngress80/ │ │ │ │ ├── SecurityGroupUnrestrictedIngress80-FAILED-2.yaml │ │ │ │ ├── SecurityGroupUnrestrictedIngress80-FAILED-3.yaml │ │ │ │ ├── SecurityGroupUnrestrictedIngress80-FAILED.yaml │ │ │ │ ├── SecurityGroupUnrestrictedIngress80-PASSED.yaml │ │ │ │ └── SecurityGroupUnrestrictedIngress80-UNKNOWN.yaml │ │ │ ├── example_TimestreamDatabaseKMSKey/ │ │ │ │ ├── TimestreamDatabaseKMSKey-FAILED.yaml │ │ │ │ └── TimestreamDatabaseKMSKey-PASSED.yaml │ │ │ ├── example_TransferServerIsPublic/ │ │ │ │ ├── FAIL.yaml │ │ │ │ └── PASS.yaml │ │ │ ├── example_VPCEndpointAcceptanceConfigured/ │ │ │ │ ├── FAIL.yaml │ │ │ │ └── PASS.yaml │ │ │ ├── example_WAFACLCVE202144228/ │ │ │ │ ├── FAILED.yaml │ │ │ │ └── PASSED.yaml │ │ │ ├── example_WAFEnabled/ │ │ │ │ ├── WAFEnabled-FAILED.yaml │ │ │ │ └── WAFEnabled-PASSED.yaml │ │ │ ├── example_WorkspaceRootVolumeEncrypted/ │ │ │ │ ├── FAIL.yaml │ │ │ │ └── PASS.yaml │ │ │ ├── example_WorkspaceUserVolumeEncrypted/ │ │ │ │ ├── FAIL.yaml │ │ │ │ └── PASS.yaml │ │ │ ├── example_cloudfrontDistribution/ │ │ │ │ ├── CloudfrontDistributionEncryption-FAILED-2.yaml │ │ │ │ ├── CloudfrontDistributionEncryption-FAILED.yaml │ │ │ │ ├── CloudfrontDistributionEncryption-PASSED.yaml │ │ │ │ └── CloudfrontDistributionEncryption-UNKNOWN.yaml │ │ │ ├── test_ALBDropHttpHeaders.py │ │ │ ├── test_ALBListenerHTTPS.py │ │ │ ├── test_ALBListenerTLS12.py │ │ │ ├── test_APIGatewayAccessLogging.py │ │ │ ├── test_APIGatewayAuthorization.py │ │ │ ├── test_APIGatewayCacheEnable.py │ │ │ ├── test_APIGatewayV2AccessLogging.py │ │ │ ├── test_APIGatewayXray.py │ │ │ ├── test_AmazonMQBrokerPublicAccess.py │ │ │ ├── test_AppSyncFieldLevelLogs.py │ │ │ ├── test_AppSyncLogging.py │ │ │ ├── test_AthenaWorkgroupConfiguration.py │ │ │ ├── test_AuroraEncryption.py │ │ │ ├── test_BackupVaultEncrypted.py │ │ │ ├── test_BedrockAgentEncrypted.py │ │ │ ├── test_CloudFrontTLS12.py │ │ │ ├── test_CloudWatchLogGroupKMSKey.py │ │ │ ├── test_CloudWatchLogGroupRetention.py │ │ │ ├── test_CloudfrontDistributionEncryption.py │ │ │ ├── test_CloudfrontDistributionLogging.py │ │ │ ├── test_CloudsplainingIAMCredentialsExposure.py │ │ │ ├── test_CloudsplainingIAMGroup.py │ │ │ ├── test_CloudsplainingIAMRole.py │ │ │ ├── test_CloudsplainingIAMUser.py │ │ │ ├── test_CloudsplainingManagedPolicy.py │ │ │ ├── test_CloudtrailEncryption.py │ │ │ ├── test_CloudtrailLogValidation.py │ │ │ ├── test_CloudtrailMultiRegion.py │ │ │ ├── test_CodeBuildProjectEncryption.py │ │ │ ├── test_CognitoUnauthenticatedIdentities.py │ │ │ ├── test_DAXEncryption.py │ │ │ ├── test_DMSReplicationInstancePubliclyAccessible.py │ │ │ ├── test_DeprecatedLambdaRuntime.py │ │ │ ├── test_DocDBAuditLogs.py │ │ │ ├── test_DocDBBackupRetention.py │ │ │ ├── test_DocDBEncryption.py │ │ │ ├── test_DocDBLogging.py │ │ │ ├── test_DocDBTLS.py │ │ │ ├── test_DynamoDBTablesEncrypted.py │ │ │ ├── test_DynamodbGlobalTableRecovery.py │ │ │ ├── test_DynamodbRecovery.py │ │ │ ├── test_EBSEncryption.py │ │ │ ├── test_EC2Credentials.py │ │ │ ├── test_EC2PublicIP.py │ │ │ ├── test_ECRImageScanning.py │ │ │ ├── test_ECRImmutableTags.py │ │ │ ├── test_ECRPolicy.py │ │ │ ├── test_ECRRepositoryEncrypted.py │ │ │ ├── test_ECSClusterContainerInsights.py │ │ │ ├── test_ECSTaskDefinitionEFSVolumeEncryption.py │ │ │ ├── test_EFSEncryption.py │ │ │ ├── test_EKSNodeGroupRemoteAccess.py │ │ │ ├── test_EKSSecretEncryption.py │ │ │ ├── test_ELBAccessLogs.py │ │ │ ├── test_ELBv2AccessLogs.py │ │ │ ├── test_ElasticacheReplicationGroupEncryptionAtRest.py │ │ │ ├── test_ElasticacheReplicationGroupEncryptionAtTransit.py │ │ │ ├── test_ElasticacheReplicationGroupEncryptionAtTransitAuthToken.py │ │ │ ├── test_ElasticsearchDomainAuditLogging.py │ │ │ ├── test_ElasticsearchDomainEnforceHTTPS.py │ │ │ ├── test_ElasticsearchDomainLogging.py │ │ │ ├── test_ElastisearchEncryption.py │ │ │ ├── test_ElastisearchNodeToNodeEncryption.py │ │ │ ├── test_GlueDataCatalogEncryption.py │ │ │ ├── test_GlueSecurityConfiguration.py │ │ │ ├── test_GlueSecurityConfigurationEnabled.py │ │ │ ├── test_IAMAdminPolicyDocument.py │ │ │ ├── test_IAMPermissionsManagement.py │ │ │ ├── test_IAMPolicyAttachedToGroupOrRoles.py │ │ │ ├── test_IAMRoleAllowAssumeFromAccount.py │ │ │ ├── test_IAMRoleAllowsPublicAssume.py │ │ │ ├── test_IAMStarActionPolicyDocument.py │ │ │ ├── test_IAMWriteAccess.py │ │ │ ├── test_IMDSv1Disabled.py │ │ │ ├── test_KMSKeyWildCardPrincipal.py │ │ │ ├── test_KMSRotation.py │ │ │ ├── test_KinesisStreamEncryptionType.py │ │ │ ├── test_LambdaDLQConfigured.py │ │ │ ├── test_LambdaEnvironmentCredentials.py │ │ │ ├── test_LambdaEnvironmentEncryptionSettings.py │ │ │ ├── test_LambdaFunctionLevelConcurrentExecutionLimit.py │ │ │ ├── test_LambdaFunctionURLAuth.py │ │ │ ├── test_LambdaInVPC.py │ │ │ ├── test_LambdaServicePermission.py │ │ │ ├── test_LaunchConfigurationEBSEncryption.py │ │ │ ├── test_MQBrokerAuditLogging.py │ │ │ ├── test_MSKClusterEncryption.py │ │ │ ├── test_MSKClusterLogging.py │ │ │ ├── test_MSKClusterNodesArePrivate.py │ │ │ ├── test_NeptuneClusterBackupRetention.py │ │ │ ├── test_NeptuneClusterLogging.py │ │ │ ├── test_NeptuneClusterStorageEncrypted.py │ │ │ ├── test_ParameterStoreCredentials.py │ │ │ ├── test_QLDBLedgerDeletionProtection.py │ │ │ ├── test_QLDBLedgerPermissionsMode.py │ │ │ ├── test_RDSClusterIAMAuthentication.py │ │ │ ├── test_RDSEncryption.py │ │ │ ├── test_RDSEnhancedMonitorEnabled.py │ │ │ ├── test_RDSIAMAuthentication.py │ │ │ ├── test_RDSMultiAZEnabled.py │ │ │ ├── test_RDSPubliclyAccessible.py │ │ │ ├── test_RedShiftSSL.py │ │ │ ├── test_RedshiftClusterEncryption.py │ │ │ ├── test_RedshiftClusterLogging.py │ │ │ ├── test_RedshiftClusterPubliclyAccessible.py │ │ │ ├── test_RedshiftInEc2ClassicMode.py │ │ │ ├── test_S3AccessLogs.py │ │ │ ├── test_S3BlockPublicACLs.py │ │ │ ├── test_S3BlockPublicPolicy.py │ │ │ ├── test_S3Encryption.py │ │ │ ├── test_S3IgnorePublicACLs.py │ │ │ ├── test_S3PublicACLRead.py │ │ │ ├── test_S3PublicACLWrite.py │ │ │ ├── test_S3RestrictPublicBuckets.py │ │ │ ├── test_S3Versioning.py │ │ │ ├── test_SNSTopicEncryption.py │ │ │ ├── test_SQSQueueEncryption.py │ │ │ ├── test_SagemakerDataQualityJobDefinitionEncryption.py │ │ │ ├── test_SagemakerDataQualityJobDefinitionTrafficEncryption.py │ │ │ ├── test_SagemakerDataQualityJobDefinitionVolumeEncryption.py │ │ │ ├── test_SagemakerModelWithNetworkIsolation.py │ │ │ ├── test_SagemakerNotebookEncryptedWithCMK.py │ │ │ ├── test_SagemakerNotebookInstanceAllowsIMDSv2.py │ │ │ ├── test_SecretManagerSecretEncrypted.py │ │ │ ├── test_SecurityGroupRuleDescription.py │ │ │ ├── test_SecurityGroupUnrestrictedIngress22.py │ │ │ ├── test_SecurityGroupUnrestrictedIngress3389.py │ │ │ ├── test_SecurityGroupUnrestrictedIngress80.py │ │ │ ├── test_TimestreamDatabaseKMSKey.py │ │ │ ├── test_TransferServerIsPublic.py │ │ │ ├── test_VPCEndpointAcceptanceConfigured.py │ │ │ ├── test_WAFACLCVE202144228.py │ │ │ ├── test_WAFEnabled.py │ │ │ ├── test_WorkspaceRootVolumeEncrypted.py │ │ │ ├── test_WorkspaceUserVolumeEncrypted.py │ │ │ └── unused/ │ │ │ ├── EC2InstanceWithSecurityGroupSample-NoDesc.yaml │ │ │ ├── EC2InstanceWithSecurityGroupSample.yaml │ │ │ ├── EKSCluster.yaml │ │ │ ├── ElasticsearchDomain.yaml │ │ │ ├── ec2_instance_with_ebs_volume.yaml │ │ │ ├── ec2_sec_group_2.json │ │ │ ├── ec2_security_group.json │ │ │ └── ec2_with_waitcondition_template.json │ │ └── test_wildcard_entities.py │ ├── file_formats/ │ │ ├── json_with_space/ │ │ │ └── test_json_with_space.json │ │ ├── json_with_tabs/ │ │ │ └── test_json_with_tabs.json │ │ ├── test_json_with_space.py │ │ ├── test_json_with_tabs.py │ │ ├── test_yaml.py │ │ └── yaml/ │ │ └── test_yaml.yaml │ ├── graph/ │ │ ├── __init__.py │ │ ├── checks/ │ │ │ ├── __init__.py │ │ │ ├── resources/ │ │ │ │ ├── ACMWildcardDomainName/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── template.yaml │ │ │ │ ├── ALBRedirectHTTPtoHTTPS/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── template.yaml │ │ │ │ ├── AppSyncProtectedByWAF/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── template.yaml │ │ │ │ ├── CloudfrontOriginNotHTTPSOnly/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── template.yaml │ │ │ │ ├── LambdaFunction/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── template.yaml │ │ │ │ ├── LambdaOpenCorsPolicy/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── template.yaml │ │ │ │ ├── MSKClusterLogging/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── template.yaml │ │ │ │ ├── RDSEncryptionInTransit/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── template.yaml │ │ │ │ ├── SageMakerIAMPolicyOverlyPermissiveToAllTraffic/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── template.yaml │ │ │ │ └── SagemakerNotebookEncryption/ │ │ │ │ ├── expected.yaml │ │ │ │ └── template.yaml │ │ │ ├── test_checks/ │ │ │ │ ├── ALBRedirectHTTPtoHTTPS.yaml │ │ │ │ ├── LambdaFunction.yaml │ │ │ │ ├── MSKClusterLogging.yaml │ │ │ │ └── SagemakerNotebookEncryption.yaml │ │ │ ├── test_yaml_policies.py │ │ │ └── test_yaml_policies_with_runner.py │ │ ├── graph_builder/ │ │ │ ├── __init__.py │ │ │ ├── resources/ │ │ │ │ ├── conditioned_vertices/ │ │ │ │ │ ├── json/ │ │ │ │ │ │ └── test.json │ │ │ │ │ └── yaml/ │ │ │ │ │ └── test.yaml │ │ │ │ ├── edges_json/ │ │ │ │ │ └── test.json │ │ │ │ ├── edges_yaml/ │ │ │ │ │ └── test.yaml │ │ │ │ ├── encryption/ │ │ │ │ │ └── test.json │ │ │ │ ├── sam/ │ │ │ │ │ └── template.yaml │ │ │ │ ├── variable_rendering/ │ │ │ │ │ ├── render_findinmap/ │ │ │ │ │ │ ├── json/ │ │ │ │ │ │ │ └── test.json │ │ │ │ │ │ └── yaml/ │ │ │ │ │ │ └── test.yaml │ │ │ │ │ ├── render_getatt/ │ │ │ │ │ │ ├── json/ │ │ │ │ │ │ │ └── test.json │ │ │ │ │ │ └── yaml/ │ │ │ │ │ │ └── test.yaml │ │ │ │ │ ├── render_if/ │ │ │ │ │ │ ├── json/ │ │ │ │ │ │ │ └── test.json │ │ │ │ │ │ └── yaml/ │ │ │ │ │ │ └── test.yaml │ │ │ │ │ ├── render_join/ │ │ │ │ │ │ ├── json/ │ │ │ │ │ │ │ └── test.json │ │ │ │ │ │ └── yaml/ │ │ │ │ │ │ └── test.yaml │ │ │ │ │ ├── render_params/ │ │ │ │ │ │ └── yaml/ │ │ │ │ │ │ └── test.yaml │ │ │ │ │ ├── render_ref/ │ │ │ │ │ │ ├── json/ │ │ │ │ │ │ │ └── test.json │ │ │ │ │ │ └── yaml/ │ │ │ │ │ │ └── test.yaml │ │ │ │ │ ├── render_select/ │ │ │ │ │ │ ├── json/ │ │ │ │ │ │ │ └── test.json │ │ │ │ │ │ └── yaml/ │ │ │ │ │ │ └── test.yaml │ │ │ │ │ ├── render_sub/ │ │ │ │ │ │ ├── json/ │ │ │ │ │ │ │ └── test.json │ │ │ │ │ │ └── yaml/ │ │ │ │ │ │ └── test.yaml │ │ │ │ │ └── render_subsequent_evals/ │ │ │ │ │ ├── json/ │ │ │ │ │ │ └── test.json │ │ │ │ │ └── yaml/ │ │ │ │ │ └── test.yaml │ │ │ │ └── vertices/ │ │ │ │ ├── test.json │ │ │ │ └── test.yaml │ │ │ ├── test_blocks.py │ │ │ ├── test_local_graph.py │ │ │ └── test_render.py │ │ └── graph_runner/ │ │ ├── __init__.py │ │ ├── external_graph_checks/ │ │ │ ├── complex_jsonpath_if_condition.yaml │ │ │ ├── jsonpath_policy.yaml │ │ │ └── simple_graph_check.yaml │ │ ├── resources/ │ │ │ ├── LambdaFunction.json │ │ │ ├── MSKClusterLogging.yaml │ │ │ ├── SagemakerNotebookEncryption.yaml │ │ │ ├── complex_jsonpath_if_condition/ │ │ │ │ └── example.yaml │ │ │ ├── jsonpath_policy/ │ │ │ │ ├── fail_dict.json │ │ │ │ ├── fail_str.json │ │ │ │ └── pass_str.json │ │ │ └── template_with_parameters_names_identical_to_default_values/ │ │ │ └── example.yaml │ │ └── test_running_graph_checks.py │ ├── image_referencer/ │ │ ├── __init__.py │ │ ├── provider/ │ │ │ ├── __init__.py │ │ │ └── test_aws.py │ │ ├── resources/ │ │ │ └── aws/ │ │ │ ├── apprunner.yaml │ │ │ ├── batch.yaml │ │ │ ├── codebuild.yaml │ │ │ ├── ecs.yaml │ │ │ ├── lightsail.yaml │ │ │ ├── sagemaker_image_version.yaml │ │ │ └── sagemaker_model.yaml │ │ ├── test_manager.py │ │ └── test_runner_aws_resources.py │ ├── parser/ │ │ ├── __init__.py │ │ ├── cfn_bad_iam.yaml │ │ ├── cfn_bad_name.yaml │ │ ├── cfn_file.yaml │ │ ├── cfn_file_circular.yaml │ │ ├── cfn_file_resources.yaml │ │ ├── cfn_newline_at_end.yaml │ │ ├── cfn_nonewline_at_end.yaml │ │ ├── cfn_with_ref.yaml │ │ ├── cfn_with_ref_bad.yaml │ │ ├── fail.json │ │ ├── skip.yaml │ │ ├── success.json │ │ ├── success_triple_quotes_string.json │ │ ├── test_cfn_json.py │ │ ├── test_cfn_yaml.py │ │ └── tfplan.json │ ├── runner/ │ │ ├── __init__.py │ │ ├── resources/ │ │ │ ├── cfn_newline_at_end.yaml │ │ │ ├── double_statement_cloudsplaining.yml │ │ │ ├── fail.yaml │ │ │ ├── graph.yaml │ │ │ ├── invalid.json │ │ │ ├── invalid.yaml │ │ │ ├── invalid_properties.json │ │ │ ├── invalid_properties.yaml │ │ │ ├── no_properties.json │ │ │ ├── no_properties.yaml │ │ │ ├── skip_sub_dict.json │ │ │ ├── success.json │ │ │ ├── suppress_graph_check.yaml │ │ │ └── tags.yaml │ │ └── test_runner.py │ ├── test_graph_manager.py │ ├── test_scanner_registry.py │ └── utils/ │ ├── __init__.py │ ├── file_formats/ │ │ ├── test.json │ │ ├── test.yaml │ │ └── test2.yaml │ └── test_cfn_utils.py ├── common/ │ ├── __init__.py │ ├── bridgecrew/ │ │ ├── __init__.py │ │ ├── conftest.py │ │ ├── test_wrapper.py │ │ └── vulnerability_scanning/ │ │ ├── __init__.py │ │ ├── conftest.py │ │ ├── integrations/ │ │ │ ├── __init__.py │ │ │ ├── test_docker_image_scanning.py │ │ │ └── test_package_scanning.py │ │ └── test_package_scanner.py │ ├── check_assertion_utils.py │ ├── checks/ │ │ ├── __init__.py │ │ ├── extra_checks/ │ │ │ └── S3EnvironmentCheck.py │ │ ├── extra_yaml_checks/ │ │ │ └── test_app.yaml │ │ ├── test_base_check.py │ │ ├── test_base_check_registry.py │ │ └── test_graph_check_loading.py │ ├── checks_infra/ │ │ ├── examples/ │ │ │ ├── invalid_definition.yaml │ │ │ ├── missing_definition.yaml │ │ │ ├── missing_metadata.yaml │ │ │ ├── missing_metadata_category.yaml │ │ │ ├── valid_check.yaml │ │ │ ├── valid_check_tf.yaml │ │ │ └── valid_check_tf_without_severity.yaml │ │ ├── test-registry-data/ │ │ │ ├── invalid-yaml/ │ │ │ │ ├── data-not.yaml │ │ │ │ └── empty.yaml │ │ │ └── valid-yaml-invalid-check/ │ │ │ └── yaml.yaml │ │ ├── test_checks_parser.py │ │ ├── test_debug.py │ │ └── test_registry.py │ ├── conftest.py │ ├── goget/ │ │ ├── __init__.py │ │ ├── local_getter.py │ │ ├── test_goget_base.py │ │ └── test_goget_github.py │ ├── graph/ │ │ ├── __init__.py │ │ ├── checks/ │ │ │ ├── __init__.py │ │ │ ├── test_block.py │ │ │ ├── test_policy_packaging.py │ │ │ └── test_yaml_policies_base.py │ │ └── graph_builder/ │ │ └── test_graph_builder_utils.py │ ├── image_referencer/ │ │ └── test_utils.py │ ├── images/ │ │ ├── __init__.py │ │ └── test_base_image_referencer.py │ ├── integration_features/ │ │ ├── __init__.py │ │ ├── example_custom_policy_dir/ │ │ │ ├── cfn.yaml │ │ │ ├── main.tf │ │ │ └── msk.yaml │ │ ├── resources/ │ │ │ └── main.tf │ │ ├── test_custom_policies_integration.py │ │ ├── test_fixes_integration.py │ │ ├── test_integration_features.py │ │ ├── test_licensing_integration.py │ │ ├── test_policy_metadata_integration.py │ │ ├── test_repo_config_integration.py │ │ ├── test_suppressions_integration.py │ │ └── test_vulnerabilities_integration.py │ ├── output/ │ │ ├── __init__.py │ │ ├── conftest.py │ │ ├── fixtures/ │ │ │ ├── main.tf │ │ │ └── main_2.tf │ │ ├── test_baseline.py │ │ ├── test_bom_report.py │ │ ├── test_common.py │ │ ├── test_cyclonedx_report.py │ │ ├── test_get_exit_code.py │ │ ├── test_gitlab_sast_report.py │ │ ├── test_junit_report.py │ │ ├── test_record.py │ │ ├── test_report.py │ │ ├── test_sarif_report.py │ │ ├── test_secrets_get_exit_code.py │ │ └── test_spdx.py │ ├── resource_attr_to_omit_configs/ │ │ ├── combined.yml │ │ ├── duplicated_key.yml │ │ ├── first.yml │ │ ├── multiple_keys.yml │ │ ├── real_keys.yml │ │ └── universal_key.yml │ ├── runner_registry/ │ │ ├── __init__.py │ │ ├── example_bicep_with_empty_resources/ │ │ │ └── playground.bicep │ │ ├── example_empty_tf/ │ │ │ └── example_empty_file.tf │ │ ├── example_empty_yaml/ │ │ │ └── example_empty_file.yaml │ │ ├── example_multi_iac/ │ │ │ ├── cfn/ │ │ │ │ └── ExampleS3.yaml │ │ │ ├── k8/ │ │ │ │ ├── nginx-statefulset-FAILED.yaml │ │ │ │ └── scope-PASSED.yaml │ │ │ └── tf/ │ │ │ ├── example.tf │ │ │ └── terraform.tfvars │ │ ├── example_s3_tf/ │ │ │ └── main.tf │ │ ├── plan_module_skip_for_enrichment/ │ │ │ ├── mod_ref/ │ │ │ │ └── main.tf │ │ │ └── tf/ │ │ │ ├── main.tf │ │ │ └── tfplan.json │ │ ├── plan_with_external_tf_modules_for_enrichment/ │ │ │ ├── log_group_external/ │ │ │ │ ├── main.tf │ │ │ │ ├── outputs.tf │ │ │ │ ├── variables.tf │ │ │ │ └── versions.tf │ │ │ ├── main.tf │ │ │ ├── providers.tf │ │ │ └── tfplan.json │ │ ├── plan_with_for_each_for_enrichment/ │ │ │ ├── original/ │ │ │ │ └── main.tf │ │ │ └── tf_plan.json │ │ ├── plan_with_hcl_for_enrichment/ │ │ │ ├── dynamodb.tf │ │ │ ├── iam.tf │ │ │ ├── s3.tf │ │ │ └── tfplan.json │ │ ├── plan_with_tf_modules_for_enrichment/ │ │ │ ├── log_group/ │ │ │ │ └── main.tf │ │ │ ├── main.tf │ │ │ ├── providers.tf │ │ │ └── tfplan.json │ │ ├── test_runner_registry.py │ │ └── test_runner_registry_plan_enrichment.py │ ├── runners/ │ │ ├── filter_ignored_directories_by_values/ │ │ │ ├── dir1/ │ │ │ │ ├── dir2++/ │ │ │ │ │ └── file2.tf │ │ │ │ ├── dir4/ │ │ │ │ │ └── file3.tf │ │ │ │ └── file1.tf │ │ │ ├── dir11/ │ │ │ │ └── dir2++/ │ │ │ │ └── file4.tf │ │ │ └── dir33/ │ │ │ ├── dir2++/ │ │ │ │ └── file5.tf │ │ │ └── file2.tf │ │ ├── sample_dir/ │ │ │ ├── dir1/ │ │ │ │ ├── dir2/ │ │ │ │ │ └── file2.tf │ │ │ │ ├── dir4/ │ │ │ │ │ └── file3.tf │ │ │ │ └── file1.tf │ │ │ ├── dir11/ │ │ │ │ └── dir2/ │ │ │ │ └── file4.tf │ │ │ └── dir33/ │ │ │ ├── dir2/ │ │ │ │ └── file5.tf │ │ │ └── file2.tf │ │ └── test_base_runner.py │ ├── sca/ │ │ ├── __init__.py │ │ ├── reachability/ │ │ │ ├── __init__.py │ │ │ ├── example_repo/ │ │ │ │ └── tsconfig.json │ │ │ ├── nodejs/ │ │ │ │ ├── __init__.py │ │ │ │ ├── examples/ │ │ │ │ │ ├── babel/ │ │ │ │ │ │ ├── babel_config/ │ │ │ │ │ │ │ └── babel.config.js │ │ │ │ │ │ └── babelrc/ │ │ │ │ │ │ └── .babelrc │ │ │ │ │ ├── fake_file/ │ │ │ │ │ │ └── fake.babel.config.js │ │ │ │ │ ├── mix/ │ │ │ │ │ │ ├── package_json_with_alias/ │ │ │ │ │ │ │ └── package.json │ │ │ │ │ │ └── vite.config.js │ │ │ │ │ ├── package_json/ │ │ │ │ │ │ ├── package_json_with_alias/ │ │ │ │ │ │ │ └── package.json │ │ │ │ │ │ └── package_json_with_aliasify/ │ │ │ │ │ │ └── package.json │ │ │ │ │ ├── rollup/ │ │ │ │ │ │ └── rollup.config.js │ │ │ │ │ ├── snowpack/ │ │ │ │ │ │ └── snowpack.config.js │ │ │ │ │ ├── tsconfig/ │ │ │ │ │ │ └── tsconfig.json │ │ │ │ │ ├── vite/ │ │ │ │ │ │ └── vite.config.js │ │ │ │ │ └── webpack/ │ │ │ │ │ └── webpack.config.js │ │ │ │ └── test_javascript_alias_mapping_strategy.py │ │ │ └── test_alias_mapping_creator.py │ │ ├── test_commons.py │ │ └── test_output.py │ ├── secrets_omitter/ │ │ ├── __init__.py │ │ └── test_secrets_omitter.py │ ├── suppressions_resources/ │ │ └── suppressions.tf │ ├── test_platform_integration.py │ ├── test_resource_code_logger_filter.py │ ├── test_runner_filter.py │ └── utils/ │ ├── __init__.py │ ├── conftest.py │ ├── resources/ │ │ └── existing_file │ ├── test_contextmanagers.py │ ├── test_data_structures_utils.py │ ├── test_docs_generator.py │ ├── test_file_utils.py │ ├── test_http_utils.py │ ├── test_json_utils.py │ ├── test_prompt.py │ ├── test_secrets_utils.py │ ├── test_str_utils.py │ ├── test_tqdm_utils.py │ ├── test_type_forcers.py │ └── test_utils.py ├── config/ │ ├── TestCLIArgs.py │ ├── TestConfigFile.py │ ├── __init__.py │ └── example_TestConfigFile/ │ └── config.yml ├── conftest.py ├── dockerfile/ │ ├── __init__.py │ ├── checks/ │ │ ├── __init__.py │ │ ├── example_AddExists/ │ │ │ └── failure/ │ │ │ └── Dockerfile │ │ ├── example_AliasIsUnique/ │ │ │ ├── failure/ │ │ │ │ └── Dockerfile │ │ │ ├── success/ │ │ │ │ └── Dockerfile │ │ │ └── success_platform/ │ │ │ └── Dockerfile │ │ ├── example_ExposePort22/ │ │ │ ├── failure/ │ │ │ │ └── Dockerfile │ │ │ ├── failure_tcp/ │ │ │ │ └── Dockerfile │ │ │ └── success/ │ │ │ └── Dockerfile │ │ ├── example_HealthcheckExists/ │ │ │ ├── failure/ │ │ │ │ └── Dockerfile │ │ │ └── success/ │ │ │ └── Dockerfile │ │ ├── example_MaintainerExists/ │ │ │ └── failure/ │ │ │ └── Dockerfile │ │ ├── example_ReferenceLatestTag/ │ │ │ ├── failure_default_version_tag/ │ │ │ │ └── Dockerfile │ │ │ ├── failure_latest_version_tag/ │ │ │ │ └── Dockerfile │ │ │ ├── success/ │ │ │ │ └── Dockerfile │ │ │ ├── success_multi_stage/ │ │ │ │ └── Dockerfile │ │ │ ├── success_multi_stage_capital/ │ │ │ │ └── Dockerfile │ │ │ ├── success_multi_stage_platform/ │ │ │ │ └── Dockerfile │ │ │ ├── success_multi_stage_scratch/ │ │ │ │ └── Dockerfile │ │ │ └── success_scratch/ │ │ │ └── Dockerfile │ │ ├── example_RootUser/ │ │ │ ├── failure/ │ │ │ │ └── Dockerfile │ │ │ └── success/ │ │ │ └── Dockerfile │ │ ├── example_RunUsingAPT/ │ │ │ ├── failure/ │ │ │ │ └── Dockerfile │ │ │ ├── failure2/ │ │ │ │ └── Dockerfile │ │ │ ├── failure3/ │ │ │ │ └── Dockerfile │ │ │ ├── success/ │ │ │ │ └── Dockerfile │ │ │ ├── success2/ │ │ │ │ └── Dockerfile │ │ │ └── success3/ │ │ │ └── Dockerfile │ │ ├── example_UpdateNotAlone/ │ │ │ ├── failure/ │ │ │ │ ├── Dockerfile │ │ │ │ └── Dockerfile.simple │ │ │ └── success/ │ │ │ └── Dockerfile │ │ ├── example_UserExists/ │ │ │ ├── failure/ │ │ │ │ └── Dockerfile │ │ │ └── success/ │ │ │ └── Dockerfile │ │ ├── example_WorkdirIsAbsolute/ │ │ │ ├── failure/ │ │ │ │ ├── Dockerfile │ │ │ │ └── Dockerfile.simple │ │ │ └── success/ │ │ │ └── Dockerfile │ │ ├── test_AddExists.py │ │ ├── test_AliasIsUnique.py │ │ ├── test_ExposePort22.py │ │ ├── test_HealthcheckExists.py │ │ ├── test_MaintainerExists.py │ │ ├── test_ReferenceLatestTag.py │ │ ├── test_RootUser.py │ │ ├── test_RunUsingAPT.py │ │ ├── test_UpdateNotAlone.py │ │ ├── test_UserExists.py │ │ └── test_WorkdirIsAbsolute.py │ ├── graph_builder/ │ │ ├── __init__.py │ │ ├── checks/ │ │ │ ├── __init__.py │ │ │ ├── resources/ │ │ │ │ ├── EnvGitSslNoVerify/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ ├── fail/ │ │ │ │ │ │ ├── Dockerfile.basic │ │ │ │ │ │ ├── Dockerfile.run.basic │ │ │ │ │ │ ├── Dockerfile.run.quotes │ │ │ │ │ │ ├── Dockerfile.run.shell │ │ │ │ │ │ ├── Dockerfile.run.whitespace │ │ │ │ │ │ └── Dockerfile.wilderness │ │ │ │ │ └── pass/ │ │ │ │ │ └── Dockerfile │ │ │ │ ├── EnvNodeTlsRejectUnauthorized/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ ├── fail/ │ │ │ │ │ │ ├── Dockerfile.basic │ │ │ │ │ │ ├── Dockerfile.run.basic │ │ │ │ │ │ ├── Dockerfile.run.quotes │ │ │ │ │ │ ├── Dockerfile.run.shell │ │ │ │ │ │ └── Dockerfile.run.whitespace │ │ │ │ │ └── pass/ │ │ │ │ │ └── Dockerfile │ │ │ │ ├── EnvNpmConfigStrictSsl/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ ├── fail/ │ │ │ │ │ │ ├── Dockerfile.basic │ │ │ │ │ │ ├── Dockerfile.run.basic │ │ │ │ │ │ ├── Dockerfile.run.quotes │ │ │ │ │ │ ├── Dockerfile.run.shell │ │ │ │ │ │ └── Dockerfile.run.whitespace │ │ │ │ │ └── pass/ │ │ │ │ │ └── Dockerfile │ │ │ │ ├── EnvPipTrustedHost/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ ├── fail/ │ │ │ │ │ │ ├── Dockerfile.envvars │ │ │ │ │ │ └── Dockerfile.run │ │ │ │ │ └── pass/ │ │ │ │ │ └── Dockerfile │ │ │ │ ├── EnvPythonHttpsVerify/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ ├── fail/ │ │ │ │ │ │ ├── Dockerfile.basic │ │ │ │ │ │ ├── Dockerfile.run.basic │ │ │ │ │ │ ├── Dockerfile.run.quotes │ │ │ │ │ │ ├── Dockerfile.run.shell │ │ │ │ │ │ └── Dockerfile.run.whitespace │ │ │ │ │ └── pass/ │ │ │ │ │ └── Dockerfile │ │ │ │ ├── RunApkAllowUntrusted/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ ├── fail/ │ │ │ │ │ │ └── Dockerfile │ │ │ │ │ └── pass/ │ │ │ │ │ └── Dockerfile │ │ │ │ ├── RunAptGetAllowUnauthenticated/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ ├── fail/ │ │ │ │ │ │ └── Dockerfile │ │ │ │ │ └── pass/ │ │ │ │ │ └── Dockerfile │ │ │ │ ├── RunAptGetForceYes/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ ├── fail/ │ │ │ │ │ │ └── Dockerfile │ │ │ │ │ └── pass/ │ │ │ │ │ └── Dockerfile │ │ │ │ ├── RunChpasswd/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ ├── fail/ │ │ │ │ │ │ └── Dockerfile │ │ │ │ │ └── pass/ │ │ │ │ │ └── Dockerfile │ │ │ │ ├── RunNpmConfigSetStrictSsl/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ ├── fail/ │ │ │ │ │ │ ├── Dockerfile.npm │ │ │ │ │ │ ├── Dockerfile.wilderness │ │ │ │ │ │ └── Dockerfile.yarn │ │ │ │ │ └── pass/ │ │ │ │ │ └── Dockerfile │ │ │ │ ├── RunPipTrustedHost/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ ├── fail/ │ │ │ │ │ │ ├── Dockerfile.basic │ │ │ │ │ │ ├── Dockerfile.multiline │ │ │ │ │ │ └── Dockerfile.shell │ │ │ │ │ └── pass/ │ │ │ │ │ └── Dockerfile │ │ │ │ ├── RunRpmNoSignature/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ ├── fail/ │ │ │ │ │ │ └── Dockerfile │ │ │ │ │ └── pass/ │ │ │ │ │ └── Dockerfile │ │ │ │ ├── RunUnsafeCurl/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ ├── fail/ │ │ │ │ │ │ ├── Dockerfile.combo │ │ │ │ │ │ ├── Dockerfile.long │ │ │ │ │ │ ├── Dockerfile.multiline │ │ │ │ │ │ ├── Dockerfile.shell │ │ │ │ │ │ └── Dockerfile.short │ │ │ │ │ └── pass/ │ │ │ │ │ └── Dockerfile │ │ │ │ ├── RunUnsafeWget/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ ├── fail/ │ │ │ │ │ │ ├── Dockerfile.basic │ │ │ │ │ │ ├── Dockerfile.multiline │ │ │ │ │ │ └── Dockerfile.shell │ │ │ │ │ └── pass/ │ │ │ │ │ └── Dockerfile │ │ │ │ ├── RunUsingSudo/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ ├── fail/ │ │ │ │ │ │ └── Dockerfile │ │ │ │ │ ├── fail_multiline/ │ │ │ │ │ │ └── Dockerfile │ │ │ │ │ └── pass/ │ │ │ │ │ └── Dockerfile │ │ │ │ ├── RunYumConfigManagerSslVerify/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ ├── fail/ │ │ │ │ │ │ ├── Dockerfile.dnf-config-manager │ │ │ │ │ │ ├── Dockerfile.whitespace │ │ │ │ │ │ ├── Dockerfile.wilderness │ │ │ │ │ │ └── Dockerfile.yum-config-manager │ │ │ │ │ └── pass/ │ │ │ │ │ └── Dockerfile │ │ │ │ └── RunYumNoGpgCheck/ │ │ │ │ ├── expected.yaml │ │ │ │ ├── fail/ │ │ │ │ │ ├── Dockerfile.dnf │ │ │ │ │ ├── Dockerfile.tdnf │ │ │ │ │ ├── Dockerfile.wilderness │ │ │ │ │ └── Dockerfile.yum │ │ │ │ └── pass/ │ │ │ │ └── Dockerfile │ │ │ └── test_yaml_policies.py │ │ └── test_local_graph.py │ ├── image_referencer/ │ │ ├── __init__.py │ │ ├── resources/ │ │ │ ├── Dockerfile.multi_platform │ │ │ ├── Dockerfile.multi_stage │ │ │ └── Dockerfile.simple │ │ ├── test_manager.py │ │ ├── test_provider.py │ │ └── test_runner_dockerfile_resources.py │ ├── resources/ │ │ ├── __init__.py │ │ ├── empty_dockerfile/ │ │ │ └── Dockerfile │ │ ├── expose_port/ │ │ │ ├── fail/ │ │ │ │ └── Dockerfile │ │ │ ├── pass/ │ │ │ │ └── Dockerfile │ │ │ └── skip/ │ │ │ └── Dockerfile │ │ ├── multiline_command/ │ │ │ └── Dockerfile │ │ ├── name_variations/ │ │ │ ├── .Dockerfile │ │ │ ├── Dockerfile.prod │ │ │ └── prod.dockerfile │ │ └── wildcard_skip/ │ │ └── Dockerfile │ ├── test_graph_manager.py │ ├── test_runner.py │ └── test_utils.py ├── generic_json/ │ ├── __init__.py │ ├── checks/ │ │ ├── __init__.py │ │ ├── array/ │ │ │ ├── BarAndBazToggleIsTrue.py │ │ │ └── __init__.py │ │ ├── complex/ │ │ │ ├── ValueIsAtLeastTwo.py │ │ │ └── __init__.py │ │ ├── object/ │ │ │ ├── FooExists.py │ │ │ ├── PropHasValue.py │ │ │ └── __init__.py │ │ └── result_config/ │ │ ├── FullEvaluatedKey.py │ │ ├── NoEvaluatedKey.py │ │ ├── PartialEvaluatedKey.py │ │ └── __init__.py │ ├── resources/ │ │ ├── array/ │ │ │ ├── fail/ │ │ │ │ ├── allFalse.json │ │ │ │ └── oneFalse.json │ │ │ └── pass/ │ │ │ └── pass.json │ │ ├── complex/ │ │ │ ├── fail/ │ │ │ │ └── fail.json │ │ │ └── pass/ │ │ │ └── pass.json │ │ ├── object/ │ │ │ ├── fail/ │ │ │ │ ├── noFoo.json │ │ │ │ ├── noProp.json │ │ │ │ └── noValue.json │ │ │ └── pass/ │ │ │ └── pass.json │ │ └── result_config/ │ │ └── github_config.json │ └── test_runner.py ├── generic_yaml/ │ ├── __init__.py │ ├── checks/ │ │ ├── __init__.py │ │ ├── array/ │ │ │ ├── BarAndBazToggleIsTrue.py │ │ │ └── __init__.py │ │ ├── complex/ │ │ │ ├── ValueIsAtLeastTwo.py │ │ │ └── __init__.py │ │ └── object/ │ │ ├── FooExists.py │ │ ├── PropHasValue.py │ │ └── __init__.py │ ├── resources/ │ │ ├── array/ │ │ │ ├── fail/ │ │ │ │ ├── allFalse.yaml │ │ │ │ └── oneFalse.yaml │ │ │ └── pass/ │ │ │ └── pass.yaml │ │ ├── complex/ │ │ │ ├── fail/ │ │ │ │ └── fail.yaml │ │ │ └── pass/ │ │ │ └── pass.yaml │ │ └── object/ │ │ ├── fail/ │ │ │ ├── noFoo.yaml │ │ │ ├── noProp.yaml │ │ │ └── noValue.yaml │ │ ├── pass/ │ │ │ └── pass.yaml │ │ └── skip/ │ │ └── skip.yaml │ └── test_runner.py ├── github/ │ ├── __init__.py │ ├── checks/ │ │ ├── __init__.py │ │ ├── branch_security/ │ │ │ ├── GithubBranchDisallowDeletions/ │ │ │ │ ├── expected.yaml │ │ │ │ ├── fail.json │ │ │ │ └── pass.json │ │ │ ├── GithubBranchDismissStaleReviews/ │ │ │ │ ├── expected.yaml │ │ │ │ ├── fail.json │ │ │ │ └── pass.json │ │ │ ├── GithubBranchDismissalRestrictions/ │ │ │ │ ├── expected.yaml │ │ │ │ ├── fail.json │ │ │ │ └── pass.json │ │ │ ├── GithubBranchRequireCodeOwnerReviews/ │ │ │ │ ├── expected.yaml │ │ │ │ ├── fail.json │ │ │ │ └── pass.json │ │ │ ├── GithubBranchRequireConversationResolution/ │ │ │ │ ├── expected.yaml │ │ │ │ ├── fail.json │ │ │ │ └── pass.json │ │ │ ├── GithubBranchRequirePushRestrictions/ │ │ │ │ ├── expected.yaml │ │ │ │ ├── fail.json │ │ │ │ └── pass.json │ │ │ ├── GithubBranchRequireStatusChecks/ │ │ │ │ ├── expected.yaml │ │ │ │ ├── fail.json │ │ │ │ └── pass.json │ │ │ ├── GithubDisallowInactiveBranch60Days/ │ │ │ │ ├── expected.yaml │ │ │ │ ├── fail.json │ │ │ │ └── pass.json │ │ │ ├── GithubRequire2Approvals/ │ │ │ │ ├── expected.yaml │ │ │ │ ├── fail1.json │ │ │ │ ├── fail2.json │ │ │ │ ├── fail3.json │ │ │ │ └── pass.json │ │ │ └── GithubRequireUpdatedBranch/ │ │ │ ├── expected.yaml │ │ │ ├── fail1.json │ │ │ ├── fail2.json │ │ │ └── pass.json │ │ ├── contribution_access/ │ │ │ ├── GithubMinimumAdminsInOrganization/ │ │ │ │ ├── expected.yaml │ │ │ │ ├── fail_org_admins.json │ │ │ │ └── pass_org_admins.json │ │ │ ├── GithubRequireOrganizationIsVerified/ │ │ │ │ ├── expected.yaml │ │ │ │ ├── fail1_org_metadata.json │ │ │ │ ├── fail2_org_metadata.json │ │ │ │ └── pass_org_metadata.json │ │ │ └── GithubRequireStrictBasePermissionsRepository/ │ │ │ ├── expected.yaml │ │ │ ├── fail_org_metadata.json │ │ │ └── pass_org_metadata.json │ │ ├── repo_management/ │ │ │ ├── GithubInternalRepositoryCreationIsLimited/ │ │ │ │ ├── expected.yaml │ │ │ │ ├── fail1.json │ │ │ │ ├── fail1_org_metadata.json │ │ │ │ ├── fail2.json │ │ │ │ ├── fail2_org_metadata.json │ │ │ │ ├── pass.json │ │ │ │ └── pass_org_metadata.json │ │ │ ├── GithubIssueDeletionIsLimited/ │ │ │ │ ├── expected.yaml │ │ │ │ └── pass.json │ │ │ ├── GithubPrivateRepositoryCreationIsLimited/ │ │ │ │ ├── expected.yaml │ │ │ │ ├── fail1.json │ │ │ │ ├── fail1_org_metadata.json │ │ │ │ ├── fail2.json │ │ │ │ ├── fail2_org_metadata.json │ │ │ │ ├── pass.json │ │ │ │ └── pass_org_metadata.json │ │ │ ├── GithubPublicRepositoryCreationIsLimited/ │ │ │ │ ├── expected.yaml │ │ │ │ ├── fail1.json │ │ │ │ ├── fail1_org_metadata.json │ │ │ │ ├── fail2.json │ │ │ │ ├── fail2_org_metadata.json │ │ │ │ ├── pass.json │ │ │ │ └── pass_org_metadata.json │ │ │ └── GithubRepositoryDeletionIsLimited/ │ │ │ ├── expected.yaml │ │ │ └── pass.json │ │ └── test_python_policies.py │ ├── resources/ │ │ └── github_conf/ │ │ ├── collaborators/ │ │ │ └── repository_collaborators.json │ │ ├── empty_collabs/ │ │ │ └── repository_collaborators.json │ │ ├── fail/ │ │ │ └── org_security.json │ │ ├── pass/ │ │ │ └── org_security.json │ │ ├── repo/ │ │ │ └── branch_protection.json │ │ ├── repo_no_rules/ │ │ │ └── branch_protection_rules.json │ │ └── webhooks/ │ │ ├── org_webhooks.json │ │ ├── org_webhooks_fail.json │ │ └── repository_webhooks.json │ ├── test_dal.py │ └── test_runner.py ├── github_actions/ │ ├── __init__.py │ ├── checks/ │ │ ├── __init__.py │ │ ├── extra_yaml_checks/ │ │ │ ├── JobsStepsConnection.yaml │ │ │ ├── OnPush.yaml │ │ │ └── SimpleAttribute.yaml │ │ ├── graph_checks/ │ │ │ ├── __init__.py │ │ │ ├── resources/ │ │ │ │ ├── ReadOnlyTopLevelPermissions/ │ │ │ │ │ ├── .github/ │ │ │ │ │ │ └── workflows/ │ │ │ │ │ │ ├── default.yaml │ │ │ │ │ │ ├── fail.yaml │ │ │ │ │ │ ├── pass.yaml │ │ │ │ │ │ └── scope.yaml │ │ │ │ │ └── expected.yaml │ │ │ │ └── __init__.py │ │ │ └── test_yaml_policies.py │ │ └── test_extra_checks.py │ ├── conftest.py │ ├── gha/ │ │ └── .github/ │ │ └── workflows/ │ │ ├── bad_workflows_dispatch.yaml │ │ ├── failed.yaml │ │ ├── multi_file.yaml │ │ ├── multiple_on_descendants.yaml │ │ └── on_list.yaml │ ├── graph_builder/ │ │ ├── __init__.py │ │ └── test_local_graph.py │ ├── resources/ │ │ ├── .github/ │ │ │ └── workflows/ │ │ │ ├── bad_format.yaml │ │ │ ├── docker-slsa.yaml │ │ │ ├── empty_jobs.yaml │ │ │ ├── include_none_steps.yml │ │ │ ├── list_workflow_dispatch.yml │ │ │ ├── nested_jobs.yaml │ │ │ ├── netcatreverseshell.yaml │ │ │ ├── off_value.yaml │ │ │ ├── shell_injection.yaml │ │ │ ├── slsa-gen.yaml │ │ │ ├── supply_chain.yaml │ │ │ ├── suspectcurl.yaml │ │ │ ├── unsecure_command.yaml │ │ │ ├── workflow_dispatch.yaml │ │ │ ├── workflow_with_image.yml │ │ │ └── workflow_with_string_container.yml │ │ └── graph.pkl │ ├── test_graph_manager.py │ ├── test_runner.py │ ├── test_runner_auxiliary.py │ ├── test_runner_resource_names.py │ ├── test_runner_with_graph.py │ └── test_schema_validation.py ├── gitlab/ │ ├── __init__.py │ ├── resources/ │ │ └── gitlab_conf/ │ │ ├── fail/ │ │ │ ├── groups.json │ │ │ └── merge_request_approval_conf.json │ │ └── pass/ │ │ ├── groups.json │ │ └── merge_request_approval_conf.json │ └── test_runner.py ├── gitlab_ci/ │ ├── __init__.py │ ├── conftest.py │ ├── resources/ │ │ ├── alternative/ │ │ │ └── .gitlab-ci.yml │ │ ├── curl/ │ │ │ └── .gitlab-ci.yml │ │ ├── images/ │ │ │ └── .gitlab-ci.yml │ │ ├── resource_images/ │ │ │ └── .gitlab-ci.yml │ │ ├── rules/ │ │ │ └── .gitlab-ci.yml │ │ └── two/ │ │ └── .gitlab-ci.yml │ ├── test_resource_names.py │ └── test_runner.py ├── graph_utils/ │ ├── __init__.py │ └── utils.py ├── helm/ │ ├── __init__.py │ ├── runner/ │ │ └── resources/ │ │ ├── image_referencer/ │ │ │ ├── Chart.yaml │ │ │ ├── templates/ │ │ │ │ ├── _helpers.tpl │ │ │ │ ├── deployment.yaml │ │ │ │ ├── service.yaml │ │ │ │ └── serviceaccount.yaml │ │ │ └── values.yaml │ │ ├── infrastructure/ │ │ │ └── helm-tiller/ │ │ │ └── pwnchart/ │ │ │ ├── Chart.yaml │ │ │ ├── templates/ │ │ │ │ ├── _helpers.tpl │ │ │ │ ├── clusterrole.yaml │ │ │ │ └── clusterrolebinding.yaml │ │ │ └── values.yaml │ │ └── schema-registry/ │ │ ├── Chart.yaml │ │ ├── charts/ │ │ │ ├── common-2.0.0.tgz │ │ │ └── kafka-18.1.2.tgz │ │ └── values.yaml │ ├── test_runner.py │ ├── test_runner_image_referencer.py │ └── utils.py ├── kubernetes/ │ ├── __init__.py │ ├── checks/ │ │ ├── __init__.py │ │ ├── example_AllowPrivilegeEscalation/ │ │ │ ├── ds-nginx-ingress-FAILED.yaml │ │ │ ├── nginx-app-FAILED.json │ │ │ ├── oc-deploymentConfig-FAILED.yml │ │ │ ├── oc-deploymentConfig-PASSED.yml │ │ │ ├── pod-runas1000-PASSED.yaml │ │ │ ├── pod-runas1000-malformed-PASSED.yaml │ │ │ ├── pod-to-node-FAILED.yaml │ │ │ └── rootDeployment-PASSED.yaml │ │ ├── example_AllowedCapabilities/ │ │ │ ├── cassandra-FAILED.yaml │ │ │ ├── cronjob-PASSED.yaml │ │ │ ├── cronjob-UNKOWN.yaml │ │ │ └── nginx-deployment-PASSED.yaml │ │ ├── example_AllowedCapabilitiesSysAdmin/ │ │ │ ├── cronjob-PASSED.yaml │ │ │ ├── pod-FAILED.yaml │ │ │ └── pod-FAILED2.yaml │ │ ├── example_ApiServerAdmissionControlAlwaysAdmit/ │ │ │ ├── ApiServerAdmissionControlAlwaysAdmit-FAILED.yaml │ │ │ └── ApiServerAdmissionControlAlwaysAdmit-PASSED.yaml │ │ ├── example_ApiServerAdmissionControlEventRateLimit/ │ │ │ ├── ApiServerAdmissionControlEventRateLimit-FAILED.yaml │ │ │ └── ApiServerAdmissionControlEventRateLimit-PASSED.yaml │ │ ├── example_ApiServerAlwaysPullImagesPlugin/ │ │ │ ├── ApiServerAlwaysPullImagesPlugin-FAILED.yaml │ │ │ └── ApiServerAlwaysPullImagesPlugin-PASSED.yaml │ │ ├── example_ApiServerAnonymousAuth/ │ │ │ ├── ApiServer-AnonymousAuth-False-PASSED.yaml │ │ │ ├── ApiServer-AnonymousAuth-Missing-FAILED.yaml │ │ │ └── ApiServer-AnonymousAuth-True-FAILED.yaml │ │ ├── example_ApiServerAuditLog/ │ │ │ ├── ApiServer-FAILED.yaml │ │ │ └── ApiServer-PASSED.yaml │ │ ├── example_ApiServerAuditLogMaxAge/ │ │ │ ├── ApiServer-FAILED.yaml │ │ │ └── ApiServer-PASSED.yaml │ │ ├── example_ApiServerAuditLogMaxBackup/ │ │ │ ├── ApiServer-FAILED-2.yaml │ │ │ ├── ApiServer-FAILED.yaml │ │ │ └── ApiServer-PASSED.yaml │ │ ├── example_ApiServerAuditLogMaxSize/ │ │ │ ├── ApiServer-FAILED-2.yaml │ │ │ ├── ApiServer-FAILED.yaml │ │ │ └── ApiServer-PASSED.yaml │ │ ├── example_ApiServerAuthorizationModeNode/ │ │ │ ├── ApiServer-FAILED-2.yaml │ │ │ ├── ApiServer-FAILED.yaml │ │ │ └── ApiServer-PASSED.yaml │ │ ├── example_ApiServerAuthorizationModeNotAlwaysAllow/ │ │ │ ├── ApiServer-FAILED-2.yaml │ │ │ ├── ApiServer-FAILED.yaml │ │ │ ├── ApiServer-PASSED-2.yaml │ │ │ └── ApiServer-PASSED.yaml │ │ ├── example_ApiServerAuthorizationModeRBAC/ │ │ │ ├── ApiServer-FAILED-2.yaml │ │ │ ├── ApiServer-FAILED.yaml │ │ │ ├── ApiServer-PASSED-2.yaml │ │ │ └── ApiServer-PASSED.yaml │ │ ├── example_ApiServerBasicAuthFile/ │ │ │ ├── ApiServerBasicAuthFile-FAILED.yaml │ │ │ └── ApiServerBasicAuthFile-PASSED.yaml │ │ ├── example_ApiServerEncryptionProviders/ │ │ │ ├── ApiServerEncryptionProviders-FAILED.yaml │ │ │ └── ApiServerEncryptionProviders-PASSED.yaml │ │ ├── example_ApiServerEtcdCaFile/ │ │ │ ├── example_ApiServerEtcdCaFile-FAILED.yaml │ │ │ └── example_ApiServerEtcdCaFile-PASSED.yaml │ │ ├── example_ApiServerEtcdCertAndKey/ │ │ │ ├── ApiServer-FAILED-2.yaml │ │ │ ├── ApiServer-FAILED.yaml │ │ │ └── ApiServer-PASSED.yaml │ │ ├── example_ApiServerInsecureBindAddress/ │ │ │ ├── api-server-insecure-bind-address-FAILED.yaml │ │ │ └── api-server-secure-bind-address-PASSED.yaml │ │ ├── example_ApiServerInsecurePort/ │ │ │ ├── api-server-insecure-port-FAILED.yaml │ │ │ └── api-server-insecure-port-PASSED.yaml │ │ ├── example_ApiServerKubeletClientCertAndKey/ │ │ │ ├── ApiServer-FAILED-2.yaml │ │ │ ├── ApiServer-FAILED.yaml │ │ │ └── ApiServer-PASSED.yaml │ │ ├── example_ApiServerKubeletHttps/ │ │ │ ├── ApiServer-FAILED.yaml │ │ │ ├── ApiServer-PASSED-2.yaml │ │ │ └── ApiServer-PASSED.yaml │ │ ├── example_ApiServerNamespaceLifecyclePlugin/ │ │ │ ├── ApiServerNamespaceLifecyclePlugin-FAILED.yaml │ │ │ └── ApiServerNamespaceLifecyclePlugin-PASSED.yaml │ │ ├── example_ApiServerNodeRestrictionPlugin/ │ │ │ ├── ApiServerNodeRestrictionPlugin-FAILED.yaml │ │ │ └── ApiServerNodeRestrictionPlugin-PASSED.yaml │ │ ├── example_ApiServerPodSecurityPolicyPlugin/ │ │ │ ├── ApiServerPodSecurityPolicyPlugin-FAILED.yaml │ │ │ └── ApiServerPodSecurityPolicyPlugin-PASSED.yaml │ │ ├── example_ApiServerProfiling/ │ │ │ ├── ApiServer-FAILED-2.yaml │ │ │ ├── ApiServer-FAILED.yaml │ │ │ └── ApiServer-PASSED.yaml │ │ ├── example_ApiServerRequestTimeout/ │ │ │ ├── api-server-request-timeout-FAILED.yaml │ │ │ └── api-server-request-timeout-PASSED.yaml │ │ ├── example_ApiServerSecurePort/ │ │ │ ├── api-server-secure-port-FAILED.yaml │ │ │ ├── api-server-secure-port-PASSED.yaml │ │ │ └── api-server-secure-port-PASSED_2.yaml │ │ ├── example_ApiServerSecurityContextDenyPlugin/ │ │ │ ├── ApiServerSecurityContextDenyPlugin-FAILED.yaml │ │ │ └── ApiServerSecurityContextDenyPlugin-PASSED.yaml │ │ ├── example_ApiServerServiceAccountKeyFile/ │ │ │ ├── ApiServerServiceAccountKeyFile-FAILED.yaml │ │ │ └── ApiServerServiceAccountKeyFile-PASSED.yaml │ │ ├── example_ApiServerServiceAccountLookup/ │ │ │ ├── ApiServer-FAILED-2.yaml │ │ │ ├── ApiServer-FAILED.yaml │ │ │ └── ApiServer-PASSED.yaml │ │ ├── example_ApiServerServiceAccountPlugin/ │ │ │ ├── ApiServerServiceAccountPlugin-FAILED.yaml │ │ │ └── ApiServerServiceAccountPlugin-PASSED.yaml │ │ ├── example_ApiServerStrongCryptographicCiphers/ │ │ │ ├── ApiServerStrongCryptographicCiphers-FAILED.yaml │ │ │ └── ApiServerStrongCryptographicCiphers-PASSED.yaml │ │ ├── example_ApiServerTlsCertAndKey/ │ │ │ ├── ApiServer-FAILED-2.yaml │ │ │ ├── ApiServer-FAILED-3.yaml │ │ │ ├── ApiServer-FAILED.yaml │ │ │ └── ApiServer-PASSED.yaml │ │ ├── example_ApiServerTokenAuthFile/ │ │ │ ├── ApiServerTokenAuthFile-FAILED.yaml │ │ │ └── ApiServerTokenAuthFile-PASSED.yaml │ │ ├── example_ApiServerkubeletCertificateAuthority/ │ │ │ ├── ApiServerkubeletCertificateAuthority-FAILED.yaml │ │ │ └── ApiServerkubeletCertificateAuthority-PASSED.yaml │ │ ├── example_ControllerManagerBindAddress/ │ │ │ ├── ControllerManagerBindAddress-FAILED-2.yaml │ │ │ ├── ControllerManagerBindAddress-FAILED.yaml │ │ │ └── ControllerManagerBindAddress-PASSED.yaml │ │ ├── example_DangerousGitSync/ │ │ │ ├── Deployment-FAILED.yaml │ │ │ ├── Deployment-PASSED.yaml │ │ │ └── Deployment2-FAILED.yaml │ │ ├── example_DefaultNamespace/ │ │ │ ├── default-k8s-service-and-sa-PASSED2.yaml │ │ │ ├── nginx-statefulset-FAILED.yaml │ │ │ └── scope-PASSED.yaml │ │ ├── example_DefaultServiceAccount/ │ │ │ ├── DefaultServiceAccount-FAILED.yaml │ │ │ ├── DefaultServiceAccount-FAILED2.yaml │ │ │ └── DefaultServiceAccount-PASSED.yaml │ │ ├── example_DefaultServiceAccountBinding/ │ │ │ ├── DefaultServiceAccountBinding-FAILED.yaml │ │ │ └── DefaultServiceAccountBinding-PASSED.yaml │ │ ├── example_DockerSocketVolume/ │ │ │ ├── CronJob-pass.yaml │ │ │ ├── cloudwatch-agent-1PASSED-1FAILED.yaml │ │ │ ├── scope-2PASSED-1FAILED.yaml │ │ │ └── scope-UNKNOWN.yaml │ │ ├── example_DropCapabilities/ │ │ │ ├── pod-drop-NET_RAW-capabilities-FAILED-MISSING.yaml │ │ │ ├── pod-drop-NET_RAW-capabilities-PASSED.yaml │ │ │ ├── pod-drop-all-capabilities-PASSED.yaml │ │ │ ├── pod-drop-all-capabilities-PASSED2.yaml │ │ │ └── pod-drop-none-FAILED.yaml │ │ ├── example_EtcdAutoTls/ │ │ │ ├── Etcd-FAILED.yaml │ │ │ ├── Etcd-PASSED-2.yaml │ │ │ └── Etcd-PASSED.yaml │ │ ├── example_EtcdCertAndKey/ │ │ │ ├── Etcd-FAILED-2.yaml │ │ │ ├── Etcd-FAILED.yaml │ │ │ └── Etcd-PASSED.yaml │ │ ├── example_EtcdClientCertAuth/ │ │ │ ├── Etcd-FAILED-2.yaml │ │ │ ├── Etcd-FAILED.yaml │ │ │ └── Etcd-PASSED.yaml │ │ ├── example_EtcdPeerFiles/ │ │ │ ├── EtcdPeerFiles-FAILED.yaml │ │ │ └── EtcdPeerFiles-PASSED.yaml │ │ ├── example_HostPort/ │ │ │ ├── DS-node-exporter-FAILED.yaml │ │ │ ├── nginx-app-FAILED.yaml │ │ │ └── nginx-app-PASSED.yaml │ │ ├── example_ImageDigest/ │ │ │ ├── imageWithTagAndDigest-PASSED.yaml │ │ │ ├── job-ImageTagLatest-FAILED.yaml │ │ │ ├── kafka-PASSED.yaml │ │ │ ├── kafka-withrepo-PASSED.yaml │ │ │ └── storm-zookeeper-FAILED.json │ │ ├── example_ImagePullPolicy/ │ │ │ ├── cassandra-PullPolicyAlways-PASSED.yaml │ │ │ ├── imageWithDigest-DefaultPullPolicy-PASSED.yaml │ │ │ ├── imageWithDigest-PullPolicyAlways-PASSED.yaml │ │ │ ├── job-ImageTagLatest-PASSED.yaml │ │ │ ├── kafka-PullPolicyAlways-PASSED.yaml │ │ │ ├── replctrl-PullIfNotPresent-FAILED.yaml │ │ │ ├── storm-nimbus-ImageUntagged-PASSED.json │ │ │ └── wordpress-ImageTagged-DefaultPullPolicy-FAILED.yaml │ │ ├── example_ImageTagFixed/ │ │ │ ├── imageWithDigest-PASSED.yaml │ │ │ ├── imageWithTagAndDigest-PASSED.yaml │ │ │ ├── job-ImageTagLatest-FAILED.yaml │ │ │ ├── kafka-ImageWithRepo-PASSED.yaml │ │ │ ├── kafka-PASSED.yaml │ │ │ └── storm-zookeeper-FAILED.json │ │ ├── example_KubeControllerManagerBlockProfiles/ │ │ │ ├── ApiServer-FAILED.yaml │ │ │ ├── ApiServer-FAILED_2.yaml │ │ │ └── ApiServer-PASSED.yaml │ │ ├── example_KubeControllerManagerRootCAFile/ │ │ │ ├── ApiServer-FAILED.yaml │ │ │ ├── ApiServer-PASSED.yaml │ │ │ └── ApiServer-PASSED_2.yaml │ │ ├── example_KubeControllerManagerServiceAccountCredentials/ │ │ │ ├── ApiServer-FAILED-2.yaml │ │ │ ├── ApiServer-FAILED.yaml │ │ │ └── ApiServer-PASSED.yaml │ │ ├── example_KubeControllerManagerServiceAccountPrivateKeyFile/ │ │ │ ├── ApiServer-FAILED.yaml │ │ │ ├── ApiServer-PASSED-2.yaml │ │ │ └── ApiServer-PASSED.yaml │ │ ├── example_KubeControllerManagerTerminatedPods/ │ │ │ ├── ApiServer-FAILED-2.yaml │ │ │ ├── ApiServer-FAILED.yaml │ │ │ ├── ApiServer-PASSED-2.yaml │ │ │ └── ApiServer-PASSED.yaml │ │ ├── example_KubeletAnonymousAuth/ │ │ │ ├── KubeletAnonymousAuth-FAILED.yaml │ │ │ └── KubeletAnonymousAuth-PASSED.yaml │ │ ├── example_KubeletAuthorizationModeNotAlwaysAllow/ │ │ │ ├── KubeletAuthorizationModeNotAlwaysAllow-FAILED.yaml │ │ │ └── KubeletAuthorizationModeNotAlwaysAllow-PASSED.yaml │ │ ├── example_KubeletClientCa/ │ │ │ ├── KubeletClientCa-FAILED.yaml │ │ │ └── KubeletClientCa-PASSED.yaml │ │ ├── example_KubeletCryptographicCiphers/ │ │ │ ├── KubeletCryptographicCiphers-FAILED.yaml │ │ │ └── KubeletCryptographicCiphers-PASSED.yaml │ │ ├── example_KubeletHostnameOverride/ │ │ │ ├── KubeletHostnameOverride-FAILED.yaml │ │ │ └── KubeletHostnameOverride-PASSED.yaml │ │ ├── example_KubeletKeyFilesSetAppropriate/ │ │ │ ├── KubeletKeyFilesSetAppropriate-FAILED.yaml │ │ │ └── KubeletKeyFilesSetAppropriate-PASSED.yaml │ │ ├── example_KubeletMakeIptablesUtilChains/ │ │ │ ├── KubeletMakeIptablesUtilChains-FAILED.yaml │ │ │ └── KubeletMakeIptablesUtilChains-PASSED.yaml │ │ ├── example_KubeletProtectKernelDefaults/ │ │ │ ├── KubeletProtectKernelDefaults-FAILED.yaml │ │ │ └── KubeletProtectKernelDefaults-PASSED.yaml │ │ ├── example_KubeletReadOnlyPort/ │ │ │ ├── KubeletReadOnlyPort-FAILED.yaml │ │ │ └── KubeletReadOnlyPort-PASSED.yaml │ │ ├── example_KubeletStreamingConnectionIdleTimeout/ │ │ │ ├── KubeletStreamingConnectionIdleTimeout-FAILED.yaml │ │ │ └── KubeletStreamingConnectionIdleTimeout-PASSED.yaml │ │ ├── example_KubernetesDashboard/ │ │ │ ├── kube-dashboard-FAILED.yaml │ │ │ ├── kube-dashboard-no-image-FAILED.yaml │ │ │ ├── kube-dashboard-no-image-PASSED.yaml │ │ │ ├── kubernetes-dashboard-deployment.yaml │ │ │ ├── nginx-deployment-FAILED.yaml │ │ │ └── nginx-deployment-PASSED.yaml │ │ ├── example_KubletEventCapture/ │ │ │ ├── KubletEventCapture-FAILED.yaml │ │ │ └── KubletEventCapture-PASSED.yaml │ │ ├── example_KubletRotateCertificates/ │ │ │ ├── KubletRotateCertificates-FAILED.yaml │ │ │ └── KubletRotateCertificates-PASSED.yaml │ │ ├── example_LivenessReadiness/ │ │ │ ├── pod-liveness-readiness-2pods.yaml │ │ │ └── pod-liveness-readiness-PASSED.yaml │ │ ├── example_NginxIngressCVE202125742/ │ │ │ ├── annotation1-FAILED.yaml │ │ │ ├── annotation2-nollua-PASSESONEFAILSONE.yaml │ │ │ ├── annotation3-alias.yaml │ │ │ └── noannotations-PASSED.yaml │ │ ├── example_NoDefaultNamespace/ │ │ │ └── Dev-PASSED.yaml │ │ ├── example_PSP/ │ │ │ ├── psp-most-insecure-FAILED.yaml │ │ │ ├── psp-no-annotations-FAILED.yml │ │ │ └── psp-restricted-PASSED.yaml │ │ ├── example_PeerClientCertAuthTrue/ │ │ │ ├── PeerClientCertAuthTrue-FAILED.yaml │ │ │ ├── PeerClientCertAuthTrue-FAILED2.yaml │ │ │ ├── PeerClientCertAuthTrue-PASSED.yaml │ │ │ └── PeerClientCertAuthTrue-UNKNOWN.yaml │ │ ├── example_PrivilegedContainers/ │ │ │ ├── nginx-deployment-PASSED.yaml │ │ │ ├── privilegedDaemonSet-FAILED.yaml │ │ │ └── privilegedPod-FAILED.yaml │ │ ├── example_RbacApproveCertificateSigningRequests/ │ │ │ ├── clusterrole-failed-1.yaml │ │ │ ├── clusterrole-failed-2.yaml │ │ │ ├── clusterrole-failed-3.yaml │ │ │ ├── clusterrole-passed-1.yaml │ │ │ └── clusterrole-passed-2.yaml │ │ ├── example_RbacBindRoleBindings/ │ │ │ ├── clusterrole-failed-1.yaml │ │ │ ├── clusterrole-passed-1.yaml │ │ │ ├── role-failed-2.yaml │ │ │ └── role-passed-2.yaml │ │ ├── example_RbacControlWebhooks/ │ │ │ ├── clusterrole-failed-1.yaml │ │ │ ├── clusterrole-failed-2.yaml │ │ │ ├── clusterrole-passed-1.yaml │ │ │ └── clusterrole-passed-2.yaml │ │ ├── example_RbacEscalateRoles/ │ │ │ ├── clusterrole-failed-1.yaml │ │ │ ├── clusterrole-passed-1.yaml │ │ │ ├── role-failed-2.yaml │ │ │ └── role-passed-2.yaml │ │ ├── example_ReadOnlyFilesystem/ │ │ │ ├── frontend-replicaset-FAILED.yaml │ │ │ ├── pod-readonly-PASSED.yaml │ │ │ └── pod-readonly-false-FAILED.yaml │ │ ├── example_Requests_Limits/ │ │ │ ├── cronjob-request-limit-1FAILED.yaml │ │ │ ├── pod-requests-limits-1FAILED1PASSED.yaml │ │ │ ├── pod-requests-limits-2PASSED.yaml │ │ │ ├── pod-requests-limits-UNKNOWN.yaml │ │ │ └── pod-requests-limits-UNKNOWN2.yaml │ │ ├── example_RootContainers/ │ │ │ ├── rootContainersFAILED-malformed-spec.yaml │ │ │ ├── rootContainersFAILED.yaml │ │ │ ├── rootContainersFAILED_2.yaml │ │ │ ├── rootContainersPASSED.yaml │ │ │ └── rootContainersUNKNOWN.yaml │ │ ├── example_RootContainersHighUID/ │ │ │ ├── rootContainersHighUIDFAILED.yaml │ │ │ ├── rootContainersHighUIDPASSED.yaml │ │ │ └── rootContainersHighUIDUNKNOWN.yaml │ │ ├── example_RootContainersPSP/ │ │ │ ├── MustRunAsNonRoot-PASSED.yaml │ │ │ ├── RunAsUserRange-FAILED.yaml │ │ │ ├── RunAsUserRange-PASSED.yaml │ │ │ └── psp-most-insecure-FAILED.yaml │ │ ├── example_RotateKubeletServerCertificate/ │ │ │ ├── KubeControllerManagerRotateKubeletServerCertificate-FAILED.yaml │ │ │ ├── KubeControllerManagerRotateKubeletServerCertificate-PASSED.yaml │ │ │ ├── KubletRotateKubeletServerCertificate-FAILED.yaml │ │ │ └── KubletRotateKubeletServerCertificate-PASSED.yaml │ │ ├── example_SchedulerBindAddress/ │ │ │ ├── SchedulerBindAddress-FAILED-2.yaml │ │ │ ├── SchedulerBindAddress-FAILED.yaml │ │ │ └── SchedulerBindAddress-PASSED.yaml │ │ ├── example_SchedulerProfiling/ │ │ │ ├── SchedulerProfiling-FAILED.yaml │ │ │ └── SchedulerProfiling-PASSED.yaml │ │ ├── example_Seccomp/ │ │ │ ├── cronjob-seccomp-FAILED.yaml │ │ │ ├── cronjob-seccomp-PASSED.yaml │ │ │ ├── cronjob-seccomp-PASSED2.yaml │ │ │ ├── cronjob-seccomp-PASSED3.yaml │ │ │ ├── cronjob-seccomp-securityContext-PASSED.yaml │ │ │ ├── pod-seccomp-FAILED.yaml │ │ │ ├── pod-seccomp-FAILED2.yaml │ │ │ ├── pod-seccomp-FAILED3.yaml │ │ │ ├── pod-seccomp-PASSED.yaml │ │ │ ├── pod-seccomp-PASSED2.yaml │ │ │ ├── pod-seccomp-PASSED3.yaml │ │ │ ├── pod-seccomp-PASSED4.yaml │ │ │ ├── pod-seccomp-PASSED5.yaml │ │ │ ├── pod-seccomp-PASSED6.yaml │ │ │ ├── pod-seccomp-PASSED7.yaml │ │ │ └── template.yaml │ │ ├── example_Secrets/ │ │ │ ├── nginx-NoSecret-PASSED.yaml │ │ │ ├── pod-secretEnvironment-FAILED.yaml │ │ │ ├── pod-secretVolume-PASSED.yaml │ │ │ └── pod-secretsEnvironment-UNKNOWN.yaml │ │ ├── example_SecurityContexts/ │ │ │ ├── frontend-replicaset-both-FAILED.yaml │ │ │ ├── pod-container-FAILED_malformed_spec.yaml │ │ │ ├── pod-container-both-PASSED.yaml │ │ │ ├── podFAILED-containerPASSED.yaml │ │ │ └── podPassed-containerFailed.yaml │ │ ├── example_ServiceAccountTokens/ │ │ │ ├── ServiceAccountTokensFAILED.yaml │ │ │ ├── ServiceAccountTokensPASSED.yaml │ │ │ └── ServiceAccountTokensUNKNOWN.yaml │ │ ├── example_ShareHost/ │ │ │ ├── cronjob-hostresources-FAILED.yaml │ │ │ ├── jenkinsDeployment-PASSED.yaml │ │ │ ├── memcachedStatefulSet-PASSED.yaml │ │ │ ├── privilegedDaemonSet-FAILED.yaml │ │ │ ├── privilegedPod-FAILED.yaml │ │ │ └── privilegedPod-PASS.yaml │ │ ├── example_Suppressed/ │ │ │ └── suppress-checks-PASSED.yaml │ │ ├── example_Tiller/ │ │ │ ├── nginx-deployment-PASSED.yaml │ │ │ └── tiller-deployment.json │ │ ├── example_TillerDeploymentListener/ │ │ │ ├── nginx-deployment-UNKNOWN.yaml │ │ │ ├── tiller-deployment_FAILED.json │ │ │ ├── tiller-deployment_FAILED_WRONGARG.yaml │ │ │ ├── tiller-deployment_PASSED_LOCALHOST.json │ │ │ └── tiller-deployment_PASSED_LOOPBACK.json │ │ ├── example_TillerService/ │ │ │ └── tiller-services.yaml │ │ ├── example_WildcardEntities/ │ │ │ └── nginx-app.yaml │ │ ├── example_WildcardRoles/ │ │ │ ├── role-failed-1.yaml │ │ │ ├── role-failed-2.yaml │ │ │ ├── role-failed-3.yaml │ │ │ ├── role-passed-1.yaml │ │ │ └── role-passed-2.yaml │ │ ├── test_AllowPrivilegeEscalationPSP.py │ │ ├── test_AllowProvilegeEscalation.py │ │ ├── test_AllowedCapabilities.py │ │ ├── test_AllowedCapabilitiesPSP.py │ │ ├── test_AllowedCapabilitiesSysAdmin.py │ │ ├── test_ApiServerAdmissionControlAlwaysAdmit.py │ │ ├── test_ApiServerAdmissionControlEventRateLimit.py │ │ ├── test_ApiServerAlwaysPullImagesPlugin.py │ │ ├── test_ApiServerAnonymousAuth.py │ │ ├── test_ApiServerAuditLog.py │ │ ├── test_ApiServerAuditLogMaxAge.py │ │ ├── test_ApiServerAuditLogMaxBackup.py │ │ ├── test_ApiServerAuditLogMaxSize.py │ │ ├── test_ApiServerAuthorizationModeNode.py │ │ ├── test_ApiServerAuthorizationModeNotAlwaysAllow.py │ │ ├── test_ApiServerAuthorizationModeRBAC.py │ │ ├── test_ApiServerBasicAuthFile.py │ │ ├── test_ApiServerEncryptionProviders.py │ │ ├── test_ApiServerEtcdCaFile.py │ │ ├── test_ApiServerEtcdCertAndKey.py │ │ ├── test_ApiServerInsecureBindAddress.py │ │ ├── test_ApiServerInsecurePort.py │ │ ├── test_ApiServerKubeletClientCertAndKey.py │ │ ├── test_ApiServerKubeletHttps.py │ │ ├── test_ApiServerNamespaceLifecyclePlugin.py │ │ ├── test_ApiServerNodeRestrictionPlugin.py │ │ ├── test_ApiServerPodSecurityPolicyPlugin.py │ │ ├── test_ApiServerProfiling.py │ │ ├── test_ApiServerRequestTimeout.py │ │ ├── test_ApiServerSecurePort.py │ │ ├── test_ApiServerSecurityContextDenyPlugin.py │ │ ├── test_ApiServerServiceAccountKeyFile.py │ │ ├── test_ApiServerServiceAccountLookup.py │ │ ├── test_ApiServerServiceAccountPlugin.py │ │ ├── test_ApiServerStrongCryptographicCiphers.py │ │ ├── test_ApiServerTlsCertAndKey.py │ │ ├── test_ApiServerTokenAuthFile.py │ │ ├── test_ApiServerkubeletCertificateAuthority.py │ │ ├── test_CPULimits.py │ │ ├── test_CPURequests.py │ │ ├── test_ContainerSecurityContext.py │ │ ├── test_ControllerManagerBindAddress.py │ │ ├── test_DangerousGitSync.py │ │ ├── test_DefaultNamespace.py │ │ ├── test_DefaultServiceAccount.py │ │ ├── test_DefaultServiceAccountBinding.py │ │ ├── test_DockerSocketVolume.py │ │ ├── test_DropCapabilities.py │ │ ├── test_DropCapabilitiesPSP.py │ │ ├── test_EtcdAutoTls.py │ │ ├── test_EtcdCertAndKey.py │ │ ├── test_EtcdClientCertAuth.py │ │ ├── test_EtcdPeerFiles.py │ │ ├── test_HostPort.py │ │ ├── test_ImageDigest.py │ │ ├── test_ImagePullPolicyAlways.py │ │ ├── test_ImageTagFixed.py │ │ ├── test_KubeControllerManagerBlockProfiles.py │ │ ├── test_KubeControllerManagerRootCAFile.py │ │ ├── test_KubeControllerManagerServiceAccountCredentials.py │ │ ├── test_KubeControllerManagerServiceAccountPrivateKeyFile.py │ │ ├── test_KubeControllerManagerTerminatedPods.py │ │ ├── test_KubeletAnonymousAuth.py │ │ ├── test_KubeletAuthorizationModeNotAlwaysAllow.py │ │ ├── test_KubeletClientCa.py │ │ ├── test_KubeletCryptographicCiphers.py │ │ ├── test_KubeletHostnameOverride.py │ │ ├── test_KubeletKeyFilesSetAppropriate.py │ │ ├── test_KubeletMakeIptablesUtilChains.py │ │ ├── test_KubeletProtectKernelDefaults.py │ │ ├── test_KubeletReadOnlyPort.py │ │ ├── test_KubeletStreamingConnectionIdleTimeout.py │ │ ├── test_KubernetesDashboard.py │ │ ├── test_KubletEventCapture.py │ │ ├── test_KubletRotateCertificates.py │ │ ├── test_LivenessProbe.py │ │ ├── test_MemoryLimits.py │ │ ├── test_MemoryRequests.py │ │ ├── test_MinimizeCapabilities.py │ │ ├── test_MinimizeCapabilitiesPSP.py │ │ ├── test_NginxIngressCVE202125742Alias.py │ │ ├── test_NginxIngressCVE202125742AllSnippets.py │ │ ├── test_NginxIngressCVE202125742Lua.py │ │ ├── test_PeerClientCertAuthTrue.py │ │ ├── test_PodSecurityContext.py │ │ ├── test_PrivilegedContainers.py │ │ ├── test_PrivilegedContainersPSP.py │ │ ├── test_RbacApproveCertificateSigningRequests.py │ │ ├── test_RbacBindRoleBindings.py │ │ ├── test_RbacControlWebhooks.py │ │ ├── test_RbacEscalateRoles.py │ │ ├── test_ReadOnlyFilesystem.py │ │ ├── test_ReadinessProbe.py │ │ ├── test_RootContainers.py │ │ ├── test_RootContainersHighUID.py │ │ ├── test_RootContainersPSP.py │ │ ├── test_RotateKubeletServerCertificate.py │ │ ├── test_SchedulerBindAddressy.py │ │ ├── test_SchedulerProfiling.py │ │ ├── test_Seccomp.py │ │ ├── test_SeccompPSP.py │ │ ├── test_Secrets.py │ │ ├── test_ServiceAccountTokens.py │ │ ├── test_ShareHostIPC.py │ │ ├── test_ShareHostIPCPSP.py │ │ ├── test_ShareHostPID.py │ │ ├── test_ShareHostPIDPSP.py │ │ ├── test_SharedHostNetworkNamespace.py │ │ ├── test_SharedHostNetworkNamespacePSP.py │ │ ├── test_SuppressedAnnotations.py │ │ ├── test_Tiller.py │ │ ├── test_TillerDeploymentListener.py │ │ ├── test_TillerService.py │ │ ├── test_WildcardRoles.py │ │ ├── test_k8s_check_utils.py │ │ └── test_wildcard_entities.py │ ├── graph/ │ │ ├── __init__.py │ │ ├── base_graph_tests.py │ │ ├── checks/ │ │ │ ├── __init__.py │ │ │ ├── resources/ │ │ │ │ ├── AllowPrivilegeEscalation/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── template.yaml │ │ │ │ ├── AllowedCapabilities/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── template.yaml │ │ │ │ ├── ImpersonatePermissions/ │ │ │ │ │ ├── Failing/ │ │ │ │ │ │ ├── 1/ │ │ │ │ │ │ │ ├── clusterrole1.yaml │ │ │ │ │ │ │ └── clusterrolebinding1.yaml │ │ │ │ │ │ ├── 2/ │ │ │ │ │ │ │ ├── clusterrole2.yaml │ │ │ │ │ │ │ └── clusterrolebinding2.yaml │ │ │ │ │ │ └── 3/ │ │ │ │ │ │ ├── Role.yaml │ │ │ │ │ │ └── RoleBinding.yaml │ │ │ │ │ ├── Passing/ │ │ │ │ │ │ └── 1/ │ │ │ │ │ │ ├── clusterrole1.yaml │ │ │ │ │ │ └── clusterrolebinding1.yaml │ │ │ │ │ └── expected.yaml │ │ │ │ ├── IsNotEmpty/ │ │ │ │ │ ├── Failing/ │ │ │ │ │ │ └── deployment.yaml │ │ │ │ │ ├── Passing/ │ │ │ │ │ │ └── deployment.yaml │ │ │ │ │ └── expected.yaml │ │ │ │ ├── ModifyServicesStatus/ │ │ │ │ │ ├── Failing/ │ │ │ │ │ │ ├── 1/ │ │ │ │ │ │ │ ├── FailingClusterRole.yaml │ │ │ │ │ │ │ └── FailingClusterRoleBinding.yaml │ │ │ │ │ │ └── 2/ │ │ │ │ │ │ ├── FailingClusterRole.yaml │ │ │ │ │ │ └── FailingClusterRoleBinding.yaml │ │ │ │ │ ├── Passing/ │ │ │ │ │ │ ├── 1/ │ │ │ │ │ │ │ ├── PassingClusterRole.yaml │ │ │ │ │ │ │ └── PassingClusterRoleBinding.yaml │ │ │ │ │ │ └── 2/ │ │ │ │ │ │ ├── PassingClusterRole.yaml │ │ │ │ │ │ └── PassingClusterRoleBinding.yaml │ │ │ │ │ └── expected.yaml │ │ │ │ ├── NoCreateNodesProxyOrPodsExec/ │ │ │ │ │ ├── Failing/ │ │ │ │ │ │ ├── 1/ │ │ │ │ │ │ │ ├── clusterrole1.yaml │ │ │ │ │ │ │ └── clusterrolebinding1.yaml │ │ │ │ │ │ ├── 2/ │ │ │ │ │ │ │ ├── clusterrole2.yaml │ │ │ │ │ │ │ └── clusterrolebinding2.yaml │ │ │ │ │ │ ├── 3/ │ │ │ │ │ │ │ ├── role3.yaml │ │ │ │ │ │ │ └── rolebinding3.yaml │ │ │ │ │ │ └── 4/ │ │ │ │ │ │ ├── clusterrole4.yaml │ │ │ │ │ │ ├── clusterrolebinding4.yaml │ │ │ │ │ │ └── pod4.yaml │ │ │ │ │ ├── Passing/ │ │ │ │ │ │ ├── 1/ │ │ │ │ │ │ │ ├── clusterrole1.yaml │ │ │ │ │ │ │ └── clusterrolebinding1.yaml │ │ │ │ │ │ └── 2/ │ │ │ │ │ │ ├── clusterrole2.yaml │ │ │ │ │ │ └── clusterrolebinding2.yaml │ │ │ │ │ └── expected.yaml │ │ │ │ ├── NoDefaultNamespace/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── template.yaml │ │ │ │ ├── PodIsPubliclyAccessibleExample/ │ │ │ │ │ ├── Failing/ │ │ │ │ │ │ ├── Pod.yaml │ │ │ │ │ │ └── Service.yaml │ │ │ │ │ ├── Passing/ │ │ │ │ │ │ ├── Pod.yaml │ │ │ │ │ │ └── Service.yaml │ │ │ │ │ └── expected.yaml │ │ │ │ ├── ReadAllSecrets/ │ │ │ │ │ ├── Failing/ │ │ │ │ │ │ ├── ClusterRole.yaml │ │ │ │ │ │ └── ClusterRoleBinding.yaml │ │ │ │ │ ├── Passing/ │ │ │ │ │ │ ├── ClusterRole.yaml │ │ │ │ │ │ ├── ClusterRoleBinding.yaml │ │ │ │ │ │ └── RoleResourceName.yaml │ │ │ │ │ └── expected.yaml │ │ │ │ ├── RequireAllPodsToHaveNetworkPolicy/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── template.yaml │ │ │ │ └── RoleBindingPE/ │ │ │ │ ├── Failing1/ │ │ │ │ │ ├── FailingClusterRole.yaml │ │ │ │ │ └── FailingClusterRoleBinding.yaml │ │ │ │ ├── Failing2/ │ │ │ │ │ ├── FailingClusterRole.yaml │ │ │ │ │ └── FailingClusterRoleBinding.yaml │ │ │ │ ├── Failing3/ │ │ │ │ │ ├── FailingRole.yaml │ │ │ │ │ └── FailingRoleBinding.yaml │ │ │ │ ├── Passing1/ │ │ │ │ │ ├── PassingClusterRole.yaml │ │ │ │ │ └── PassingClusterRoleBinding.yaml │ │ │ │ ├── Passing2/ │ │ │ │ │ ├── PassingClusterRole.yaml │ │ │ │ │ └── PassingClusterRoleBinding.yaml │ │ │ │ ├── Passing3/ │ │ │ │ │ └── PassingClusterRoleBinding.yaml │ │ │ │ └── expected.yaml │ │ │ ├── test_checks/ │ │ │ │ ├── AllowPrivilegeEscalation.yaml │ │ │ │ ├── AllowedCapabilities.yaml │ │ │ │ ├── DefaultNamespace.yaml │ │ │ │ ├── IsNotEmpty.yaml │ │ │ │ ├── NoDefaultNamespace.yaml │ │ │ │ └── PodIsPubliclyAccessibleExample.yaml │ │ │ └── test_yaml_policies.py │ │ ├── resources/ │ │ │ ├── Keyword/ │ │ │ │ ├── clusterrolebinding.yaml │ │ │ │ ├── network-policy-attached.yaml │ │ │ │ └── pod_service_account.yaml │ │ │ ├── LabelSelector/ │ │ │ │ ├── label_selector_match.yaml │ │ │ │ ├── label_selector_multiple_resources.yaml │ │ │ │ └── label_selector_non_match.yaml │ │ │ ├── custom_resource.yaml │ │ │ ├── definitions/ │ │ │ │ ├── .hidden/ │ │ │ │ │ └── graph_check.yaml │ │ │ │ └── custom_resource.yaml │ │ │ ├── faulty_resources/ │ │ │ │ ├── deployment_missing_metadata.yaml │ │ │ │ ├── incompatible_clusterrolebinding.yaml │ │ │ │ └── incompatible_selector.yaml │ │ │ ├── graph_check.yaml │ │ │ ├── nested_resource.yaml │ │ │ └── statefulstate_nested_resource.yaml │ │ ├── test_graph_manager.py │ │ ├── test_kubernetes_utils.py │ │ ├── test_local_graph.py │ │ └── test_running_graph_checks.py │ ├── image_referencer/ │ │ ├── __init__.py │ │ ├── provider/ │ │ │ ├── __init__.py │ │ │ └── test_k8s.py │ │ ├── resources/ │ │ │ └── k8s/ │ │ │ ├── cron_job.yaml │ │ │ ├── daemon_set.yaml │ │ │ ├── deployment.yaml │ │ │ ├── deployment_config.yaml │ │ │ ├── job.yaml │ │ │ ├── pod.yaml │ │ │ ├── pod_template.yaml │ │ │ ├── replica_set.yaml │ │ │ ├── replication_controller.yaml │ │ │ └── stateful_set.yaml │ │ ├── test_manager.py │ │ └── test_runner_k8s_resources.py │ ├── parser/ │ │ ├── __init__.py │ │ ├── examples/ │ │ │ ├── json/ │ │ │ │ ├── mongo-pod.json │ │ │ │ └── normal.json │ │ │ └── yaml/ │ │ │ ├── busybox.yaml │ │ │ ├── busybox_utf8_bom.yaml │ │ │ ├── helm.yaml │ │ │ ├── helm2.yaml │ │ │ ├── normal.yaml │ │ │ └── not_helm_configmap.yaml │ │ ├── test_k8_json.py │ │ ├── test_k8_valicator.py │ │ └── test_k8_yaml.py │ ├── runner/ │ │ ├── __init__.py │ │ ├── list_annotation/ │ │ │ └── example.yaml │ │ ├── resources/ │ │ │ ├── example.yaml │ │ │ ├── example_multiple.yaml │ │ │ └── graph.yaml │ │ └── test_runner.py │ ├── test_base_registry.py │ ├── test_kubernetes_utils.py │ └── test_scanner_registry.py ├── kustomize/ │ ├── __init__.py │ ├── graph/ │ │ ├── __init__.py │ │ ├── resources/ │ │ │ ├── empty_resources/ │ │ │ │ ├── graph_check.yaml │ │ │ │ └── kustomization.yaml │ │ │ └── example_checks/ │ │ │ ├── graph_check.yaml │ │ │ └── kustomization.yaml │ │ └── test_running_graph_checks.py │ ├── runner/ │ │ ├── __init__.py │ │ └── resources/ │ │ ├── example/ │ │ │ ├── base/ │ │ │ │ ├── deployment.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── service.yaml │ │ │ ├── no_type/ │ │ │ │ └── kustomization.yaml │ │ │ └── overlays/ │ │ │ ├── dev/ │ │ │ │ ├── custom-env.yaml │ │ │ │ ├── database-secret.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── replica-and-rollout-strategy.yaml │ │ │ ├── empty/ │ │ │ │ └── kustomization.yaml │ │ │ ├── prod/ │ │ │ │ ├── custom-env.yaml │ │ │ │ ├── database-secret.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── replica-and-rollout-strategy.yaml │ │ │ ├── prod-2/ │ │ │ │ ├── custom-env.yaml │ │ │ │ ├── database-secret.yaml │ │ │ │ ├── kustomization.yml │ │ │ │ └── replica-and-rollout-strategy.yaml │ │ │ ├── prod-3/ │ │ │ │ ├── custom-env.yaml │ │ │ │ ├── database-secret.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── replica-and-rollout-strategy.yaml │ │ │ ├── prod-4/ │ │ │ │ ├── custom-env.yaml │ │ │ │ ├── database-secret.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── replica-and-rollout-strategy.yaml │ │ │ └── test/ │ │ │ ├── custom-env.yaml │ │ │ ├── database-secret.yaml │ │ │ ├── kustomization.yaml │ │ │ └── replica-and-rollout-strategy.yaml │ │ └── image_referencer/ │ │ ├── base/ │ │ │ ├── deployment.yaml │ │ │ ├── kustomization.yaml │ │ │ └── service.yaml │ │ └── overlays/ │ │ └── prod/ │ │ └── kustomization.yaml │ ├── test_runner.py │ ├── test_runner_image_referencer.py │ ├── test_utils.py │ └── utils.py ├── logger_streams/ │ ├── __init__.py │ └── test_logger_streams.py ├── openapi/ │ ├── __init__.py │ ├── checks/ │ │ ├── __init__.py │ │ ├── resource/ │ │ │ ├── __init__.py │ │ │ ├── generic/ │ │ │ │ ├── __init__.py │ │ │ │ ├── example_ClearTextAPIKey/ │ │ │ │ │ ├── fail.json │ │ │ │ │ ├── fail.yaml │ │ │ │ │ ├── fail2.json │ │ │ │ │ ├── fail2.yaml │ │ │ │ │ ├── fail3.json │ │ │ │ │ ├── fail3.yaml │ │ │ │ │ ├── fail4.json │ │ │ │ │ ├── fail4.yaml │ │ │ │ │ ├── fail5.json │ │ │ │ │ ├── fail5.yaml │ │ │ │ │ ├── pass.json │ │ │ │ │ ├── pass.yaml │ │ │ │ │ ├── pass2.json │ │ │ │ │ ├── pass2.yaml │ │ │ │ │ ├── pass3.json │ │ │ │ │ ├── pass3.yaml │ │ │ │ │ ├── pass4.json │ │ │ │ │ ├── pass4.yaml │ │ │ │ │ ├── pass5.json │ │ │ │ │ ├── pass5.yaml │ │ │ │ │ ├── pass6.json │ │ │ │ │ └── pass6.yaml │ │ │ │ ├── example_GlobalSecurityFieldIsEmpty/ │ │ │ │ │ ├── fail.json │ │ │ │ │ ├── fail.yaml │ │ │ │ │ ├── pass.json │ │ │ │ │ └── pass.yaml │ │ │ │ ├── example_NoMaximumNumberItems/ │ │ │ │ │ ├── fail.json │ │ │ │ │ ├── fail.yaml │ │ │ │ │ ├── fail2.json │ │ │ │ │ ├── fail2.yaml │ │ │ │ │ ├── fail3.json │ │ │ │ │ ├── fail3.yaml │ │ │ │ │ ├── pass.json │ │ │ │ │ ├── pass.yaml │ │ │ │ │ ├── pass2.json │ │ │ │ │ ├── pass2.yaml │ │ │ │ │ ├── pass3.json │ │ │ │ │ └── pass3.yaml │ │ │ │ ├── example_SecurityOperations/ │ │ │ │ │ ├── fail1.json │ │ │ │ │ ├── fail1.yaml │ │ │ │ │ ├── fail2.json │ │ │ │ │ ├── fail2.yaml │ │ │ │ │ ├── fail3.json │ │ │ │ │ ├── fail3.yaml │ │ │ │ │ ├── fail4.json │ │ │ │ │ ├── fail4.yaml │ │ │ │ │ ├── pass1.json │ │ │ │ │ ├── pass1.yaml │ │ │ │ │ ├── pass2.json │ │ │ │ │ ├── pass2.yaml │ │ │ │ │ ├── pass3.json │ │ │ │ │ └── pass3.yaml │ │ │ │ ├── test_ClearTextAPIKey.py │ │ │ │ ├── test_GlobalSecurityFieldIsEmpty.py │ │ │ │ ├── test_NoMaximumNumberItems.py │ │ │ │ └── test_SecurityOperations.py │ │ │ ├── v2/ │ │ │ │ ├── __init__.py │ │ │ │ ├── example_GlobalSchemeDefineHTTP/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ ├── fail.json │ │ │ │ │ ├── fail.yaml │ │ │ │ │ ├── pass.json │ │ │ │ │ └── pass.yaml │ │ │ │ ├── example_GlobalSecurityScopeUndefined/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ ├── fail1.json │ │ │ │ │ ├── fail1.yaml │ │ │ │ │ ├── pass1.json │ │ │ │ │ └── pass1.yaml │ │ │ │ ├── example_Oauth2OperationObjectPasswordFlow/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ ├── fail.json │ │ │ │ │ ├── fail.yaml │ │ │ │ │ ├── pass.json │ │ │ │ │ └── pass.yaml │ │ │ │ ├── example_Oauth2SecurityDefinitionImplicitFlow/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ ├── fail.json │ │ │ │ │ ├── fail.yaml │ │ │ │ │ ├── pass.json │ │ │ │ │ └── pass.yaml │ │ │ │ ├── example_Oauth2SecurityDefinitionPasswordFlow/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ ├── fail.json │ │ │ │ │ ├── fail.yaml │ │ │ │ │ ├── pass.json │ │ │ │ │ └── pass.yaml │ │ │ │ ├── example_Oauth2SecurityPasswordFlow/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ ├── fail.json │ │ │ │ │ ├── fail.yaml │ │ │ │ │ ├── pass.json │ │ │ │ │ └── pass.yaml │ │ │ │ ├── example_Oauth2SecurityRequirement/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ ├── fail.json │ │ │ │ │ ├── fail.yaml │ │ │ │ │ ├── fail2.yaml │ │ │ │ │ ├── pass.json │ │ │ │ │ └── pass.yaml │ │ │ │ ├── example_OperationObjectBasicAuth/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ ├── fail.json │ │ │ │ │ ├── fail.yaml │ │ │ │ │ ├── pass.json │ │ │ │ │ └── pass.yaml │ │ │ │ ├── example_OperationObjectConsumesUndefined/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ ├── fail.json │ │ │ │ │ ├── fail.yaml │ │ │ │ │ ├── pass.json │ │ │ │ │ └── pass.yaml │ │ │ │ ├── example_OperationObjectImplicitFlow/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ ├── fail.json │ │ │ │ │ ├── fail.yaml │ │ │ │ │ ├── pass.json │ │ │ │ │ └── pass.yaml │ │ │ │ ├── example_OperationObjectProducesUndefined/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ ├── fail.json │ │ │ │ │ ├── fail.yaml │ │ │ │ │ ├── pass.json │ │ │ │ │ └── pass.yaml │ │ │ │ ├── example_OperationObjectSecurityScopeUndefined/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ ├── fail1.json │ │ │ │ │ ├── fail1.yaml │ │ │ │ │ ├── pass1.json │ │ │ │ │ ├── pass1.yaml │ │ │ │ │ ├── pass2.json │ │ │ │ │ └── pass2.yaml │ │ │ │ ├── example_PathSchemeDefineHTTP/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ ├── fail.json │ │ │ │ │ ├── fail.yaml │ │ │ │ │ ├── pass.json │ │ │ │ │ ├── pass.yaml │ │ │ │ │ └── pass2.yaml │ │ │ │ ├── example_SecurityDefinitionBasicAuth/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ ├── fail.json │ │ │ │ │ ├── fail.yaml │ │ │ │ │ ├── pass.json │ │ │ │ │ └── pass.yaml │ │ │ │ ├── example_SecurityDefinitions/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ ├── fail1.json │ │ │ │ │ ├── fail1.yaml │ │ │ │ │ ├── fail2.json │ │ │ │ │ ├── fail2.yaml │ │ │ │ │ ├── pass1.json │ │ │ │ │ └── pass1.yaml │ │ │ │ └── example_SecurityRequirement/ │ │ │ │ ├── expected.yaml │ │ │ │ ├── fail1.json │ │ │ │ ├── fail1.yaml │ │ │ │ ├── fail2.json │ │ │ │ ├── fail2.yaml │ │ │ │ ├── pass1.json │ │ │ │ ├── pass1.yaml │ │ │ │ ├── pass2.json │ │ │ │ ├── pass2.yaml │ │ │ │ └── pass3.json │ │ │ └── v3/ │ │ │ ├── __init__.py │ │ │ ├── example_CleartextCredsOverUnencryptedChannel/ │ │ │ │ ├── fail.json │ │ │ │ ├── fail.yaml │ │ │ │ ├── pass.json │ │ │ │ ├── pass.yaml │ │ │ │ ├── pass2.json │ │ │ │ ├── pass2.yaml │ │ │ │ ├── pass3.json │ │ │ │ └── pass3.yaml │ │ │ └── test_CleartextCredsOverUnencryptedChannel.py │ │ └── test_python_policies.py │ └── runner/ │ ├── __init__.py │ ├── resources/ │ │ ├── runner_results/ │ │ │ ├── results.sarif │ │ │ └── unrealted_yaml.yaml │ │ ├── v2/ │ │ │ ├── example.json │ │ │ ├── example.yaml │ │ │ ├── example.yml │ │ │ ├── example1.json │ │ │ ├── incompatible_json.json │ │ │ ├── invalid.json │ │ │ └── swagger_empty_paths.yaml │ │ └── v3/ │ │ ├── example.json │ │ ├── example.yaml │ │ ├── example1.json │ │ └── example1.yaml │ └── test_runner.py ├── parallel/ │ ├── __init__.py │ └── test_parallel.py ├── policies_3d/ │ ├── __init__.py │ ├── conftest.py │ ├── syntax/ │ │ ├── cves_syntax/ │ │ │ └── test_cves_syntax.py │ │ ├── iac_syntax/ │ │ │ └── test_iac_syntax.py │ │ └── test_predicament.py │ ├── test_output.py │ ├── test_parser.py │ └── test_runner.py ├── sast/ │ ├── __init__.py │ ├── checks/ │ │ ├── python_rule.yaml │ │ └── temp_parsed_rules/ │ │ └── temp_semgrep_rules.yaml │ ├── external_checks/ │ │ └── v01/ │ │ ├── SuperuserPort.yaml │ │ └── java_rule.yaml │ ├── source_code/ │ │ ├── __init__.py │ │ ├── external_check/ │ │ │ ├── fail.java │ │ │ └── fail.py │ │ └── js_filtered_build_ts/ │ │ ├── example1/ │ │ │ ├── app.ts │ │ │ └── tsconfig.json │ │ ├── example2/ │ │ │ ├── app.ts │ │ │ ├── needTScan/ │ │ │ │ └── app.js │ │ │ └── tsconfig.json │ │ └── example3/ │ │ ├── main.js │ │ └── main.ts │ ├── test_filter_files_manager.py │ ├── test_report.py │ └── test_runner.py ├── sca_image/ │ ├── __init__.py │ ├── conftest.py │ ├── examples/ │ │ ├── .github/ │ │ │ └── workflows/ │ │ │ └── vulnerable_container.yaml │ │ ├── dockerfile/ │ │ │ └── Dockerfile │ │ └── kubernetes/ │ │ └── deployment.yaml │ ├── mocks.py │ ├── outputs/ │ │ └── results_cyclonedx.xml │ ├── test_output_reports.py │ └── test_runner.py ├── sca_package_2/ │ ├── __init__.py │ ├── conftest.py │ ├── examples/ │ │ ├── Microsoft.NET.Sdk.csproj │ │ ├── go.mod │ │ ├── go.sum │ │ ├── package.json │ │ └── requirements.txt │ ├── outputs/ │ │ ├── cli_outputs/ │ │ │ └── test_create_cli_table_for_package_with_reachability_data.txt │ │ ├── results_cyclonedx_1_0.xml │ │ ├── results_cyclonedx_1_1.xml │ │ ├── results_cyclonedx_1_2.xml │ │ ├── results_cyclonedx_1_3.xml │ │ ├── results_cyclonedx_1_4.xml │ │ └── results_cyclonedx_with_comma_in_licenses.xml │ ├── test_output.py │ ├── test_output_reports.py │ ├── test_runner.py │ └── test_runner_dependency_tree.py ├── secrets/ │ ├── __init__.py │ ├── build_log_prefix/ │ │ └── plain_private_key.txt │ ├── conftest.py │ ├── custom_and_entropy/ │ │ └── main.tf │ ├── custom_regex_detector/ │ │ └── Dockerfile │ ├── git_history/ │ │ ├── __init__.py │ │ ├── test_utils.py │ │ └── testing_repo/ │ │ ├── README.md │ │ ├── foobar.py │ │ ├── git_to_change/ │ │ │ ├── COMMIT_EDITMSG │ │ │ ├── HEAD │ │ │ ├── config │ │ │ ├── description │ │ │ ├── hooks/ │ │ │ │ ├── applypatch-msg.sample │ │ │ │ ├── commit-msg.sample │ │ │ │ ├── fsmonitor-watchman.sample │ │ │ │ ├── post-update.sample │ │ │ │ ├── pre-applypatch.sample │ │ │ │ ├── pre-commit.sample │ │ │ │ ├── pre-merge-commit.sample │ │ │ │ ├── pre-push.sample │ │ │ │ ├── pre-rebase.sample │ │ │ │ ├── pre-receive.sample │ │ │ │ ├── prepare-commit-msg.sample │ │ │ │ ├── push-to-checkout.sample │ │ │ │ └── update.sample │ │ │ ├── index │ │ │ ├── info/ │ │ │ │ └── exclude │ │ │ ├── logs/ │ │ │ │ ├── HEAD │ │ │ │ └── refs/ │ │ │ │ └── heads/ │ │ │ │ ├── master │ │ │ │ └── test_git │ │ │ ├── objects/ │ │ │ │ ├── 29/ │ │ │ │ │ └── 22a3a6792a04710b79f8a36d25999c9132adb0 │ │ │ │ ├── 2c/ │ │ │ │ │ └── eb8230f2e2b563cf667ec2acc45eee95be9f94 │ │ │ │ ├── 45/ │ │ │ │ │ └── eb17330f88d105e18520b624cafd35778f4d69 │ │ │ │ ├── 51/ │ │ │ │ │ └── 8bf059756d932da372d77ca9a4a9371c2d210d │ │ │ │ ├── 56/ │ │ │ │ │ └── a8b042461d934c13fd3bbec446aaab37479181 │ │ │ │ ├── 57/ │ │ │ │ │ └── 4e4e06ab81938095bd5f35412b3da3d47393e4 │ │ │ │ ├── 6e/ │ │ │ │ │ └── d0de5eedd5d5d3fbee78e708604d7271ba952c │ │ │ │ ├── 77/ │ │ │ │ │ └── 9153df7f6636c0e4cb625b5e39dc088b061924 │ │ │ │ ├── 7d/ │ │ │ │ │ └── a2a86863a535ea355b8c8cd7525e2cb2f922d0 │ │ │ │ ├── 81/ │ │ │ │ │ └── 47cdd7190b6f25c61f3f911d1c1d4f3f9a336d │ │ │ │ ├── 8b/ │ │ │ │ │ └── fb94d8d2cdbac5d789409768f6d02a81e305a0 │ │ │ │ ├── 96/ │ │ │ │ │ └── 7d3bf7bdb1a5d8fd5e419d8fe47d754a156237 │ │ │ │ ├── 9e/ │ │ │ │ │ └── 823e1d049f39db026ba46ca34757613ba59e55 │ │ │ │ ├── ce/ │ │ │ │ │ └── 2549b85dff66121ab2ef685f043e86e7241614 │ │ │ │ └── e9/ │ │ │ │ └── 5677e839e67e685138aeba087d7deec0879919 │ │ │ └── refs/ │ │ │ └── heads/ │ │ │ ├── master │ │ │ └── test_git │ │ ├── main.py │ │ └── pass.py │ ├── json_multiline/ │ │ ├── pomerium_compose.json │ │ └── test-multiline-secrets.json │ ├── long_line_custom_regex_detector/ │ │ └── Dockerfile │ ├── masking_secrets/ │ │ ├── assets_report_with_pass.json │ │ └── findings_report_with_pass.json │ ├── multiline_custom_regex_detector/ │ │ └── Dockerfile.mine │ ├── multiline_finding/ │ │ └── Dockerfile.mine │ ├── omit_multiple_secrets/ │ │ └── test/ │ │ └── multiple_secrets_one_line.txt │ ├── resources/ │ │ ├── cfn/ │ │ │ ├── secret-no-false-positive.yml │ │ │ ├── secret-no-false-positive2.yml │ │ │ └── secret.yml │ │ ├── file_type/ │ │ │ ├── Dockerfile │ │ │ ├── Dockerfile.simple │ │ │ ├── test.py │ │ │ └── test.ts │ │ ├── k8s/ │ │ │ └── secret-name.yaml │ │ ├── terraform/ │ │ │ └── main.tf │ │ ├── terraform_failed/ │ │ │ └── main.tf │ │ └── terraform_skip/ │ │ └── main.tf │ ├── sanity/ │ │ ├── iac_fp/ │ │ │ ├── main.json │ │ │ └── main.tf │ │ ├── non_iac_fp/ │ │ │ └── a.py │ │ ├── non_secrets/ │ │ │ └── true_negative.json │ │ └── secrets/ │ │ └── true_positive.json │ ├── skip_test/ │ │ ├── skip_test1/ │ │ │ ├── skip1.json │ │ │ ├── skip2.json │ │ │ └── skip_test2/ │ │ │ ├── skip1.json │ │ │ └── skip2.json │ │ └── skip_test2/ │ │ ├── skip1.json │ │ └── skip2.json │ ├── suppressions/ │ │ ├── metadata_suppression.yaml │ │ ├── metadata_suppression_array.json │ │ └── metadata_suppression_object.json │ ├── terraform_multiline/ │ │ ├── cfn_heredoc.tf │ │ ├── data.tf │ │ ├── ecs_heredoc.tf │ │ ├── ecs_jsonencode.tf │ │ └── pod.tf │ ├── test_coordinator.py │ ├── test_entropy_source_files/ │ │ └── db-conn.js │ ├── test_load_detectors.py │ ├── test_log_prefix_stripper.py │ ├── test_masking_secrets.py │ ├── test_multiline_finding_line_number.py │ ├── test_multiline_parser_json.py │ ├── test_multiline_parser_yml.py │ ├── test_plugin.py │ ├── test_plugin_multiline_json.py │ ├── test_plugin_multiline_terraform.py │ ├── test_plugin_multiline_yml.py │ ├── test_prioritise_secrets.py │ ├── test_runner.py │ ├── test_secret_git_history.py │ ├── test_secrets_verification.py │ ├── test_secrets_verification_suppressions.py │ ├── test_skip_check_in_json.py │ ├── test_utils.py │ ├── test_vault_secrets.py │ ├── utils_for_test.py │ └── yml_multiline/ │ ├── pomerium_compose.yml │ └── test-multiline-secrets.yml ├── serverless/ │ ├── __init__.py │ ├── checks/ │ │ ├── __init__.py │ │ ├── aws/ │ │ │ ├── __init__.py │ │ │ ├── example_AWSCredentials/ │ │ │ │ ├── AWSCredentials-FAILED-func_level/ │ │ │ │ │ └── serverless.yml │ │ │ │ ├── AWSCredentials-FAILED-provider_level/ │ │ │ │ │ └── serverless.yml │ │ │ │ └── AWSCredentials-PASSED/ │ │ │ │ └── serverless.yml │ │ │ ├── example_AdminPolicyDocument/ │ │ │ │ ├── AdminPolicyDocument-FAILED-func_level/ │ │ │ │ │ └── serverless.yml │ │ │ │ ├── AdminPolicyDocument-FAILED-provider_level/ │ │ │ │ │ └── serverless.yml │ │ │ │ ├── AdminPolicyDocument-FAILED-provider_level_with_env_var/ │ │ │ │ │ └── serverless.yml │ │ │ │ ├── AdminPolicyDocument-FAILED-provider_level_with_ext_json_var/ │ │ │ │ │ ├── customVars.json │ │ │ │ │ └── serverless.yml │ │ │ │ ├── AdminPolicyDocument-FAILED-provider_level_with_ext_yaml_var/ │ │ │ │ │ ├── customVars.yml │ │ │ │ │ └── serverless.yml │ │ │ │ ├── AdminPolicyDocument-FAILED-provider_level_with_var/ │ │ │ │ │ └── serverless.yml │ │ │ │ └── AdminPolicyDocument-PASSED/ │ │ │ │ └── serverless.yml │ │ │ ├── example_S3PublicACLRead/ │ │ │ │ ├── S3PublicACLRead-FAILED/ │ │ │ │ │ └── serverless.yml │ │ │ │ ├── S3PublicACLRead-PASSED/ │ │ │ │ │ └── serverless.yml │ │ │ │ └── S3PublicACLRead-PASSED-incl/ │ │ │ │ ├── resources.yaml │ │ │ │ └── serverless.yml │ │ │ ├── example_StarActionPolicyDocument/ │ │ │ │ ├── StarActionPolicyDocument-FAILED-func_level/ │ │ │ │ │ └── serverless.yml │ │ │ │ ├── StarActionPolicyDocument-FAILED-provider_level/ │ │ │ │ │ └── serverless.yml │ │ │ │ ├── StarActionPolicyDocument-PASSED/ │ │ │ │ │ └── serverless.yml │ │ │ │ └── StarActionPolicyDocument-PASSED-2/ │ │ │ │ └── serverless.yml │ │ │ ├── test_AWSCredentials.py │ │ │ ├── test_AdminPolicyDocument.py │ │ │ ├── test_S3PublicACLRead.py │ │ │ └── test_StarActionPolicyDocument.py │ │ ├── example_CheckTypes/ │ │ │ └── serverless.yml │ │ ├── example_WildcardEntities/ │ │ │ └── serverless.yml │ │ ├── test_check_types.py │ │ └── test_wildcard_entities.py │ ├── graph_builder/ │ │ ├── __init__.py │ │ ├── resources/ │ │ │ ├── serverless.yaml │ │ │ └── serverless.yml │ │ └── test_local_graph.py │ ├── runner/ │ │ ├── __init__.py │ │ ├── example_with_resources_from_file/ │ │ │ ├── Resources.yaml │ │ │ └── serverless.yaml │ │ ├── resources/ │ │ │ ├── serverless.yaml │ │ │ └── serverless.yml │ │ └── test_runner.py │ ├── test_parser.py │ └── test_scanner_registry.py ├── terraform/ │ ├── __init__.py │ ├── checks/ │ │ ├── __init__.py │ │ ├── data/ │ │ │ ├── __init__.py │ │ │ ├── aws/ │ │ │ │ ├── __init__.py │ │ │ │ ├── example_AdminPolicyDocument/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_CloudSplainingCredentialsExposure/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_CloudSplainingDataExfiltration/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_CloudSplainingPrivilegeEscalation/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_CloudsplainingIAMWrite/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_CloudsplainingPermissionsManagement/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_GithubActionsOIDCTrustPolicy/ │ │ │ │ │ ├── main.tf │ │ │ │ │ └── tfplan.json │ │ │ │ ├── example_IAMManagedAdminPolicy/ │ │ │ │ │ └── IAMManagedAdminPolicy.tf │ │ │ │ ├── example_IAMPublicActionsPolicy/ │ │ │ │ │ └── public_actions.tf │ │ │ │ ├── example_ModuleProvider/ │ │ │ │ │ ├── example/ │ │ │ │ │ │ └── main.tf │ │ │ │ │ └── main.tf │ │ │ │ ├── example_ResourcePolicyDocument/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_StarActionPolicyDocument/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_WhoAMI/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_module_with_one_provider/ │ │ │ │ │ ├── example/ │ │ │ │ │ │ └── main.tf │ │ │ │ │ └── main.tf │ │ │ │ ├── example_provider_edge_case/ │ │ │ │ │ ├── main.tf │ │ │ │ │ ├── nesting/ │ │ │ │ │ │ ├── main.tf │ │ │ │ │ │ ├── nesting_l2/ │ │ │ │ │ │ │ └── main.tf │ │ │ │ │ │ └── nesting_l2_2/ │ │ │ │ │ │ └── main.tf │ │ │ │ │ ├── nesting_2/ │ │ │ │ │ │ └── main.tf │ │ │ │ │ └── readme.md │ │ │ │ ├── example_provider_with_nested_module/ │ │ │ │ │ ├── example/ │ │ │ │ │ │ ├── example2/ │ │ │ │ │ │ │ └── main.tf │ │ │ │ │ │ └── main.tf │ │ │ │ │ └── main.tf │ │ │ │ ├── example_provider_with_nested_module_assign_provider/ │ │ │ │ │ ├── example/ │ │ │ │ │ │ ├── example2/ │ │ │ │ │ │ │ └── main.tf │ │ │ │ │ │ └── main.tf │ │ │ │ │ └── main.tf │ │ │ │ ├── example_provider_without_module/ │ │ │ │ │ └── main.tf │ │ │ │ ├── test_AdminPolicyDocument.py │ │ │ │ ├── test_CloudSplainingCredentialsExposure.py │ │ │ │ ├── test_CloudSplainingDataExfiltration.py │ │ │ │ ├── test_CloudSplainingPrivilegeEscalation.py │ │ │ │ ├── test_CloudsplainingIAMWrite.py │ │ │ │ ├── test_CloudsplainingPermissionsManagement.py │ │ │ │ ├── test_GithubActionsOIDCTrustPolicy.py │ │ │ │ ├── test_IAMManagedAdminPolicy.py │ │ │ │ ├── test_IAMPublicActionsPolicy.py │ │ │ │ ├── test_ModuleProvider.py │ │ │ │ ├── test_ResourcePolicyDocument.py │ │ │ │ ├── test_StarActionPolicyDocument.py │ │ │ │ └── test_WhoAMI.py │ │ │ ├── example_external_dir/ │ │ │ │ └── extra_checks/ │ │ │ │ ├── DummyExternalDataCheck.py │ │ │ │ └── __init__.py │ │ │ ├── external/ │ │ │ │ ├── __init__.py │ │ │ │ ├── example_external_data/ │ │ │ │ │ ├── main.tf │ │ │ │ │ └── wrapper.py │ │ │ │ ├── external_check/ │ │ │ │ │ ├── ExternalData.py │ │ │ │ │ └── __init__.py │ │ │ │ └── test_external_data.py │ │ │ ├── gcp/ │ │ │ │ ├── example_GooglePolicyIsPrivate/ │ │ │ │ │ └── main.tf │ │ │ │ └── test_GooglePolicyIsPrivate.py │ │ │ ├── test_base_data_check.py │ │ │ └── test_registry.py │ │ ├── example_WildcardEntities/ │ │ │ └── main.tf │ │ ├── module/ │ │ │ ├── __init__.py │ │ │ ├── generic/ │ │ │ │ ├── __init__.py │ │ │ │ ├── example_RevisionHash/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_RevisionVersionTag/ │ │ │ │ │ └── main.tf │ │ │ │ ├── test_RevisionHash.py │ │ │ │ └── test_RevisionVersionTag.py │ │ │ └── registry/ │ │ │ ├── __init__.py │ │ │ ├── example_external_dir/ │ │ │ │ └── extra_checks/ │ │ │ │ ├── ModuleCheck.py │ │ │ │ └── __init__.py │ │ │ ├── example_external_dir_with_module_version_check/ │ │ │ │ └── extra_checks/ │ │ │ │ ├── ModuleSourceHashCheck.py │ │ │ │ ├── ModuleVersionCheck.py │ │ │ │ └── __init__.py │ │ │ ├── resources/ │ │ │ │ └── main.tf │ │ │ ├── test_ModuleCheck.py │ │ │ └── test_registry.py │ │ ├── provider/ │ │ │ ├── __init__.py │ │ │ ├── aws/ │ │ │ │ ├── __init__.py │ │ │ │ └── test_credentials.py │ │ │ ├── bridgecrew/ │ │ │ │ ├── __init__.py │ │ │ │ └── test_credentials.py │ │ │ ├── linode/ │ │ │ │ ├── __init__.py │ │ │ │ └── test_credentials.py │ │ │ ├── ncp/ │ │ │ │ ├── __init__.py │ │ │ │ └── test_credentials.py │ │ │ ├── oci/ │ │ │ │ ├── __init__.py │ │ │ │ └── test_credentials.py │ │ │ ├── openstack/ │ │ │ │ ├── __init__.py │ │ │ │ └── test_credentials.py │ │ │ └── panos/ │ │ │ ├── __init__.py │ │ │ ├── resources/ │ │ │ │ └── api_key/ │ │ │ │ ├── fail1.tf │ │ │ │ ├── fail2.tf │ │ │ │ ├── pass.tf │ │ │ │ └── variables.tf │ │ │ └── test_credentials.py │ │ ├── resource/ │ │ │ ├── __init__.py │ │ │ ├── alicloud/ │ │ │ │ ├── __init__.py │ │ │ │ ├── example_ALBACLIsUnrestricted/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_APIGatewayProtocolHTTPS/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_AbsSecurityGroupUnrestrictedIngress/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_ActionTrailLogAllEvents/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_ActionTrailLogAllRegions/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_DiskEncryptedWithCMK/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_DiskIsEncrypted/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_K8sEnableNetworkPolicies/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_K8sNodePoolAutoRepair/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_KMSKeyIsEnabled/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_KMSKeyRotationIsEnabled/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_LaunchTemplateDisksAreEncrypted/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_LogAuditRDSEnabled/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_MongoDBInsideVPC/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_MongoDBInstanceSSL/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_MongoDBIsPublic/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_MongoDBTransparentDataEncryptionEnabled/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_OSSBucketAccessLogs/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_OSSBucketEncryptedWithCMK/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_OSSBucketPublic/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_OSSBucketTransferAcceleration/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_OSSBucketVersioning/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_PasswordPolicyExpiration/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_PasswordPolicyLength/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_PasswordPolicyLowercaseLetter/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_PasswordPolicyMaxLogin/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_PasswordPolicyNumber/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_PasswordPolicyReuse/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_PasswordPolicySymbol/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_PasswordPolicyUppcaseLetter/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_RAMSecurityEnforceMFA/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_RDSInstanceAutoUpgrade/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_RDSInstanceLogConnections/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_RDSInstanceLogDisconnections/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_RDSInstanceLogsEnabled/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_RDSInstanceSSL/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_RDSIsPublic/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_RDSRetention/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_RDSTransparentDataEncryptionEnabled/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_TLSPoliciesAreSecure/ │ │ │ │ │ └── main.tf │ │ │ │ ├── test_ALBACLIsUnrestricted.py │ │ │ │ ├── test_APIGatewayProtocolHTTPS.py │ │ │ │ ├── test_ActionTrailLogAllEvents.py │ │ │ │ ├── test_ActionTrailLogAllRegions.py │ │ │ │ ├── test_DiskEncryptedWithCMK.py │ │ │ │ ├── test_DiskIsEncrypted.py │ │ │ │ ├── test_K8sEnableNetworkPolicies.py │ │ │ │ ├── test_K8sNodePoolAutoRepair.py │ │ │ │ ├── test_KMSKeyIsEnabled.py │ │ │ │ ├── test_KMSKeyRotationIsEnabled.py │ │ │ │ ├── test_LaunchTemplateDiskAreEncrypted.py │ │ │ │ ├── test_LogAuditRDSEnabled.py │ │ │ │ ├── test_MongoDBInsideVPC.py │ │ │ │ ├── test_MongoDBInstanceSSL.py │ │ │ │ ├── test_MongoDBIsPublic.py │ │ │ │ ├── test_MongoDBTransparentDataEncryption.py │ │ │ │ ├── test_OSSBucketAccessLogs.py │ │ │ │ ├── test_OSSBucketEncryptedWithCMK.py │ │ │ │ ├── test_OSSBucketTransferAcceleration.py │ │ │ │ ├── test_OSSBucketVersioning.py │ │ │ │ ├── test_PasswordPolicyExpiration.py │ │ │ │ ├── test_PasswordPolicyLength.py │ │ │ │ ├── test_PasswordPolicyLowercaseLetter.py │ │ │ │ ├── test_PasswordPolicyMaxLogin.py │ │ │ │ ├── test_PasswordPolicyNumber.py │ │ │ │ ├── test_PasswordPolicyReuse.py │ │ │ │ ├── test_PasswordPolicySymbol.py │ │ │ │ ├── test_PasswordPolicyUppcaseLetter.py │ │ │ │ ├── test_RAMSecurityEnforceMFA.py │ │ │ │ ├── test_RDSInstanceAutoUpgrade.py │ │ │ │ ├── test_RDSInstanceLogConnections.py │ │ │ │ ├── test_RDSInstanceLogDisconnections.py │ │ │ │ ├── test_RDSInstanceLogsEnabled.py │ │ │ │ ├── test_RDSInstanceSSL.py │ │ │ │ ├── test_RDSIsPublic.py │ │ │ │ ├── test_RDSRetention.py │ │ │ │ ├── test_RDSTransparentDataEncryption.py │ │ │ │ ├── test_SecurityGroupUnrestrictedIngress22.py │ │ │ │ ├── test_SecurityGroupUnrestrictedIngress3389.py │ │ │ │ └── test_TLSPoliciesAreSecure.py │ │ │ ├── aws/ │ │ │ │ ├── __init__.py │ │ │ │ ├── example_ACMCertCreateBeforeDestroy/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_ACMCertSetLoggingPreference/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_ALBDesyncMode/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_ALBDropHttpHeaders/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_AMICopyIsEncrypted/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_AMICopyUsesCMK/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_AMIEncryption/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_AMILaunchIsShared/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_APIGatewayCacheEnable/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_APIGatewayCreateBeforeDestroy/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_APIGatewayDeploymentCreateBeforeDestroy/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_APIGatewayDomainNameTLS/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_APIGatewayMethodSettingsCacheEnabled/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_APIGatewayMethodSettingsCacheEncrypted/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_APIGatewayMethodSettingsDataTrace/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_APIGatewayV2RouteDefinesAuthorizationType/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_AWSCodeGuruHasCMK/ │ │ │ │ │ └── AWSCodeGuruHasCMK.tf │ │ │ │ ├── example_AppFlowConnectorProfileUsesCMK/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_AppFlowUsesCMK/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_AppSyncFieldLevelLogs/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_AppSyncLogging/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_AppsyncAPICacheEncryptionAtRest/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_AppsyncAPICacheEncryptionInTransit/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_AthenaWorkgroupEncryption/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_AutoScalingGroupWithPublicAccess/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_AutoScalingLaunchTemplate/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_AutoScalingTagging/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_BackupVaultEncrypted/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_BatchJobIsNotPrivileged/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_BedrockAgentEncrypted/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_BedrockGuardrails/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_CloudFrontGeoRestrictionDisabled/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_CloudFrontResponseHeaderStrictTransportSecurity/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_CloudWatchAlarmsEnabled/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_CloudWatchLogGroupKMSKey/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_CloudWatchLogGroupRetention/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_CloudWatchLogGroupRetentionYear/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_CloudfrontDistributionDefaultRoot/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_CloudfrontDistributionEnabled/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_CloudfrontDistributionOriginFailover/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_CloudfrontTLS12/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_CloudsearchDomainEnforceHttps/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_CloudsearchDomainTLS/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_CloudtrailDefinesSNSTopic/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_CloudtrailEnableLogging/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_CloudtrailEncryptedWithCMK/ │ │ │ │ │ └── aws_cloudtrail.tf │ │ │ │ ├── example_CloudtrailEventDataStoreUsesCMK/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_CodeArtifactDomainEncryptedWithCMK/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_CodeBuildPrivilegedMode/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_CodeBuildProjectEncryption/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_CodePipelineArtifactsEncrypted/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_CodebuildHasLogs/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_CodebuildS3LogsEncrypted/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_CodebuildUsesCMK/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_CodecommitApprovalsRulesRequireMin2/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_CognitoUnauthenticatedIdentities/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_ComprehendEntityRecognizerModelUsesCMK/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_ComprehendEntityRecognizerVolumeUsesCMK/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_ConnectInstanceKinesisVideoStreamStorageConfigUsesCMK/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_ConnectInstanceS3StorageConfigUsesCMK/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_DAXEncryption/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_DAXEndpointTLS/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_DBInstanceBackupRetentionPeriod/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_DBInstanceLogging/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_DBInstanceMinorUpgrade/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_DBSnapshotCopyUsesCMK/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_DBSnapshotsArePrivate/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_DLMEventsCrossRegionEncryption/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_DLMEventsCrossRegionEncryptionWithCMK/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_DLMScheduleCrossRegionEncryption/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_DLMScheduleCrossRegionEncryptionWithCMK/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_DMSEndpointUsesCMK/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_DMSReplicationInstanceEncryptedWithCMK/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_DMSReplicationInstanceMinorUpgrade/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_DMSS3UsesCMK/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_DatasyncLocationExposesSecrets/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_DeprecatedLambdaRuntime/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_DocDBBackupRetention/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_DocDBEncryptedWithCMK/ │ │ │ │ │ └── aws_docdb_cluster.tf │ │ │ │ ├── example_DocDBGlobalClusterEncryption/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_DocDBLogging/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_DynamoDBTableReplicaKMSUsesCMK/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_DynamoDBTablesEncrypted/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_EBSDefaultEncryption/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_EBSEncryption/ │ │ │ │ │ └── aws_ebs_volume.tf │ │ │ │ ├── example_EBSSnapshotCopyEncryptedWithCMK/ │ │ │ │ │ └── aws_ebs_snapshot_copy.tf │ │ │ │ ├── example_EBSVolumeEncryptedWithCMK/ │ │ │ │ │ └── aws_ebs_volume.tf │ │ │ │ ├── example_EC2Credentials/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_EC2PublicIP/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_EC2PublicIP_foreach/ │ │ │ │ │ ├── main.tf │ │ │ │ │ └── module/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_ECRImmutableTags/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_ECRPolicy/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_ECSClusterLoggingEnabled/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_ECSClusterLoggingEncryptedWithCMK/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_ECSContainerHostProcess/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_ECSContainerPrivilege/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_ECSContainerReadOnlyRoot/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_ECSServiceFargateLatest/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_ECSServicePublicIP/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_ECSTaskDefinitionRoleCheck/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_EFSAccessPointRoot/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_EFSAccessUserIdentity/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_EFSEncryptionEnabled/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_EFSFileSystemEncryptedWithCMK/ │ │ │ │ │ └── aws_efs_file_system.tf │ │ │ │ ├── example_EKSControlPlaneLogging/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_EKSPlatformVersion/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_EKSPublicAccess/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_EKSPublicAccessCIDR/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_ELBPolicyUsesSecureProtocols/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_ELBv2AccessLogs/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_ELBwListenerNotTLSSSL/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_EMRClusterConfEncryptsEBS/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_EMRClusterConfEncryptsInTransit/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_EMRClusterConfEncryptsLocalDisk/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_EMRClusterIsEncryptedKMS/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_EMRPubliclyAccessible/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_Ec2TransitGatewayAutoAccept/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_ElastiCacheHasCustomSubnet/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_ElasticBeanstalkUseEnhancedHealthChecks/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_ElasticBeanstalkUseManagedUpdates/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_ElasticCacheAutomaticBackup/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_ElasticCacheAutomaticMinorUpgrades/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_ElasticacheHasSecurityGroup/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_ElasticacheReplicationGroupEncryptedWithCMK/ │ │ │ │ │ └── aws_elasticache_replication_group.tf │ │ │ │ ├── example_ElasticacheReplicationGroupEncryptionAtTransitAuthToken/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_ElasticsearchDefaultSG/ │ │ │ │ │ ├── main.tf │ │ │ │ │ └── opensearch.tf │ │ │ │ ├── example_ElasticsearchDomainAuditLogging/ │ │ │ │ │ ├── main.tf │ │ │ │ │ └── opensearch.tf │ │ │ │ ├── example_ElasticsearchDomainEnforceHTTPS/ │ │ │ │ │ ├── main.tf │ │ │ │ │ └── opensearch.tf │ │ │ │ ├── example_ElasticsearchDomainHA/ │ │ │ │ │ ├── main.tf │ │ │ │ │ └── opensearch.tf │ │ │ │ ├── example_ElasticsearchDomainLogging/ │ │ │ │ │ ├── main.tf │ │ │ │ │ └── opensearch.tf │ │ │ │ ├── example_ElasticsearchEncryption/ │ │ │ │ │ ├── main.tf │ │ │ │ │ └── opensearch.tf │ │ │ │ ├── example_ElasticsearchEncryptionWithCMK/ │ │ │ │ │ ├── main.tf │ │ │ │ │ └── opensearch.tf │ │ │ │ ├── example_ElasticsearchInVPC/ │ │ │ │ │ ├── main.tf │ │ │ │ │ └── opensearch.tf │ │ │ │ ├── example_ElasticsearchNodeToNodeEncryption/ │ │ │ │ │ ├── main.tf │ │ │ │ │ └── opensearch.tf │ │ │ │ ├── example_ElasticsearchTLSPolicy/ │ │ │ │ │ ├── main.tf │ │ │ │ │ └── opensearch.tf │ │ │ │ ├── example_FSXOntapFSEncryptedWithCMK/ │ │ │ │ │ └── aws_fsx_ontap_file_system.tf │ │ │ │ ├── example_FSXOpenZFSFileSystemEncryptedWithCMK/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_FSXWindowsFSEncryptedWithCMK/ │ │ │ │ │ └── aws_fsx_windows_file_system.tf │ │ │ │ ├── example_GlacierVaultAnyPrincipal/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_GlueSecurityConfigurationEnabled/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_GuarddutyDetectorEnabled/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_IAMAdminPolicyDocument/ │ │ │ │ │ └── iam.tf │ │ │ │ ├── example_IAMCredentialsExposure/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_IAMDataExfiltration/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_IAMManagedAdminPolicy/ │ │ │ │ │ └── IAMManagedAdminPolicy.tf │ │ │ │ ├── example_IAMPermissionsManagement/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_IAMPolicyAttachedToGroupOrRoles/ │ │ │ │ │ └── iam.tf │ │ │ │ ├── example_IAMPrivilegeEscalation/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_IAMRoleAllowAssumeFromAccount/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_IAMStarResourcePolicyDocument/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_IAMUserNotUsedForAccess/ │ │ │ │ │ └── iam.tf │ │ │ │ ├── example_IAMUserRootAccessKeys/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_IAMWriteAccess/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_IMDSv1Disabled/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_ImagebuilderComponentEncryptedWithCMK/ │ │ │ │ │ └── aws_imagebuilder_component.tf │ │ │ │ ├── example_ImagebuilderDistributionConfigurationEncryptedWithCMK/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_ImagebuilderImageRecipeEBSEncrypted/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_KMSKeyIsEnabled/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_KMSKeyWildcardPrincipal/ │ │ │ │ │ ├── fail.tf │ │ │ │ │ └── pass.tf │ │ │ │ ├── example_KMSRotation/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_KendraIndexSSEUsesCMK/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_KeyspacesTableUsesCMK/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_KinesisFirehoseDeliveryStreamSSE/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_KinesisFirehoseDeliveryStreamUsesCMK/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_KinesisStreamEncryptedWithCMK/ │ │ │ │ │ └── aws_kinesis_stream.tf │ │ │ │ ├── example_KinesisStreamEncryptionType/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_KinesisVideoEncryptedWithCMK/ │ │ │ │ │ └── aws_kinesis_video_stream.tf │ │ │ │ ├── example_LBCrossZone/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_LBDeletionProtection/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_LBTargetGroupDefinesHealthcheck/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_LambdaCodeSigningConfigured/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_LambdaEnvironmentCredentials/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_LambdaEnvironmentEncryptionSettings/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_LambdaFunctionIsNotPublic/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_LambdaFunctionURLAuth/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_LambdaServicePermission/ │ │ │ │ │ └── LambdaServicePermission.tf │ │ │ │ ├── example_LambdaXrayEnabled/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_LaunchConfigurationEBSEncryption/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_LaunchTemplateMetadataHop/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_LustreFSEncryptedWithCMK/ │ │ │ │ │ └── aws_fsx_lustre_file_system.tf │ │ │ │ ├── example_MQBrokerAuditLogging/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_MQBrokerEncryptedWithCMK/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_MQBrokerLogging/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_MQBrokerMinorAutoUpgrade/ │ │ │ │ │ └── main/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_MQBrokerVersion/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_MSKClusterNodesArePrivate/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_MWAASchedulerLogsEnabled/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_MWAAWebserverLogsEnabled/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_MWAAWorkerLogsEnabled/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_MemoryDBClusterIntransitEncryption/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_MemoryDBEncryptionWithCMK/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_MemoryDBSnapshotEncryptionWithCMK/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_NeptuneClusterBackupRetention/ │ │ │ │ │ └── NeptuneClusterBackupRetention.tf │ │ │ │ ├── example_NeptuneClusterEncryptedWithCMK/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_NeptuneClusterSnapshotEncrypted/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_NeptuneClusterSnapshotEncryptedWithCMK/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_NeptuneClusterStorageEncrypted/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_NeptuneDBClustersCopyTagsToSnapshots/ │ │ │ │ │ └── NeptuneDBClustersCopyTagsToSnapshots.tf │ │ │ │ ├── example_NeptuneDBClustersIAMDatabaseAuthenticationEnabled/ │ │ │ │ │ └── NeptuneDBClustersIAMDatabaseAuthenticationEnabled.tf │ │ │ │ ├── example_NetworkACLUnrestricted/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_NetworkACLUnrestrictedIngress20/ │ │ │ │ │ ├── dynamic_blocks_map_brackets/ │ │ │ │ │ │ ├── main.tf │ │ │ │ │ │ └── variables.tf │ │ │ │ │ └── main.tf │ │ │ │ ├── example_NetworkACLUnrestrictedIngress21/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_NetworkACLUnrestrictedIngress22/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_NetworkACLUnrestrictedIngress3389/ │ │ │ │ │ ├── main.tf │ │ │ │ │ └── variables.tf │ │ │ │ ├── example_NetworkFirewallDeletionProtection/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_NetworkFirewallPolicyDefinesCMK/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_NetworkFirewallUsesCMK/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_QLDBLedgerDeletionProtection/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_QLDBLedgerPermissionsMode/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_RDSCACertIsRecent/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_RDSClusterActivityStreamEncryptedWithCMK/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_RDSClusterAuditLogging/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_RDSClusterAuroraBacktrack/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_RDSClusterCopyTags/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_RDSClusterEncryptedWithCMK/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_RDSClusterIAMAuthentication/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_RDSClusterLogging/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_RDSEncryption/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_RDSHasSecurityGroup/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_RDSIAMAuthentication/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_RDSInstanceAutoBackupEncryptionWithCMK/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_RDSInstanceDeletionProtection/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_RDSInstancePerfInsightsEncryptionWithCMK/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_RDSInstancePerformanceInsights/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_RDSMultiAZEnabled/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_RDSPostgreSQLLogFDWExtension/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_RedShiftSSL/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_RedshiftClusterAutoSnap/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_RedshiftClusterDatabaseName/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_RedshiftClusterUseEnhancedVPCRouting/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_RedshiftClusterWithCommonUsernameAndPublicAccess/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_RedshiftInEc2ClassicMode/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_RedshiftServerlessNamespaceKMSKey/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_RedshiftSnapshotCopyGrantEncryptedWithCMK/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_Route53TransferLock/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_S3AbortIncompleteUploads/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_S3AccessPointPubliclyAccessible/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_S3AllowsAnyPrincipal/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_S3BucketObjectEncryptedWithCMK/ │ │ │ │ │ └── aws_s3_bucket_object.tf │ │ │ │ ├── example_S3BucketObjectLock/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_S3GlobalViewACL/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_S3ObjectCopyEncryptedWithCMK/ │ │ │ │ │ └── aws_s3_object_copy.tf │ │ │ │ ├── example_S3ProtectAgainstPolicyLockout/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_S3SecureDataTransport/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_SNSCrossAccountAccess/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_SNSTopicEncryption/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_SNSTopicPolicyAnyPrincipal/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_SQSOverlyPermissive/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_SQSPolicy/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_SQSQueueEncryption/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_SQSQueuePolicyAnyPrincipal/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_SSMDocumentsArePrivate/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_SSMParameterUsesCMK/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_SSMSessionManagerDocumentEncryption/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_SSMSessionManagerDocumentLogging/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_SagemakerDataQualityJobDefinitionEncryption/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_SagemakerDataQualityJobDefinitionTrafficEncryption/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_SagemakerDataQualityJobDefinitionVolumeEncryption/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_SagemakerDomainEncryptedWithCMK/ │ │ │ │ │ ├── aws_sagemaker_domain.tf │ │ │ │ │ └── aws_sagemaker_notebook_instance.tf │ │ │ │ ├── example_SagemakerFlowDefinitionUsesKMS/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_SagemakerModelWithNetworkIsolation/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_SagemakerNotebookInCustomVPC/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_SagemakerNotebookInstanceAllowsIMDSv2/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_SagemakerNotebookRoot/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_SchedulerScheduleUsesCMK/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_SecretManagerSecret90days/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_SecretManagerSecretEncrypted/ │ │ │ │ │ ├── main.tf │ │ │ │ │ └── tfplan.json │ │ │ │ ├── example_SecurityGroupRuleDescription/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_SecurityGroupUnrestrictedEgressAny/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_SecurityGroupUnrestrictedIngress22/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_SecurityGroupUnrestrictedIngress3389/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_SecurityGroupUnrestrictedIngress80/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_SecurityGroupUnrestrictedIngressAny/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_SesConfigurationSetDefinesTLS/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_StateMachineLoggingExecutionHistory/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_StateMachineXray/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_TimestreamDatabaseKMSKey/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_TransferServerAllowsOnlySecureProtocols/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_TransferServerIsPublic/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_TransferServerLatestPolicy/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_UnpatchedAuroraPostgresDB/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_WAFACLCVE202144228/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_WAFEnabled/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_WAFHasLogs/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_WAFRuleHasAnyActions/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_WafHasAnyRules/ │ │ │ │ │ ├── main.tf │ │ │ │ │ └── waf2.tf │ │ │ │ ├── example_WorkspaceRootVolumeEncrypted/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_WorkspaceUserVolumeEncrypted/ │ │ │ │ │ └── main.tf │ │ │ │ ├── test_ACMCertCreateBeforeDestroy.py │ │ │ │ ├── test_ACMCertSetLoggingPreference.py │ │ │ │ ├── test_ALBDesyncMode.py │ │ │ │ ├── test_ALBDropHttpHeaders.py │ │ │ │ ├── test_ALBListenerHTTPS.py │ │ │ │ ├── test_AMICopyIsEncrypted.py │ │ │ │ ├── test_AMICopyUsesCMK.py │ │ │ │ ├── test_AMIEncryption.py │ │ │ │ ├── test_AMILaunchIsShared.py │ │ │ │ ├── test_APIGatewayAccessLogging.py │ │ │ │ ├── test_APIGatewayAuthorization.py │ │ │ │ ├── test_APIGatewayCacheEnable.py │ │ │ │ ├── test_APIGatewayCreateBeforeDestroy.py │ │ │ │ ├── test_APIGatewayDeploymentCreateBeforeDestroy.py │ │ │ │ ├── test_APIGatewayDomainNameTLS.py │ │ │ │ ├── test_APIGatewayMethodSettingCacheEncrypted.py │ │ │ │ ├── test_APIGatewayMethodSettingsCacheEnabled.py │ │ │ │ ├── test_APIGatewayMethodSettingsDataTrace.py │ │ │ │ ├── test_APIGatewayV2RouteDefinesAuthorizationType.py │ │ │ │ ├── test_APIGatewayXray.py │ │ │ │ ├── test_AWSCodeGuruHasCMK.py │ │ │ │ ├── test_AppFlowConnectorProfileUsesCMK.py │ │ │ │ ├── test_AppFlowUsesCMK.py │ │ │ │ ├── test_AppSyncFieldLevelLogs.py │ │ │ │ ├── test_AppSyncLogging.py │ │ │ │ ├── test_AppsyncAPICacheEncryptionAtRest.py │ │ │ │ ├── test_AppsyncAPICacheEncryptionInTransit.py │ │ │ │ ├── test_AthenaDatabaseEncryption.py │ │ │ │ ├── test_AthenaWorkgroupConfiguration.py │ │ │ │ ├── test_AthenaWorkgroupEncryption.py │ │ │ │ ├── test_AuroraEncryption.py │ │ │ │ ├── test_AutoScalingGroupWithPublicAccess.py │ │ │ │ ├── test_AutoScalingLaunchTemplate.py │ │ │ │ ├── test_AutoScalingTagging.py │ │ │ │ ├── test_BackupVaultEncrypted.py │ │ │ │ ├── test_BatchJobIsNotPrivileged.py │ │ │ │ ├── test_BedrockAgentEncrypted.py │ │ │ │ ├── test_BedrockGuardrails.py │ │ │ │ ├── test_CloudFrontGeoRestrictionDisabled.py │ │ │ │ ├── test_CloudFrontResponseHeaderStrictTransportSecurity.py │ │ │ │ ├── test_CloudFrontTLS12.py │ │ │ │ ├── test_CloudWatchAlarmsEnabled.py │ │ │ │ ├── test_CloudWatchLogGroupKMSKey.py │ │ │ │ ├── test_CloudWatchLogGroupRetention.py │ │ │ │ ├── test_CloudWatchLogGroupRetentionYear.py │ │ │ │ ├── test_CloudformationStackNotificationArns.py │ │ │ │ ├── test_CloudfrontDistributionDefaultRoot.py │ │ │ │ ├── test_CloudfrontDistributionEnabled.py │ │ │ │ ├── test_CloudfrontDistributionEncryption.py │ │ │ │ ├── test_CloudfrontDistributionLogging.py │ │ │ │ ├── test_CloudfrontDistributionOriginFailover.py │ │ │ │ ├── test_CloudsearchDomainEnforceHttps.py │ │ │ │ ├── test_CloudsearchDomainTLS.py │ │ │ │ ├── test_CloudtrailDefinesSNSTopic.py │ │ │ │ ├── test_CloudtrailEnableLogging.py │ │ │ │ ├── test_CloudtrailEncryptedWithCMK.py │ │ │ │ ├── test_CloudtrailEventDataStoreUsesCMK.py │ │ │ │ ├── test_CloudtrailLogValidation.py │ │ │ │ ├── test_CloudtrailMultiRegion.py │ │ │ │ ├── test_CodeArtifactDomainEncryptedWithCMK.py │ │ │ │ ├── test_CodeBuildPrivilegedMode.py │ │ │ │ ├── test_CodeBuildProjectEncryption.py │ │ │ │ ├── test_CodePipelineArtifactsEncrypted.py │ │ │ │ ├── test_CodebuildHasLogs.py │ │ │ │ ├── test_CodebuildS3LogsEncrypted.py │ │ │ │ ├── test_CodebuildUsesCMK.py │ │ │ │ ├── test_CodecommitApprovalRulesRequireMin2.py │ │ │ │ ├── test_CognitoUnauthenticatedIdentities.py │ │ │ │ ├── test_ComprehendEntityRecognizerModelUsesCMK.py │ │ │ │ ├── test_ComprehendEntityRecognizerVolumeUsesCMK.py │ │ │ │ ├── test_ConfigConfigurationAggregator.py │ │ │ │ ├── test_ConnectInstanceKinesisVideoStreamStorageConfigUsesCMK.py │ │ │ │ ├── test_ConnectInstanceS3StorageConfigUsesCMK.py │ │ │ │ ├── test_DAXEncryption.py │ │ │ │ ├── test_DAXEndpointTLS.py │ │ │ │ ├── test_DBInstanceBackupRetentionPeriod.py │ │ │ │ ├── test_DBInstanceLogging.py │ │ │ │ ├── test_DBInstanceMinorUpgrade.py │ │ │ │ ├── test_DBSnapshotCopyUsesCMK.py │ │ │ │ ├── test_DBSnapshotsArePrivate.py │ │ │ │ ├── test_DLMEventsCrossRegionEncryption.py │ │ │ │ ├── test_DLMEventsCrossRegionEncryptionWithCMK.py │ │ │ │ ├── test_DLMScheduleCrossRegionEncryption.py │ │ │ │ ├── test_DLMScheduleCrossRegionEncryptionWithCMK.py │ │ │ │ ├── test_DMSEndpointUsesCMK.py │ │ │ │ ├── test_DMSReplicationInstanceEncryptedWithCMK.py │ │ │ │ ├── test_DMSReplicationInstanceMinorUpgrade.py │ │ │ │ ├── test_DMSReplicationInstancePubliclyAccessible.py │ │ │ │ ├── test_DMSS3UsesCMK.py │ │ │ │ ├── test_DatasyncLocationExposesSecrets.py │ │ │ │ ├── test_DeprecatedLambdaRuntime.py │ │ │ │ ├── test_DocDBAuditLogs.py │ │ │ │ ├── test_DocDBBackupRetention.py │ │ │ │ ├── test_DocDBEncryptedWithCMK.py │ │ │ │ ├── test_DocDBEncryption.py │ │ │ │ ├── test_DocDBGlobalClusterEncryption.py │ │ │ │ ├── test_DocDBLogging.py │ │ │ │ ├── test_DocDBTLS.py │ │ │ │ ├── test_DynamoDBTableReplicaKMSUsesCMK.py │ │ │ │ ├── test_DynamoDBTablesEncrypted.py │ │ │ │ ├── test_DynamodbRecovery.py │ │ │ │ ├── test_EBSDefaultEncryption.py │ │ │ │ ├── test_EBSEncryption.py │ │ │ │ ├── test_EBSSnapshotCopyEncryptedWithCMK.py │ │ │ │ ├── test_EBSVolumeEncryptedWithCMK.py │ │ │ │ ├── test_EC2Credentials.py │ │ │ │ ├── test_EC2DetailedMonitoringEnabled.py │ │ │ │ ├── test_EC2EBSOptimized.py │ │ │ │ ├── test_EC2PublicIP.py │ │ │ │ ├── test_ECRImageScanning.py │ │ │ │ ├── test_ECRImmutableTags.py │ │ │ │ ├── test_ECRPolicy.py │ │ │ │ ├── test_ECRRepositoryEncrypted.py │ │ │ │ ├── test_ECSClusterContainerInsights.py │ │ │ │ ├── test_ECSClusterLoggingEnabled.py │ │ │ │ ├── test_ECSClusterLoggingEncryptedWithCMK.py │ │ │ │ ├── test_ECSContainerHostProcess.py │ │ │ │ ├── test_ECSContainerPrivilege.py │ │ │ │ ├── test_ECSContainerReadOnlyRoot.py │ │ │ │ ├── test_ECSServiceFargateLatest.py │ │ │ │ ├── test_ECSServicePublicIP.py │ │ │ │ ├── test_ECSTaskDefinitionEFSVolumeEncryption.py │ │ │ │ ├── test_ECSTaskDefinitionRoleCheck.py │ │ │ │ ├── test_EFSAccessPointRoot.py │ │ │ │ ├── test_EFSAccessUserIdentity.py │ │ │ │ ├── test_EFSEncryptionEnabled.py │ │ │ │ ├── test_EFSFileSystemEncryptedWithCMK.py │ │ │ │ ├── test_EKSControlPlaneLogging.py │ │ │ │ ├── test_EKSNodeGroupRemoteAccess.py │ │ │ │ ├── test_EKSPlatformVersion.py │ │ │ │ ├── test_EKSPublicAccess.py │ │ │ │ ├── test_EKSPublicAccessCIDR.py │ │ │ │ ├── test_EKSSecretsEncryption.py │ │ │ │ ├── test_ELBAccessLogs.py │ │ │ │ ├── test_ELBCrossZoneEnable.py │ │ │ │ ├── test_ELBPolicyUsesSecureProtocols.py │ │ │ │ ├── test_ELBUsesSSL.py │ │ │ │ ├── test_ELBv2AccessLogs.py │ │ │ │ ├── test_ELBwListenerNotTLSSSL.py │ │ │ │ ├── test_EMRClusterConfEncryptsEBS.py │ │ │ │ ├── test_EMRClusterConfEncryptsInTransit.py │ │ │ │ ├── test_EMRClusterConfEncryptsLocalDisk.py │ │ │ │ ├── test_EMRClusterIsEncryptedKMS.py │ │ │ │ ├── test_EMRClusterKerberosAttributes.py │ │ │ │ ├── test_EMRPubliclyAccessible.py │ │ │ │ ├── test_Ec2TransitGatewayAutoAccept.py │ │ │ │ ├── test_ElastiCacheHasCustomSubnet.py │ │ │ │ ├── test_ElasticBeanstalkUseEnhancedHealthChecks.py │ │ │ │ ├── test_ElasticBeanstalkUseManagedUpdates.py │ │ │ │ ├── test_ElasticCacheAutomaticBackup.py │ │ │ │ ├── test_ElasticCacheAutomaticMinorUpgrades.py │ │ │ │ ├── test_ElasticCacheHasSecurityGroup.py │ │ │ │ ├── test_ElasticacheReplicationGroupEncryptedWithCMK.py │ │ │ │ ├── test_ElasticacheReplicationGroupEncryptionAtRest.py │ │ │ │ ├── test_ElasticacheReplicationGroupEncryptionAtTransit.py │ │ │ │ ├── test_ElasticacheReplicationGroupEncryptionAtTransitAuthToken.py │ │ │ │ ├── test_ElasticsearchDefaultSG.py │ │ │ │ ├── test_ElasticsearchDomainAuditLogging.py │ │ │ │ ├── test_ElasticsearchDomainEnforceHTTPS.py │ │ │ │ ├── test_ElasticsearchDomainHA.py │ │ │ │ ├── test_ElasticsearchDomainLogging.py │ │ │ │ ├── test_ElasticsearchEncryption.py │ │ │ │ ├── test_ElasticsearchEncryptionWithCMK.py │ │ │ │ ├── test_ElasticsearchInVPC.py │ │ │ │ ├── test_ElasticsearchNodeToNodeEncryption.py │ │ │ │ ├── test_ElasticsearchTLSPolicy.py │ │ │ │ ├── test_FSXOntapFSEncryptedWithCMK.py │ │ │ │ ├── test_FSXOpenZFSFileSystemEncryptedWithCMK.py │ │ │ │ ├── test_FSXWindowsFSEncryptedWithCMK.py │ │ │ │ ├── test_GlacierVaultAnyPrincipal.py │ │ │ │ ├── test_GlobalAcceleratorAcceleratorFlowLogs.py │ │ │ │ ├── test_GlueDataCatalogEncryption.py │ │ │ │ ├── test_GlueSecurityConfiguration.py │ │ │ │ ├── test_GlueSecurityConfigurationEnabled.py │ │ │ │ ├── test_GuarddutyDetectorEnabled.py │ │ │ │ ├── test_IAMAdminPolicyDocument.py │ │ │ │ ├── test_IAMCredentialsExposure.py │ │ │ │ ├── test_IAMDataExfiltration.py │ │ │ │ ├── test_IAMManagedAdminPolicy.py │ │ │ │ ├── test_IAMPermissionsManagement.py │ │ │ │ ├── test_IAMPolicyAttachedToGroupOrRoles.py │ │ │ │ ├── test_IAMPrivilegeEscalation.py │ │ │ │ ├── test_IAMRoleAllowAssumeFromAccount.py │ │ │ │ ├── test_IAMRoleAllowsPublicAssume.py │ │ │ │ ├── test_IAMStarActionPolicyDocument.py │ │ │ │ ├── test_IAMStarResourcePolicyDocument.py │ │ │ │ ├── test_IAMUserNotUsedForAccess.py │ │ │ │ ├── test_IAMUserRootAccessKeys.py │ │ │ │ ├── test_IAMWriteAccess.py │ │ │ │ ├── test_IMDSv1Disabled.py │ │ │ │ ├── test_ImagebuilderComponentEncryptedWithCMK.py │ │ │ │ ├── test_ImagebuilderDistributionConfigurationEncryptedWithCMK.py │ │ │ │ ├── test_ImagebuilderImageRecipeEBSEncrypted.py │ │ │ │ ├── test_KMSKeyIsEnabled.py │ │ │ │ ├── test_KMSKeyWildcardPrincipal.py │ │ │ │ ├── test_KMSRotation.py │ │ │ │ ├── test_KendraIndexSSEUsesCMK.py │ │ │ │ ├── test_KeyspacesTableUsesCMK.py │ │ │ │ ├── test_KinesisFirehoseDeliveryStreamSSE.py │ │ │ │ ├── test_KinesisFirehoseDeliveryStreamUsesCMK.py │ │ │ │ ├── test_KinesisStreamEncryptedWithCMK.py │ │ │ │ ├── test_KinesisStreamEncryptionType.py │ │ │ │ ├── test_KinesisVideoEncryptedWithCMK.py │ │ │ │ ├── test_LBCrossZone.py │ │ │ │ ├── test_LBDeletionProtection.py │ │ │ │ ├── test_LBTargetGroupDefinesHealthCheck.py │ │ │ │ ├── test_LambdaCodeSigningConfigured.py │ │ │ │ ├── test_LambdaDLQConfigured.py │ │ │ │ ├── test_LambdaEnvironmentCredentials.py │ │ │ │ ├── test_LambdaEnvironmentEncryptionSettings.py │ │ │ │ ├── test_LambdaFunctionIsNotPublic.py │ │ │ │ ├── test_LambdaFunctionLevelConcurrentExecutionLimit.py │ │ │ │ ├── test_LambdaFunctionURLAuth.py │ │ │ │ ├── test_LambdaInVPC.py │ │ │ │ ├── test_LambdaServicePermission.py │ │ │ │ ├── test_LambdaXrayEnabled.py │ │ │ │ ├── test_LaunchConfigurationEBSEncryption.py │ │ │ │ ├── test_LaunchTemplateMetadataHop.py │ │ │ │ ├── test_LustreFSEncryptedWithCMK.py │ │ │ │ ├── test_MQBrokerAuditLogging.py │ │ │ │ ├── test_MQBrokerEncryptedWithCMK.py │ │ │ │ ├── test_MQBrokerLogging.py │ │ │ │ ├── test_MQBrokerMinorAutoUpgrade.py │ │ │ │ ├── test_MQBrokerNotPubliclyExposed.py │ │ │ │ ├── test_MQBrokerVersion.py │ │ │ │ ├── test_MSKClusterEncryption.py │ │ │ │ ├── test_MSKClusterLogging.py │ │ │ │ ├── test_MSKClusterNodesArePrivate.py │ │ │ │ ├── test_MWAASchedulerLogsEnabled.py │ │ │ │ ├── test_MWAAWebserverLogsEnabled.py │ │ │ │ ├── test_MWAAWorkerLogsEnabled.py │ │ │ │ ├── test_MemoryDBClusterIntransitEncryption.py │ │ │ │ ├── test_MemoryDBEncryptionWithCMK.py │ │ │ │ ├── test_MemoryDBSnapshotEncryptionWithCMK.py │ │ │ │ ├── test_NeptuneClusterBackupRetention.py │ │ │ │ ├── test_NeptuneClusterEncryptedWithCMK.py │ │ │ │ ├── test_NeptuneClusterLogging.py │ │ │ │ ├── test_NeptuneDBClustersCopyTagsToSnapshots.py │ │ │ │ ├── test_NeptuneDBClustersIAMDatabaseAuthenticationEnabled.py │ │ │ │ ├── test_NeptuneInstancePublic.py │ │ │ │ ├── test_NeptuneSnapshotEncrypted.py │ │ │ │ ├── test_NeptuneSnapshotEncryptedWithCMK.py │ │ │ │ ├── test_NeptuneStorageEncrypted.py │ │ │ │ ├── test_NetworkACLUnrestricted.py │ │ │ │ ├── test_NetworkACLUnrestrictedIngress20.py │ │ │ │ ├── test_NetworkACLUnrestrictedIngress21.py │ │ │ │ ├── test_NetworkACLUnrestrictedIngress22.py │ │ │ │ ├── test_NetworkACLUnrestrictedIngress3389.py │ │ │ │ ├── test_NetworkFirewallDeletionProtection.py │ │ │ │ ├── test_NetworkFirewallPolicyDefinesCMK.py │ │ │ │ ├── test_NetworkFirewallUsesCMK.py │ │ │ │ ├── test_PasswordPolicyExpiration.py │ │ │ │ ├── test_PasswordPolicyLength.py │ │ │ │ ├── test_PasswordPolicyLowercaseLetter.py │ │ │ │ ├── test_PasswordPolicyNumber.py │ │ │ │ ├── test_PasswordPolicyReuse.py │ │ │ │ ├── test_PasswordPolicySymbol.py │ │ │ │ ├── test_PasswordPolicyUppercaseLetter.py │ │ │ │ ├── test_QLDBLedgerDeletionProtection.py │ │ │ │ ├── test_QLDBLedgerPermissionsMode.py │ │ │ │ ├── test_RDSCACertIsRecent.py │ │ │ │ ├── test_RDSClusterActivityStreamEncryptedWithCMK.py │ │ │ │ ├── test_RDSClusterAuditLogging.py │ │ │ │ ├── test_RDSClusterAuroraBacktrack.py │ │ │ │ ├── test_RDSClusterCopyTags.py │ │ │ │ ├── test_RDSClusterEncrypted.py │ │ │ │ ├── test_RDSClusterEncryptedWithCMK.py │ │ │ │ ├── test_RDSClusterIAMAuthentication.py │ │ │ │ ├── test_RDSClusterLogging.py │ │ │ │ ├── test_RDSClusterSnapshotEncrypted.py │ │ │ │ ├── test_RDSDeletionProtection.py │ │ │ │ ├── test_RDSEncryption.py │ │ │ │ ├── test_RDSEnhancedMonitorEnabled.py │ │ │ │ ├── test_RDSHasSecurityGroup.py │ │ │ │ ├── test_RDSIAMAuthentication.py │ │ │ │ ├── test_RDSInstanceAutoBackupEncryptionWithCMK.py │ │ │ │ ├── test_RDSInstanceDeletionProtection.py │ │ │ │ ├── test_RDSInstancePerfInsightsEncryptionWithCMK.py │ │ │ │ ├── test_RDSInstancePerformanceInsights.py │ │ │ │ ├── test_RDSMultiAZEnabled.py │ │ │ │ ├── test_RDSPostgreSQLLogFDWExtension.py │ │ │ │ ├── test_RDSPubliclyAccessible.py │ │ │ │ ├── test_RedShiftSSL.py │ │ │ │ ├── test_RedshiftClusterAllowVersionUpgrade.py │ │ │ │ ├── test_RedshiftClusterAutoSnap.py │ │ │ │ ├── test_RedshiftClusterDatabaseName.py │ │ │ │ ├── test_RedshiftClusterEncryption.py │ │ │ │ ├── test_RedshiftClusterKMSKey.py │ │ │ │ ├── test_RedshiftClusterLogging.py │ │ │ │ ├── test_RedshiftClusterPubliclyAccessible.py │ │ │ │ ├── test_RedshiftClusterUseEnhancedVPCRouting.py │ │ │ │ ├── test_RedshiftClusterWithCommonUsernameAndPublicAccess.py │ │ │ │ ├── test_RedshiftInEc2ClassicMode.py │ │ │ │ ├── test_RedshiftServerlessNamespaceKMSKey.py │ │ │ │ ├── test_RedshiftSnapshotCopyGrantEncryptedWithCMK.py │ │ │ │ ├── test_Route53TransferLock.py │ │ │ │ ├── test_S3AbortIncompleteUploads.py │ │ │ │ ├── test_S3AccessPointPubliclyAccessible.py │ │ │ │ ├── test_S3AllowsAnyPrincipal.py │ │ │ │ ├── test_S3BlockPublicACLs.py │ │ │ │ ├── test_S3BlockPublicPolicy.py │ │ │ │ ├── test_S3BucketObjectEncryptedWithCMK.py │ │ │ │ ├── test_S3BucketObjectLock.py │ │ │ │ ├── test_S3GlobalViewACL.py │ │ │ │ ├── test_S3IgnorePublicACLs.py │ │ │ │ ├── test_S3ObjectCopyEncryptedWithCMK.py │ │ │ │ ├── test_S3ProtectAgainstPolicyLockout.py │ │ │ │ ├── test_S3RestrictPublicBuckets.py │ │ │ │ ├── test_S3SecureDataTransport.py │ │ │ │ ├── test_SNSCrossAccountAccess.py │ │ │ │ ├── test_SNSTopicEncryption.py │ │ │ │ ├── test_SNSTopicPolicyAnyPrincipal.py │ │ │ │ ├── test_SQSOverlyPermissive.py │ │ │ │ ├── test_SQSPolicy.py │ │ │ │ ├── test_SQSQueueEncryption.py │ │ │ │ ├── test_SQSQueuePolicyAnyPrincipal.py │ │ │ │ ├── test_SSMDocumentsArePrivate.py │ │ │ │ ├── test_SSMParameterUsesCMK.py │ │ │ │ ├── test_SSMSessionManagerDocumentEncryption.py │ │ │ │ ├── test_SSMSessionManagerDocumentLogging.py │ │ │ │ ├── test_SageMakerInternetAccessDisabled.py │ │ │ │ ├── test_SagemakerDataQualityJobDefinitionEncryption.py │ │ │ │ ├── test_SagemakerDataQualityJobDefinitionTrafficEncryption.py │ │ │ │ ├── test_SagemakerDataQualityJobDefinitionVolumeEncryption.py │ │ │ │ ├── test_SagemakerDomainEncryptedWithCMK.py │ │ │ │ ├── test_SagemakerEndpoinConfigurationEncryption.py │ │ │ │ ├── test_SagemakerFlowDefinitionUsesKMS.py │ │ │ │ ├── test_SagemakerModelWithNetworkIsolation.py │ │ │ │ ├── test_SagemakerNotebookEncryption.py │ │ │ │ ├── test_SagemakerNotebookInCustomVPC.py │ │ │ │ ├── test_SagemakerNotebookInstanceAllowsIMDSv2.py │ │ │ │ ├── test_SagemakerNotebookRoot.py │ │ │ │ ├── test_SchedulerScheduleUsesCMK.py │ │ │ │ ├── test_SecretManagerSecret90days.py │ │ │ │ ├── test_SecretManagerSecretEncrypted.py │ │ │ │ ├── test_SecurityGroupRuleDescription.py │ │ │ │ ├── test_SecurityGroupUnrestrictedEgressAny.py │ │ │ │ ├── test_SecurityGroupUnrestrictedIngress22.py │ │ │ │ ├── test_SecurityGroupUnrestrictedIngress3389.py │ │ │ │ ├── test_SecurityGroupUnrestrictedIngress80.py │ │ │ │ ├── test_SecurityGroupUnrestrictedIngressAny.py │ │ │ │ ├── test_SesConfigurationSetDefinesTLS.py │ │ │ │ ├── test_StateMachineLoggingExecutionHistory.py │ │ │ │ ├── test_StateMachineXray.py │ │ │ │ ├── test_SubnetPublicIP.py │ │ │ │ ├── test_TimestreamDatabaseKMSKey.py │ │ │ │ ├── test_TransferServerAllowsOnlySecureProtocols.py │ │ │ │ ├── test_TransferServerIsPublic.py │ │ │ │ ├── test_TransferServerLatestPolicy.py │ │ │ │ ├── test_UnpatchedAuroraPostgresDB.py │ │ │ │ ├── test_VPCDefaultNetwork.py │ │ │ │ ├── test_VPCEndpointAcceptanceConfigured.py │ │ │ │ ├── test_WAFACLCVE202144228.py │ │ │ │ ├── test_WAFEnabled.py │ │ │ │ ├── test_WAFHasAnyRules.py │ │ │ │ ├── test_WAFHasLogs.py │ │ │ │ ├── test_WAFRuleHasAnyActions.py │ │ │ │ ├── test_WorkspaceRootVolumeEncrypted.py │ │ │ │ └── test_WorkspaceUserVolumeEncrypted.py │ │ │ ├── azure/ │ │ │ │ ├── __init__.py │ │ │ │ ├── example_ACRAdminAccountDisabled/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_ACRAnonymousPullDisabled/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_ACRContainerScanEnabled/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_ACRDedicatedDataEndpointEnabled/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_ACREnableImageQuarantine/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_ACREnableRetentionPolicy/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_ACREnableZoneRedundancy/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_ACRGeoreplicated/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_ACRPublicNetworkAccessDisabled/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_ACRUseSignedImages/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_AKSApiServerAuthorizedIpRanges/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_AKSDashboardDisabled/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_AKSEncryptionAtHostEnabled/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_AKSEphemeralOSDisks/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_AKSIsPaidSku/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_AKSLocalAdminDisabled/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_AKSMaxPodsMinimum/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_AKSNodePublicIpDisabled/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_AKSOnlyCriticalPodsOnSystemNodes/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_AKSPoolTypeIsScaleSet/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_AKSSecretStoreRotation/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_AKSUpgradeChannel/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_APIManagementBackendHTTPS/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_APIManagementCertsEnforced/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_APIManagementMinTLS12/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_APIManagementPublicAccess/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_AppConfigEncryption/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_AppConfigLocalAuth/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_AppConfigPublicAccess/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_AppConfigPurgeProtection/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_AppConfigSku/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_AppGWDefinesSecureProtocols/ │ │ │ │ │ ├── main.tf │ │ │ │ │ ├── terraform.auto.tfvars │ │ │ │ │ └── variables.tf │ │ │ │ ├── example_AppGWUsesHttps/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_AppGatewayWAFACLCVE202144228/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_AppServiceAlwaysOn/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_AppServiceAuthentication/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_AppServiceClientCertificate/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_AppServiceDetailedErrorMessagesEnabled/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_AppServiceDisallowCORS/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_AppServiceDotnetFrameworkVersion/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_AppServiceEnableFailedRequest/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_AppServiceEnvironmentZoneRedundant/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_AppServiceFTPSState/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_AppServiceHTTPSOnly/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_AppServiceHttpLoggingEnabled/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_AppServiceHttps20Enabled/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_AppServiceIdentity/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_AppServiceIdentityProviderEnabled/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_AppServiceInstanceMinimum/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_AppServiceJavaVersion/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_AppServiceMinTLSVersion/ │ │ │ │ │ ├── main.tf │ │ │ │ │ ├── terraform.tfvars │ │ │ │ │ └── variables.tf │ │ │ │ ├── example_AppServicePHPVersion/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_AppServicePlanZoneRedundant/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_AppServicePublicAccessDisabled/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_AppServicePythonVersion/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_AppServiceRemoteDebuggingNotEnabled/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_AppServiceSetHealthCheck/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_AppServiceSkuMinimum/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_AppServiceSlotDebugDisabled/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_AppServiceSlotHTTPSOnly/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_AppServiceSlotMinTLS/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_AppServiceUsedAzureFiles/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_AzureBatchAccountEndpointAccessDefaultAction/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_AzureContainerGroupDeployedIntoVirtualNetwork/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_AzureContainerInstanceEnvVarSecureValueType/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_AzureContainerInstancePublicIPAddressType/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_AzureDefenderDisabledForResManager/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_AzureFirewallDefinesPolicy/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_AzureFirewallDenyThreatIntelMode/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_AzureFirewallPolicyIDPSDeny/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_AzureFrontDoorEnablesWAF/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_AzureInstanceExtensions/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_AzureManagedDiskEncryption/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_AzureManagedDiskEncryptionSet/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_AzureSearchAllowedIPsNotGlobal/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_AzureSearchManagedIdentity/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_AzureSearchPublicNetworkAccessDisabled/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_AzureSearchSLAIndex/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_AzureSearchSLAQueryUpdates/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_AzureServicebusDoubleEncryptionEnabled/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_AzureServicebusHasCMK/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_AzureServicebusIdentityProviderEnabled/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_AzureServicebusLocalAuthDisabled/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_AzureServicebusMinTLSVersion/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_AzureServicebusPublicAccessDisabled/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_AzureSparkPoolIsolatedComputeEnabled/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_CDNDisableHttpEndpoints/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_CDNEnableHttpsEndpoints/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_CDNTLSProtocol12/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_CognitiveServicesConfigureIdentity/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_CognitiveServicesEnableLocalAuth/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_CosmosDBHaveCMK/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_CosmosDBLocalAuthDisabled/ │ │ │ │ │ └── CosmosDBLocalAuthDisabled.tf │ │ │ │ ├── example_DataExplorerSKUHasSLA/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_DataExplorerServiceIdentity/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_DataExplorerUsesDiskEncryption/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_DataFactoryUsesGitRepository/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_DatabricksWorkspaceIsNotPublic/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_EventHubNamespaceMinTLS12/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_EventHubNamespaceZoneRedundant/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_EventgridDomainIdentityProviderEnabled/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_EventgridDomainLocalAuthentication/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_EventgridDomainNetworkAccess/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_EventgridTopicIdentityProviderEnabled/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_EventgridTopicLocalAuthentication/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_EventgridTopicNetworkAccess/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_FrontDoorWAFACLCVE202144228/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_FunctionAppAccessibleOverHttps/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_FunctionAppAccessibleOverHttps_tfplan/ │ │ │ │ │ └── example_fua_for_fail_ckv_azure_70.tf │ │ │ │ ├── example_FunctionAppEnableLogging/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_FunctionAppHttpVersionLatest/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_FunctionAppMinTLSVersion/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_FunctionAppPublicAccessDisabled/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_GithubActionsOIDCTrustPolicy/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_KeyVaultDisablesPublicNetworkAccess/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_KubernetesClusterHTTPApplicationRouting/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_LinuxVMUsesSSH/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_MLCCLADisabled/ │ │ │ │ │ └── MLCCLADisabled.tf │ │ │ │ ├── example_MLComputeClusterMinNodes/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_MLPublicAccess/ │ │ │ │ │ └── MLPublicAccess.tf │ │ │ │ ├── example_MSSQLServerAuditPolicyLogMonitor/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_MySQLGeoBackupEnabled/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_NSGRuleHTTPAccessRestricted/ │ │ │ │ │ ├── dynamic_block_map_example/ │ │ │ │ │ │ ├── dynamic.tf │ │ │ │ │ │ ├── terraform.tfvars │ │ │ │ │ │ └── variables.tf │ │ │ │ │ └── main.tf │ │ │ │ ├── example_NSGRuleRDPAccessRestricted/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_NSGRuleSSHAccessRestricted/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_NSGRuleUDPAccessRestricted/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_OpenAICognitiveServicesRestrictOutboundNetwork/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_PostgreSQLFlexiServerGeoBackupEnabled/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_PostgreSQLMinTLSVersion/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_PostgreSQLServerLogRetentionEnabled/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_PubsubSKUSLA/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_PubsubSpecifyIdentity/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_RedisCacheMinTLSVersion/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_RedisCacheStandardReplicationEnabled/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_SQLDatabaseLedgerEnabled/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_SQLDatabaseZoneRedundant/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_SQLServerNoPublicAccess/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_SignalRSKUSLA/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_SpringCloudAPIPortalHTTPSOnly/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_SpringCloudAPIPortalPublicAccessIsDisabled/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_StorageAccountDefaultNetworkAccessDeny/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_StorageAccountDisablePublicAccess/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_StorageAccountName/ │ │ │ │ │ ├── azurecaf.tf │ │ │ │ │ └── main.tf │ │ │ │ ├── example_StorageAccountsTransportEncryption/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_StorageAccountsUseReplication/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_StorageBlobRestrictPublicAccess/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_StorageLocalUsers/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_StorageSyncServicePermissiveAccess/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_SynapseSQLPoolDataEncryption/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_SynapseWorkspaceAdministratorLoginPasswordHidden/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_SynapseWorkspaceCMKEncryption/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_SynapseWorkspaceEnablesDataExfilProtection/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_VMAgentIsInstalled/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_VMCredsInCustomData/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_VMDisablePasswordAuthentication/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_VMDiskWithPublicAccess/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_VMStorageOsDisk/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_VnetLocalDNS/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_VnetSingleDNSServer/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_WinVMAutomaticUpdates/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_WinVMEncryptionAtHost/ │ │ │ │ │ └── main.tf │ │ │ │ ├── test_ACRAdminAccountDisabled.py │ │ │ │ ├── test_ACRAnonymousPullDisabled.py │ │ │ │ ├── test_ACRContainerScanEnabled.py │ │ │ │ ├── test_ACRDedicatedDataEndpointEnabled.py │ │ │ │ ├── test_ACREnableImageQuarantine.py │ │ │ │ ├── test_ACREnableRetentionPolicy.py │ │ │ │ ├── test_ACREnableZoneRedundancy.py │ │ │ │ ├── test_ACRGeoreplicated.py │ │ │ │ ├── test_ACRPublicNetworkAccessDisabled.py │ │ │ │ ├── test_ACRUseSignedImages.py │ │ │ │ ├── test_AKSApiServerAuthorizedIpRanges.py │ │ │ │ ├── test_AKSDashboardDisabled.py │ │ │ │ ├── test_AKSEnablesPrivateClusters.py │ │ │ │ ├── test_AKSEncryptionAtHostEnabled.py │ │ │ │ ├── test_AKSEphemeralOSDisks.py │ │ │ │ ├── test_AKSIsPaidSku.py │ │ │ │ ├── test_AKSLocalAdminDisabled.py │ │ │ │ ├── test_AKSLoggingEnabled.py │ │ │ │ ├── test_AKSMaxPodsMinimum.py │ │ │ │ ├── test_AKSNetworkPolicy.py │ │ │ │ ├── test_AKSNodePublicIpDisabled.py │ │ │ │ ├── test_AKSOnlyCriticalPodsOnSystemNodes.py │ │ │ │ ├── test_AKSPoolTypeIsScaleSet.py │ │ │ │ ├── test_AKSRbacEnabled.py │ │ │ │ ├── test_AKSSecretStoreRotation.py │ │ │ │ ├── test_AKSUpgradeChannel.py │ │ │ │ ├── test_AKSUsesAzurePoliciesAddon.py │ │ │ │ ├── test_AKSUsesDiskEncryptionSet.py │ │ │ │ ├── test_APIManagementBackendHTTPS.py │ │ │ │ ├── test_APIManagementCertsEnforced.py │ │ │ │ ├── test_APIManagementMinTLS12.py │ │ │ │ ├── test_APIManagementPublicAccess.py │ │ │ │ ├── test_APIServicesUseVirtualNetwork.py │ │ │ │ ├── test_ActiveDirectoryUsedAuthenticationServiceFabric.py │ │ │ │ ├── test_AppConfigEncryption.py │ │ │ │ ├── test_AppConfigLocalAuth.py │ │ │ │ ├── test_AppConfigPublicAccess.py │ │ │ │ ├── test_AppConfigPurgeProtection.py │ │ │ │ ├── test_AppConfigSku.py │ │ │ │ ├── test_AppGWDefinesSecureProtocols.py │ │ │ │ ├── test_AppGWUsesHttps.py │ │ │ │ ├── test_AppGatewayWAFACLCVE202144228.py │ │ │ │ ├── test_AppServiceAlwaysOn.py │ │ │ │ ├── test_AppServiceAuthentication.py │ │ │ │ ├── test_AppServiceClientCertificate.py │ │ │ │ ├── test_AppServiceDetailedErrorMessagesEnabled.py │ │ │ │ ├── test_AppServiceDisallowedCORS.py │ │ │ │ ├── test_AppServiceDotnetFrameworkVersion.py │ │ │ │ ├── test_AppServiceEnableFailedRequest.py │ │ │ │ ├── test_AppServiceEnvironmentZoneRedundant.py │ │ │ │ ├── test_AppServiceFTPSState.py │ │ │ │ ├── test_AppServiceHTTPSOnly.py │ │ │ │ ├── test_AppServiceHttpLoggingEnabled.py │ │ │ │ ├── test_AppServiceHttps20Enabled.py │ │ │ │ ├── test_AppServiceIdentity.py │ │ │ │ ├── test_AppServiceIdentityProviderEnabled.py │ │ │ │ ├── test_AppServiceInstanceMinimum.py │ │ │ │ ├── test_AppServiceJavaVersion.py │ │ │ │ ├── test_AppServiceMinTLSVersion.py │ │ │ │ ├── test_AppServicePHPVersion.py │ │ │ │ ├── test_AppServicePlanZoneRedundant.py │ │ │ │ ├── test_AppServicePublicAccessDisabled.py │ │ │ │ ├── test_AppServicePythonVersion.py │ │ │ │ ├── test_AppServiceRemoteDebuggingNotEnabled.py │ │ │ │ ├── test_AppServiceSetHealthCheck.py │ │ │ │ ├── test_AppServiceSkuMinimum.py │ │ │ │ ├── test_AppServiceSlotDebugDisabled.py │ │ │ │ ├── test_AppServiceSlotHTTPSOnly.py │ │ │ │ ├── test_AppServiceSlotMinTLSVersion.py │ │ │ │ ├── test_AppServiceUsedAzureFiles.py │ │ │ │ ├── test_AutomationEncrypted.py │ │ │ │ ├── test_AzureBatchAccountEndpointAccessDefaultAction.py │ │ │ │ ├── test_AzureBatchAccountUsesKeyVaultEncryption.py │ │ │ │ ├── test_AzureContainerGroupDeployedIntoVirtualNetwork.py │ │ │ │ ├── test_AzureContainerInstanceEnvVarSecureValueType.py │ │ │ │ ├── test_AzureContainerInstancePublicIPAddressType.py │ │ │ │ ├── test_AzureDataExplorerDoubleEncryptionEnabled.py │ │ │ │ ├── test_AzureDefenderDisabledForResManager.py │ │ │ │ ├── test_AzureDefenderOnAppServices.py │ │ │ │ ├── test_AzureDefenderOnContainerRegistry.py │ │ │ │ ├── test_AzureDefenderOnKeyVaults.py │ │ │ │ ├── test_AzureDefenderOnKubernetes.py │ │ │ │ ├── test_AzureDefenderOnServers.py │ │ │ │ ├── test_AzureDefenderOnSqlServers.py │ │ │ │ ├── test_AzureDefenderOnSqlServersVMS.py │ │ │ │ ├── test_AzureDefenderOnStorage.py │ │ │ │ ├── test_AzureFirewallDefinesPolicy.py │ │ │ │ ├── test_AzureFirewallDenyThreatIntelMode.py │ │ │ │ ├── test_AzureFirewallPolicyIDPSDeny.py │ │ │ │ ├── test_AzureFrontDoorEnablesWAF.py │ │ │ │ ├── test_AzureInstanceExtensions.py │ │ │ │ ├── test_AzureInstancePassword.py │ │ │ │ ├── test_AzureManagedDiscEncryption.py │ │ │ │ ├── test_AzureManagedDiskEncryptionSet.py │ │ │ │ ├── test_AzureScaleSetPassword.py │ │ │ │ ├── test_AzureSearchAllowedIPsNotGlobal.py │ │ │ │ ├── test_AzureSearchManagedIdentity.py │ │ │ │ ├── test_AzureSearchPublicNetworkAccessDisabled.py │ │ │ │ ├── test_AzureSearchSLAIndex.py │ │ │ │ ├── test_AzureSearchSLAQueryUpdates.py │ │ │ │ ├── test_AzureServiceFabricClusterProtectionLevel.py │ │ │ │ ├── test_AzureServicebusDoubleEncryptionEnabled.py │ │ │ │ ├── test_AzureServicebusHasCMK.py │ │ │ │ ├── test_AzureServicebusIdentityProviderEnabled.py │ │ │ │ ├── test_AzureServicebusLocalAuthDisabled.py │ │ │ │ ├── test_AzureServicebusMinTLSVersion.py │ │ │ │ ├── test_AzureServicebusPublicAccessDisabled.py │ │ │ │ ├── test_AzureSparkPoolIsolatedComputeEnabled.py │ │ │ │ ├── test_CDNDisableHttpEndpoints.py │ │ │ │ ├── test_CDNEnableHttpsEndpoints.py │ │ │ │ ├── test_CDNTLSProtocol12.py │ │ │ │ ├── test_CognitiveServicesConfigureIdentity.py │ │ │ │ ├── test_CognitiveServicesDisablesPublicNetwork.py │ │ │ │ ├── test_CognitiveServicesEnableLocalAuth.py │ │ │ │ ├── test_CosmosDBAccountsRestrictedAccess.py │ │ │ │ ├── test_CosmosDBDisableAccessKeyWrite.py │ │ │ │ ├── test_CosmosDBDisablesPublicNetwork.py │ │ │ │ ├── test_CosmosDBHaveCMK.py │ │ │ │ ├── test_CosmosDBLocalAuthDisabled.py │ │ │ │ ├── test_CustomRoleDefinitionSubscriptionOwner.py │ │ │ │ ├── test_DataExplorerSKUHasSLA.py │ │ │ │ ├── test_DataExplorerServiceIdentity.py │ │ │ │ ├── test_DataExplorerUsesDiskEncryption.py │ │ │ │ ├── test_DataFactoryNoPublicNetworkAccess.py │ │ │ │ ├── test_DataFactoryUsesGitRepository.py │ │ │ │ ├── test_DataLakeStoreEncryption.py │ │ │ │ ├── test_DatabricksWorkspaceIsNotPublic.py │ │ │ │ ├── test_EventHubNamespaceMinTLS12.py │ │ │ │ ├── test_EventHubNamespaceZoneRedundant.py │ │ │ │ ├── test_EventgridDomainIdentityProviderEnabled.py │ │ │ │ ├── test_EventgridDomainLocalAuthentication.py │ │ │ │ ├── test_EventgridDomainNetworkAccess.py │ │ │ │ ├── test_EventgridTopicIdentityProviderEnabled.py │ │ │ │ ├── test_EventgridTopicLocalAuthentication.py │ │ │ │ ├── test_EventgridTopicNetworkAccess.py │ │ │ │ ├── test_FrontDoorWAFACLCVE202144228.py │ │ │ │ ├── test_FrontdoorUseWAFMode.py │ │ │ │ ├── test_FunctionAppDisallowCORS.py │ │ │ │ ├── test_FunctionAppEnableLogging.py │ │ │ │ ├── test_FunctionAppHttpVersionLatest.py │ │ │ │ ├── test_FunctionAppMinTLSVersion.py │ │ │ │ ├── test_FunctionAppPublicAccessDisabled.py │ │ │ │ ├── test_FunctionAppsAccessibleOverHttps.py │ │ │ │ ├── test_FunctionAppsEnableAuthentication.py │ │ │ │ ├── test_GithubActionsOIDCTrustPolicy.py │ │ │ │ ├── test_IoTNoPublicNetworkAccess.py │ │ │ │ ├── test_KeyBackedByHSM.py │ │ │ │ ├── test_KeyExpirationDate.py │ │ │ │ ├── test_KeyVaultDisablesPublicNetworkAccess.py │ │ │ │ ├── test_KeyVaultEnablesFirewallRulesSettings.py │ │ │ │ ├── test_KeyVaultEnablesPurgeProtection.py │ │ │ │ ├── test_KeyVaultEnablesSoftDelete.py │ │ │ │ ├── test_KeyVaultRecoveryEnabled.py │ │ │ │ ├── test_KubernetesClusterHTTPApplicationRouting.py │ │ │ │ ├── test_LinuxVMUsesSSH.py │ │ │ │ ├── test_MLCCLADisabled.py │ │ │ │ ├── test_MLComputeClusterMinNodes.py │ │ │ │ ├── test_MLPublicAccess.py │ │ │ │ ├── test_MSSQLServerAuditPolicyLogMonitor.py │ │ │ │ ├── test_MSSQLServerMinTLSVersion.py │ │ │ │ ├── test_MariaDBGeoBackupEnabled.py │ │ │ │ ├── test_MariaDBPublicAccessDisabled.py │ │ │ │ ├── test_MariaDBSSLEnforcementEnabled.py │ │ │ │ ├── test_MonitorLogProfileCategories.py │ │ │ │ ├── test_MonitorLogProfileRetentionDays.py │ │ │ │ ├── test_MySQLEncryptionEnabled.py │ │ │ │ ├── test_MySQLGeoBackupEnabled.py │ │ │ │ ├── test_MySQLPublicAccessDisabled.py │ │ │ │ ├── test_MySQLServerMinTLSVersion.py │ │ │ │ ├── test_MySQLServerSSLEnforcementEnabled.py │ │ │ │ ├── test_MySQLTreatDetectionEnabled.py │ │ │ │ ├── test_NSGRuleHTTPAccessRestricted.py │ │ │ │ ├── test_NSGRuleRDPAccessRestricted.py │ │ │ │ ├── test_NSGRuleSSHAccessRestricted.py │ │ │ │ ├── test_NSGRuleUDPAccessRestricted.py │ │ │ │ ├── test_NetworkInterfaceEnableIPForwarding.py │ │ │ │ ├── test_NetworkWatcherFlowLogPeriod.py │ │ │ │ ├── test_OpenAICognitiveServicesRestrictedOutboundNetwork.py │ │ │ │ ├── test_PostgreSQLEncryptionEnabled.py │ │ │ │ ├── test_PostgreSQLFlexiServerGeoBackupEnabled.py │ │ │ │ ├── test_PostgreSQLMinTLSVersion.py │ │ │ │ ├── test_PostgreSQLServerConnectionThrottlingEnabled.py │ │ │ │ ├── test_PostgreSQLServerLogCheckpointEnabled.py │ │ │ │ ├── test_PostgreSQLServerLogConnectionsEnabled.py │ │ │ │ ├── test_PostgreSQLServerLogRetentionEnabled.py │ │ │ │ ├── test_PostgreSQLServerPublicAccessDisabled.py │ │ │ │ ├── test_PostgreSQLServerSSLEnforcementEnabled.py │ │ │ │ ├── test_PostgresSQLGeoBackupEnabled.py │ │ │ │ ├── test_PostgresSQLTreatDetectionEnabled.py │ │ │ │ ├── test_PubsubSKUSLA.py │ │ │ │ ├── test_PubsubSpecifyIdentity.py │ │ │ │ ├── test_RedisCacheEnableNonSSLPort.py │ │ │ │ ├── test_RedisCacheMinTLSVersion.py │ │ │ │ ├── test_RedisCachePublicNetworkAccessEnabled.py │ │ │ │ ├── test_RedisCacheStandardReplicationEnabled.py │ │ │ │ ├── test_SQLDatabaseLedgerEnabled.py │ │ │ │ ├── test_SQLDatabaseZoneRedundant.py │ │ │ │ ├── test_SQLServerEmailAlertsEnabled.py │ │ │ │ ├── test_SQLServerEmailAlertsToAdminsEnabled.py │ │ │ │ ├── test_SQLServerNoPublicAccess.py │ │ │ │ ├── test_SQLServerPublicAccessDisabled.py │ │ │ │ ├── test_SQLServerThreatDetectionTypes.py │ │ │ │ ├── test_SecretContentType.py │ │ │ │ ├── test_SecretExpirationDate.py │ │ │ │ ├── test_SecurityCenterContactEmails.py │ │ │ │ ├── test_SecurityCenterContactPhone.py │ │ │ │ ├── test_SecurityCenterEmailAlert.py │ │ │ │ ├── test_SecurityCenterEmailAlertAdmins.py │ │ │ │ ├── test_SecurityCenterStandardPricing.py │ │ │ │ ├── test_SignalRSJUSLA.py │ │ │ │ ├── test_SpringCloudAPIPortalHTTPSOnly.py │ │ │ │ ├── test_SpringCloudAPIPortalPublicAccessIsDisabled.py │ │ │ │ ├── test_StorageAccountAzureServicesAccessEnabled.py │ │ │ │ ├── test_StorageAccountDefaultNetworkAccessDeny.py │ │ │ │ ├── test_StorageAccountDisablePublicAccess.py │ │ │ │ ├── test_StorageAccountLoggingQueueServiceEnabled.py │ │ │ │ ├── test_StorageAccountMinimumTlsVersion.py │ │ │ │ ├── test_StorageAccountName.py │ │ │ │ ├── test_StorageAccountsTransportEncryption.py │ │ │ │ ├── test_StorageAccountsUseReplication.py │ │ │ │ ├── test_StorageBlobRestrictPublicAccess.py │ │ │ │ ├── test_StorageBlobServiceContainerPrivateAccess.py │ │ │ │ ├── test_StorageLocalUsers.py │ │ │ │ ├── test_StorageSyncPublicAccessDisabled.py │ │ │ │ ├── test_StorageSyncServicePermissiveAccess.py │ │ │ │ ├── test_SynapseSQLPoolDataEncryption.py │ │ │ │ ├── test_SynapseWorkspaceAdministratorLoginPasswordHidden.py │ │ │ │ ├── test_SynapseWorkspaceCMKEncryption.py │ │ │ │ ├── test_SynapseWorkspaceEnablesDataExfilProtection.py │ │ │ │ ├── test_SynapseWorkspaceEnablesManagedVirtualNetworks.py │ │ │ │ ├── test_VMAgentIsInstalled.py │ │ │ │ ├── test_VMCredsInCustomData.py │ │ │ │ ├── test_VMDisablePasswordAuthentication.py │ │ │ │ ├── test_VMDiskWithPublicAccess.py │ │ │ │ ├── test_VMEncryptionAtHostEnabled.py │ │ │ │ ├── test_VMScaleSetsAutoOSImagePatchingEnabled.py │ │ │ │ ├── test_VMStorageOsDisk.py │ │ │ │ ├── test_VnetLocalDNS.py │ │ │ │ ├── test_VnetSingleDNSServer.py │ │ │ │ ├── test_WAFSpecifiedModeAppGW.py │ │ │ │ ├── test_WinVMAutomaticUpdates.py │ │ │ │ └── test_WinVMEncryptionAtHost.py │ │ │ ├── digitalocean/ │ │ │ │ ├── __init__.py │ │ │ │ ├── example_DropletSSHKeys/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_FirewallIngressOpen/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_SpaceBucketPublicRead/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_SpaceBucketVersioning/ │ │ │ │ │ └── main.tf │ │ │ │ ├── test_DropletSSHKeys.py │ │ │ │ ├── test_FirewallIngressOpen.py │ │ │ │ ├── test_SpaceBucketPublicRead.py │ │ │ │ └── test_SpaceBucketVersioning.py │ │ │ ├── gcp/ │ │ │ │ ├── __init__.py │ │ │ │ ├── example_ArtifactRegistryEncryptedWithCMK/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_ArtifactRegistryPrivateRepo/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_BigQueryDatasetEncryptedWithCMK/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_BigQueryPrivateTable/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_BigQueryTableDeletionProtection/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_BigQueryTableEncryptedWithCMK/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_BigTableInstanceDeletionProtection/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_BigTableInstanceEncryptedWithCMK/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_CloudArmorWAFACLCVE202144228/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_CloudBuildWorkersArePrivate/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_CloudFunctionPermissiveIngress/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_CloudFunctionsShouldNotBePublic/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_CloudMySqlLocalInfileOff/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_CloudPostgreSQLLogDisconnection/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_CloudPostgreSQLLogMinMessage/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_CloudPostgreSQLLogTemp/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_CloudPostgreSqlLogLockWaits/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_CloudPostgreSqlLogMinDuration/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_CloudPostgreSqlLogStatement/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_CloudPubSubEncryptedWithCMK/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_CloudSQLServerContainerDBAuthentication/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_CloudSQLServerCrossDBOwnershipChaining/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_CloudSQLServerNoPublicIP/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_CloudSqlMajorVersion/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_CloudStorageSelfLogging/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_CloudStorageVersioningEnabled/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_DataFusionPrivateInstance/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_DataFusionStackdriverLogs/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_DataFusionStackdriverMonitoring/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_DataflowJobEncryptedWithCMK/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_DataflowPrivateJob/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_DataprocClusterEncryptedWithCMK/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_DataprocPrivateCluster/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_DataprocPublicIpCluster/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_GCPCloudRunPrivateService/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_GKEDontUseNodePools/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_GKENetworkPolicyEnabled/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_GKEPodSecurityPolicyEnabled/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_GKEUseCosImage/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_GithubActionsOIDCTrustPolicy/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_GoogleBigQueryDatasetPublicACL/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_GoogleCloudPostgreSqlEnablePgaudit/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_GoogleCloudPostgreSqlLogCheckpoints/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_GoogleCloudPostgreSqlLogConnection/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_GoogleCloudPostgreSqlLogHostname/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_GoogleCloudPostgreSqlLogMinErrorStatement/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_GoogleCloudSqlDatabasePubliclyAccessible/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_GoogleComputeBootDiskEncryption/ │ │ │ │ │ ├── bad.json │ │ │ │ │ └── example1.tf │ │ │ │ ├── example_GoogleComputeDefaultServiceAccount/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_GoogleComputeDefaultServiceAccountFullAccess/ │ │ │ │ │ ├── bad.json │ │ │ │ │ └── main.tf │ │ │ │ ├── example_GoogleComputeExternalIP/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_GoogleComputeFirewallUnrestrictedIngress20/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_GoogleComputeFirewallUnrestrictedIngress21/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_GoogleComputeFirewallUnrestrictedIngress22/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_GoogleComputeFirewallUnrestrictedIngress3306/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_GoogleComputeFirewallUnrestrictedIngress80/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_GoogleComputeProjectOSLogin/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_GoogleFolderBasicRole/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_GoogleIAMWorkloadIdentityConditional/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_GoogleKMSKeyIsPublic/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_GoogleKMSPreventDestroy/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_GoogleKMSRotationPeriod/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_GoogleOrgBasicRole/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_GoogleProjectBasicRole/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_GoogleStorageBucketUniformAccess/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_GoogleStoragePublicAccessPrevention/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_GoogleSubnetworkIPV6PrivateGoogleEnabled/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_GoogleSubnetworkLoggingEnabled/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_GoogleSubnetworkPrivateGoogleEnabled/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_GoogleVertexAINotebookShieldedVM/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_MemorystoreForRedisAuthEnabled/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_MemorystoreForRedisInTransitEncryption/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_PubSubPrivateTopic/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_SpannerDatabaseDeletionProtection/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_SpannerDatabaseDropProtection/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_SpannerDatabaseEncryptedWithCMK/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_VertexAIDatasetEncryptedWithCMK/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_VertexAIMetadataStoreEncryptedWithCMK/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_VertexAINotebookEnsureIntegrityMonitoring/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_VertexAIPrivateInstance/ │ │ │ │ │ └── main.tf │ │ │ │ ├── test_ArtifactRegistryEncryptedWithCMK.py │ │ │ │ ├── test_ArtifactRegistryPrivateRepo.py │ │ │ │ ├── test_BigQueryDatasetEncryptedWithCMK.py │ │ │ │ ├── test_BigQueryPrivateTable.py │ │ │ │ ├── test_BigQueryTableDeletionProtection.py │ │ │ │ ├── test_BigQueryTableEncryptedWithCMK.py │ │ │ │ ├── test_BigTableInstanceDeletionProtection.py │ │ │ │ ├── test_BigTableInstanceEncryptedWithCMK.py │ │ │ │ ├── test_CloudArmorWAFACLCVE202144228.py │ │ │ │ ├── test_CloudBuildWorkerArePrivate.py │ │ │ │ ├── test_CloudFunctionPermissiveIngress.py │ │ │ │ ├── test_CloudFunctionsShouldNotbePublic.py │ │ │ │ ├── test_CloudPubSubEncryptedWithCMK.py │ │ │ │ ├── test_CloudSqlMajorVersion.py │ │ │ │ ├── test_CloudStorageLogging.py │ │ │ │ ├── test_CloudStorageSelfLogging.py │ │ │ │ ├── test_DataFusionPrivateInstance.py │ │ │ │ ├── test_DataFusionStackdriverLogs.py │ │ │ │ ├── test_DataFusionStackdriverMonitoring.py │ │ │ │ ├── test_DataflowJobEncryptedWithCMK.py │ │ │ │ ├── test_DataflowPrivateJob.py │ │ │ │ ├── test_DataprocClusterEncryptedWithCMK.py │ │ │ │ ├── test_DataprocPrivateCluster.py │ │ │ │ ├── test_DataprocPublicIpCluster.py │ │ │ │ ├── test_GCPCloudRunPrivateService.py │ │ │ │ ├── test_GKEAliasIpEnabled.py │ │ │ │ ├── test_GKEBinaryAuthorization/ │ │ │ │ │ └── main.tf │ │ │ │ ├── test_GKEBinaryAuthorization.py │ │ │ │ ├── test_GKEClientCertificateDisabled.py │ │ │ │ ├── test_GKEClusterLogging.py │ │ │ │ ├── test_GKEDisableLegacyAuth.py │ │ │ │ ├── test_GKEDontUseNodePools.py │ │ │ │ ├── test_GKEEnableShieldedNodes/ │ │ │ │ │ └── main.tf │ │ │ │ ├── test_GKEEnableShieldedNodes.py │ │ │ │ ├── test_GKEEnableVPCFlowLogs/ │ │ │ │ │ └── main.tf │ │ │ │ ├── test_GKEEnableVPCFlowLogs.py │ │ │ │ ├── test_GKEEnsureIntegrityMonitoring/ │ │ │ │ │ └── main.tf │ │ │ │ ├── test_GKEEnsureIntegrityMonitoring.py │ │ │ │ ├── test_GKEHasLabels.py │ │ │ │ ├── test_GKEKubernetesRBACGoogleGroups/ │ │ │ │ │ └── main.tf │ │ │ │ ├── test_GKEKubernetesRBACGoogleGroups.py │ │ │ │ ├── test_GKEMasterAuthorizedNetworksEnabled.py │ │ │ │ ├── test_GKEMetadataServerIsEnabled.py │ │ │ │ ├── test_GKEMetadataServerisEnabled/ │ │ │ │ │ └── main.tf │ │ │ │ ├── test_GKEMonitoringEnabled.py │ │ │ │ ├── test_GKENetworkPolicyEnabled.py │ │ │ │ ├── test_GKENodePoolAutoRepairEnabled.py │ │ │ │ ├── test_GKENodePoolAutoUpgradeEnabled.py │ │ │ │ ├── test_GKEPodSecurityPolicyEnabled.py │ │ │ │ ├── test_GKEPrivateClusterConfig.py │ │ │ │ ├── test_GKEPrivateNodes/ │ │ │ │ │ └── main.tf │ │ │ │ ├── test_GKEPrivateNodes.py │ │ │ │ ├── test_GKEPublicControlPlane.py │ │ │ │ ├── test_GKEReleaseChannel/ │ │ │ │ │ └── main.tf │ │ │ │ ├── test_GKEReleaseChannel.py │ │ │ │ ├── test_GKESecureBootforShieldedNodes/ │ │ │ │ │ └── main.tf │ │ │ │ ├── test_GKESecureBootforShieldedNodes.py │ │ │ │ ├── test_GKEUseCosImage.py │ │ │ │ ├── test_GithubActionsOIDCTrustPolicy.py │ │ │ │ ├── test_GoogleBigQueryDatasetPublicACL.py │ │ │ │ ├── test_GoogleCloudDNSKeySpecsRSASHA1.py │ │ │ │ ├── test_GoogleCloudDNSSECEnabled/ │ │ │ │ │ └── main.tf │ │ │ │ ├── test_GoogleCloudDNSSECEnabled.py │ │ │ │ ├── test_GoogleCloudMySqlLocalInfileOff.py │ │ │ │ ├── test_GoogleCloudPostgreSqlEnablePgaudit.py │ │ │ │ ├── test_GoogleCloudPostgreSqlLogCheckpoints.py │ │ │ │ ├── test_GoogleCloudPostgreSqlLogConnection.py │ │ │ │ ├── test_GoogleCloudPostgreSqlLogDisconnection.py │ │ │ │ ├── test_GoogleCloudPostgreSqlLogHostname.py │ │ │ │ ├── test_GoogleCloudPostgreSqlLogLockWaits.py │ │ │ │ ├── test_GoogleCloudPostgreSqlLogMinDuration.py │ │ │ │ ├── test_GoogleCloudPostgreSqlLogMinErrorStatement.py │ │ │ │ ├── test_GoogleCloudPostgreSqlLogMinMessage.py │ │ │ │ ├── test_GoogleCloudPostgreSqlLogStatement.py │ │ │ │ ├── test_GoogleCloudPostgreSqlLogTemp.py │ │ │ │ ├── test_GoogleCloudSqlBackupConfiguration.py │ │ │ │ ├── test_GoogleCloudSqlDatabasePublicallyAccessible.py │ │ │ │ ├── test_GoogleCloudSqlDatabaseRequireSsl.py │ │ │ │ ├── test_GoogleCloudSqlServerContainedDBAuthentication.py │ │ │ │ ├── test_GoogleCloudSqlServerCrossDBOwnershipChaining.py │ │ │ │ ├── test_GoogleCloudSqlServerNoPublicIP.py │ │ │ │ ├── test_GoogleComputeBlockProjectSSH/ │ │ │ │ │ ├── google_compute_instance.tf │ │ │ │ │ ├── google_compute_instance_from_template.tf │ │ │ │ │ └── google_compute_instance_template.tf │ │ │ │ ├── test_GoogleComputeBlockProjectSSH.py │ │ │ │ ├── test_GoogleComputeBootDiskEncryption.py │ │ │ │ ├── test_GoogleComputeDefaultServiceAccount.py │ │ │ │ ├── test_GoogleComputeDefaultServiceAccountFullAccess.py │ │ │ │ ├── test_GoogleComputeDiskEncryption.py │ │ │ │ ├── test_GoogleComputeExternalIP.py │ │ │ │ ├── test_GoogleComputeFirewallUnrestrictedIngress20.py │ │ │ │ ├── test_GoogleComputeFirewallUnrestrictedIngress21.py │ │ │ │ ├── test_GoogleComputeFirewallUnrestrictedIngress22.py │ │ │ │ ├── test_GoogleComputeFirewallUnrestrictedIngress3306.py │ │ │ │ ├── test_GoogleComputeFirewallUnrestrictedIngress3389.py │ │ │ │ ├── test_GoogleComputeFirewallUnrestrictedIngress80.py │ │ │ │ ├── test_GoogleComputeIPForward.py │ │ │ │ ├── test_GoogleComputeInstanceOSLogin.py │ │ │ │ ├── test_GoogleComputeProjectOSLogin.py │ │ │ │ ├── test_GoogleComputeSSLPolicy.py │ │ │ │ ├── test_GoogleComputeSerialPorts.py │ │ │ │ ├── test_GoogleComputeShieldedVM.py │ │ │ │ ├── test_GoogleFolderBasicRole.py │ │ │ │ ├── test_GoogleFolderImpersonationRolesd.py │ │ │ │ ├── test_GoogleFolderMemberDefaultServiceAccount.py │ │ │ │ ├── test_GoogleIAMWorkloadIdentityConditional.py │ │ │ │ ├── test_GoogleKMSKeyIsPublic.py │ │ │ │ ├── test_GoogleKMSKeyRotationPeriod.py │ │ │ │ ├── test_GoogleKMSPreventDestroy.py │ │ │ │ ├── test_GoogleOrgBasicRole.py │ │ │ │ ├── test_GoogleOrgImpersonationRolest.py │ │ │ │ ├── test_GoogleOrgMemberDefaultServiceAccount.py │ │ │ │ ├── test_GoogleProjectAdminServiceAccount.py │ │ │ │ ├── test_GoogleProjectBasicRole.py │ │ │ │ ├── test_GoogleProjectDefaultNetwork.py │ │ │ │ ├── test_GoogleProjectImpersonationRoles.py │ │ │ │ ├── test_GoogleProjectMemberDefaultServiceAccount.py │ │ │ │ ├── test_GoogleRoleServiceAccountUser.py │ │ │ │ ├── test_GoogleStorageBucketNotPublic.py │ │ │ │ ├── test_GoogleStorageBucketUniformAccess.py │ │ │ │ ├── test_GoogleStoragePublicAccessPrevention.py │ │ │ │ ├── test_GoogleStorageVersioningEnabled.py │ │ │ │ ├── test_GoogleSubnetworkIPV6PrivateGoogleEnabled.py │ │ │ │ ├── test_GoogleSubnetworkLoggingEnabled.py │ │ │ │ ├── test_GoogleSubnetworkPrivateGoogleEnabled.py │ │ │ │ ├── test_GoogleVertexAINotebookShieldedVM.py │ │ │ │ ├── test_MemorystoreForRedisAuthEnabled.py │ │ │ │ ├── test_MemorystoreForRedisInTransitEncryption.py │ │ │ │ ├── test_PubSubPrivateTopic.py │ │ │ │ ├── test_SpannerDatabaseDeletionProtection.py │ │ │ │ ├── test_SpannerDatabaseDropProtection.py │ │ │ │ ├── test_SpannerDatabaseEncryptedWithCMK.py │ │ │ │ ├── test_VertexAIDatasetEncryptedWithCMK.py │ │ │ │ ├── test_VertexAIMetadataStoreEncryptedWithCMK.py │ │ │ │ ├── test_VertexAINotebookEnsureIntegrityMonitoring.py │ │ │ │ └── test_VertexAIPrivateInstance.py │ │ │ ├── github/ │ │ │ │ ├── __init__.py │ │ │ │ ├── example_BranchProtectionRequireSignedCommits/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_BranchProtectionReviewNumTwo/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_RepositoryEnableVulnerabilityAlerts/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_SecretsEncrypted/ │ │ │ │ │ └── main.tf │ │ │ │ ├── test_BranchProtectionRequiredSignedCommits.py │ │ │ │ ├── test_BranchProtectionReviewNumTwo.py │ │ │ │ ├── test_PrivateRepo.py │ │ │ │ ├── test_RepositoryVulnerabilityAlerts.py │ │ │ │ ├── test_SecretsEncrypted.py │ │ │ │ └── test_WebhookInsecureSsl.py │ │ │ ├── gitlab/ │ │ │ │ ├── __init__.py │ │ │ │ ├── example_ForcePushDisabled/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_PreventSecretsEnabled/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_RejectUnsignedCommits/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_RequireTwoApprovalsToMerge/ │ │ │ │ │ └── main.tf │ │ │ │ ├── test_ForcePushDisabled.py │ │ │ │ ├── test_PreventSecretsEnabled.py │ │ │ │ ├── test_RejectUnsignedCommits.py │ │ │ │ └── test_RequireTwoApprovalsToMerge.py │ │ │ ├── kubernetes/ │ │ │ │ ├── __init__.py │ │ │ │ ├── example_AllowPrivilegeEscalation/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_AllowPrivilegeEscalationPSP/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_AllowedCapabilities/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_AllowedCapabilitiesPSP/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_AllowedCapabilitiesSysAdmin/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_CPULimits/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_CPURequests/ │ │ │ │ │ ├── main.tf │ │ │ │ │ ├── main2.tf │ │ │ │ │ └── main3.tf │ │ │ │ ├── example_ContainerSecurityContext/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_DangerousGitSync/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_DefaultNamespace/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_DefaultServiceAccount/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_DefaultServiceAccountBinding/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_DockerSocketVolume/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_DropCapabilities/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_DropCapabilitiesPSP/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_HostPort/ │ │ │ │ │ ├── main.tf │ │ │ │ │ └── main3.tf │ │ │ │ ├── example_ImageDigest/ │ │ │ │ │ ├── main.tf │ │ │ │ │ └── main3.tf │ │ │ │ ├── example_ImagePullPolicyAlways/ │ │ │ │ │ ├── main.tf │ │ │ │ │ └── main3.tf │ │ │ │ ├── example_ImageTagFixed/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_LivenessProbe/ │ │ │ │ │ ├── main.tf │ │ │ │ │ └── main3.tf │ │ │ │ ├── example_MemoryLimits/ │ │ │ │ │ ├── main.tf │ │ │ │ │ ├── main2.tf │ │ │ │ │ └── main3.tf │ │ │ │ ├── example_MemoryRequests/ │ │ │ │ │ ├── main.tf │ │ │ │ │ ├── main2.tf │ │ │ │ │ └── main3.tf │ │ │ │ ├── example_MinimiseCapabilities/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_MinimiseCapabilitiesPSP/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_PodSecurityContext/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_PrivilegedContainers/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_PrivilegedContainersPSP/ │ │ │ │ │ └── psp.tf │ │ │ │ ├── example_ReadinessProbe/ │ │ │ │ │ ├── main.tf │ │ │ │ │ └── main3.tf │ │ │ │ ├── example_ReadonlyRootFilesystem/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_RootContainerPSP/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_SeccompPSP/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_Secrets/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_ShareHostIPC/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_ShareHostIPCPSP/ │ │ │ │ │ └── psp.tf │ │ │ │ ├── example_ShareHostPID/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_ShareHostPIDPSP/ │ │ │ │ │ └── psp.tf │ │ │ │ ├── example_SharedHostNetworkNamespace/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_SharedHostNetworkNamespacePSP/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_Tiller/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_TillerService/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_WildcardRoles/ │ │ │ │ │ └── main.tf │ │ │ │ ├── test_AllowPrivilegeEscalation.py │ │ │ │ ├── test_AllowPrivilegeEscalationPSP.py │ │ │ │ ├── test_AllowedCapabilities.py │ │ │ │ ├── test_AllowedCapabilitiesPSP.py │ │ │ │ ├── test_AllowedCapabilitiesSysAdmin.py │ │ │ │ ├── test_CPULimits.py │ │ │ │ ├── test_CPURequests.py │ │ │ │ ├── test_ContainerSecurityContext.py │ │ │ │ ├── test_DangerousGitSync.py │ │ │ │ ├── test_DefaultNamespace.py │ │ │ │ ├── test_DefaultServiceAccount.py │ │ │ │ ├── test_DefaultServiceAccountBinding.py │ │ │ │ ├── test_DockerSocketVolume.py │ │ │ │ ├── test_DropCapabilities.py │ │ │ │ ├── test_DropCapabilitiesPSP.py │ │ │ │ ├── test_HostPort.py │ │ │ │ ├── test_ImageDigest.py │ │ │ │ ├── test_ImagePullPolicyAlways.py │ │ │ │ ├── test_ImageTagFixed.py │ │ │ │ ├── test_LivenessProbe.py │ │ │ │ ├── test_MemoryLimits.py │ │ │ │ ├── test_MemoryRequests.py │ │ │ │ ├── test_MinimiseCapabilities.py │ │ │ │ ├── test_MinimiseCapabilitiesPSP.py │ │ │ │ ├── test_PodSecurityContext.py │ │ │ │ ├── test_PrivilegedContainers.py │ │ │ │ ├── test_PrivilegedContainersPSP.py │ │ │ │ ├── test_ReadinessProbe.py │ │ │ │ ├── test_ReadonlyRootFilesystem.py │ │ │ │ ├── test_RootContainerPSP.py │ │ │ │ ├── test_SeccompPSP.py │ │ │ │ ├── test_Secrets.py │ │ │ │ ├── test_ShareHostIPC.py │ │ │ │ ├── test_ShareHostIPCPSP.py │ │ │ │ ├── test_ShareHostNetworkNamespace.py │ │ │ │ ├── test_ShareHostNetworkNamespacePSP.py │ │ │ │ ├── test_ShareHostPID.py │ │ │ │ ├── test_ShareHostPIDPSP.py │ │ │ │ ├── test_Tiller.py │ │ │ │ ├── test_TillerService.py │ │ │ │ └── test_WildcardRoles.py │ │ │ ├── linode/ │ │ │ │ ├── __init__.py │ │ │ │ ├── test_authorised_keys.py │ │ │ │ ├── test_firewall_inbound_policy.py │ │ │ │ ├── test_firewall_outbound_policy.py │ │ │ │ ├── test_user_email_set.py │ │ │ │ └── test_user_username_set.py │ │ │ ├── ncp/ │ │ │ │ ├── example_AccessControlGroupInboundRulePort22/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_AccessControlGroupInboundRulePort3389/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_AccessControlGroupInboundRulePort80/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_AccessControlGroupOutboundRule/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_AccessControlGroupRuleDescription/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_LBListenerUsesSecureProtocols/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_LBListenerUsingHTTPS/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_LBNetworkPrivate/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_LBTargetGroupDefinesHealthCheck/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_LBTargetGroupUsingHTTPS/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_LaunchConfigurationEncryptionVPC/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_NACLInbound20/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_NACLInbound21/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_NACLInbound22/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_NACLInbound3389/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_NACLPortCheck/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_NASEncryptionEnabled/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_NKSControlPlaneLogging/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_NKSPublicAccess/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_RouteTableNATGatewayDefault/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_ServerEncryptionVPC/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_ServerPublicIP/ │ │ │ │ │ └── main.tf │ │ │ │ ├── test_AccessControlGroupInboundRulePort22.py │ │ │ │ ├── test_AccessControlGroupInboundRulePort3389.py │ │ │ │ ├── test_AccessControlGroupInboundRulePort80.py │ │ │ │ ├── test_AccessControlGroupOutboundRule.py │ │ │ │ ├── test_AccessControlGroupRuleDescription.py │ │ │ │ ├── test_LBListenerUsesSecureProtocols.py │ │ │ │ ├── test_LBListenerUsingHTTPS.py │ │ │ │ ├── test_LBNetworkPrivate.py │ │ │ │ ├── test_LBTargetGroupDefinesHealthCheck.py │ │ │ │ ├── test_LBTargetGroupUsingHTTPS.py │ │ │ │ ├── test_LaunchConfigurationEncryptionVPC.py │ │ │ │ ├── test_NACLInbound20.py │ │ │ │ ├── test_NACLInbound21.py │ │ │ │ ├── test_NACLInbound22.py │ │ │ │ ├── test_NACLInbound3389.py │ │ │ │ ├── test_NACLPortCheck.py │ │ │ │ ├── test_NASEncryptionEnabled.py │ │ │ │ ├── test_NKSControlPlaneLogging.py │ │ │ │ ├── test_NKSPublicAccess.py │ │ │ │ ├── test_RouteTableNATGatewayDefault.py │ │ │ │ ├── test_ServerEncryptionVPC.py │ │ │ │ └── test_ServerPublicIP.py │ │ │ ├── oci/ │ │ │ │ ├── __init__.py │ │ │ │ ├── example_DataCatalogWithPublicAccess/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_FileSystemEncryption/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_IAMPasswordLength/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_IAMPasswordPolicyLowerCase/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_IAMPasswordPolicyNumeric/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_IAMPasswordPolicySpecialCharacters/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_IAMPasswordPolicyUpperCase/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_InstanceBootVolumeIntransitEncryption/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_InstanceMetadataServiceEnabled/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_InstanceMonitoringEnabled/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_ObjectStorageEmitEvents/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_ObjectStorageEncryption/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_ObjectStoragePublic/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_ObjectStorageVersioning/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_SecurityGroupUnrestrictedIngress22/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_SecurityGroupsIngressStatelessSecurityRules/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_SecurityListIngress/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_SecurityListIngressStateless/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_SecurityListIngressStatelessListSyntax/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_SecurityListUnrestrictedIngress22/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_SecurityListUnrestrictedIngress3389/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_StorageBlockBackupEnabled/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_StorageBlockEncryption/ │ │ │ │ │ └── main.tf │ │ │ │ ├── test_DataCatalogWithPublicAccess.py │ │ │ │ ├── test_FileSystemEncryption.py │ │ │ │ ├── test_IAMPasswordLength.py │ │ │ │ ├── test_IAMPasswordPolicyLowerCase.py │ │ │ │ ├── test_IAMPasswordPolicyNumeric.py │ │ │ │ ├── test_IAMPasswordPolicySpecialCharacters.py │ │ │ │ ├── test_IAMPasswordPolicyUpperCase.py │ │ │ │ ├── test_InstanceBootVolumeIntransitEncryption.py │ │ │ │ ├── test_InstanceMetadataServiceEnabled.py │ │ │ │ ├── test_InstanceMonitoringEnabled.py │ │ │ │ ├── test_ObjectStorageEmitEvents.py │ │ │ │ ├── test_ObjectStorageEncryption.py │ │ │ │ ├── test_ObjectStoragePublic.py │ │ │ │ ├── test_ObjectStorageVersioning.py │ │ │ │ ├── test_SecurityGroupUnrestrictedIngress22.py │ │ │ │ ├── test_SecurityGroupsIngressStatelessSecurityRules.py │ │ │ │ ├── test_SecurityListIngress.py │ │ │ │ ├── test_SecurityListIngressStateless.py │ │ │ │ ├── test_SecurityListIngressStatelessListSyntax.py │ │ │ │ ├── test_SecurityListUnrestrictedIngress22.py │ │ │ │ ├── test_SecurityListUnrestrictedIngress3389.py │ │ │ │ ├── test_StorageBlockBackupEnabled.py │ │ │ │ └── test_StorageBlockEncryption.py │ │ │ ├── okta/ │ │ │ │ ├── example_TwoFASignOnPolicyRule/ │ │ │ │ │ └── main.tf │ │ │ │ └── test_TwoFASignOnPolicyRule.py │ │ │ ├── openstack/ │ │ │ │ ├── __init__.py │ │ │ │ ├── example_ComputeInstanceAdminPassword/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_FirewallRuleSetDestinationIP/ │ │ │ │ │ └── main.tf │ │ │ │ ├── test_ComputeInstanceAdminPassword.py │ │ │ │ ├── test_FirewallRuleSetDestinationIP.py │ │ │ │ ├── test_SecurityGroupUnrestrictedIngress22.py │ │ │ │ └── test_SecurityGroupUnrestrictedIngress3389.py │ │ │ ├── panos/ │ │ │ │ ├── __init__.py │ │ │ │ ├── example_InterfaceMgmtProfileNoHTTP/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_InterfaceMgmtProfileNoTelnet/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_NetworkIPsecAlgorithms/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_NetworkIPsecAuthAlgorithms/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_NetworkIPsecProtocols/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_PolicyDescription/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_PolicyLogForwarding/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_PolicyLoggingEnabled/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_PolicyNoApplicationAny/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_PolicyNoDSRI/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_PolicyNoServiceAny/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_PolicyNoSrcAnyDstAny/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_ZoneProtectionProfile/ │ │ │ │ │ └── main.tf │ │ │ │ ├── example_ZoneUserIDIncludeACL/ │ │ │ │ │ └── main.tf │ │ │ │ ├── test_InterfaceMgmtProfileNoHTTP.py │ │ │ │ ├── test_InterfaceMgmtProfileNoTelnet.py │ │ │ │ ├── test_NetworkIPsecAlgorithms.py │ │ │ │ ├── test_NetworkIPsecAuthAlgorithms.py │ │ │ │ ├── test_NetworkIPsecProtocols.py │ │ │ │ ├── test_PolicyDescription.py │ │ │ │ ├── test_PolicyLogForwarding.py │ │ │ │ ├── test_PolicyLoggingEnabled.py │ │ │ │ ├── test_PolicyNoApplicationAny.py │ │ │ │ ├── test_PolicyNoDSRI.py │ │ │ │ ├── test_PolicyNoServiceAny.py │ │ │ │ ├── test_PolicyNoSrcAnyDstAny.py │ │ │ │ ├── test_ZoneProtectionProfile.py │ │ │ │ └── test_ZoneUserIDIncludeACL.py │ │ │ ├── registry/ │ │ │ │ ├── __init__.py │ │ │ │ ├── example_external_dir/ │ │ │ │ │ └── extra_checks/ │ │ │ │ │ ├── S3PCIPrivateACL.py │ │ │ │ │ └── __init__.py │ │ │ │ └── test_registry.py │ │ │ ├── tencentcloud/ │ │ │ │ ├── __init__.py │ │ │ │ ├── example_CBSEncryption/ │ │ │ │ │ └── tencentcloud_cbs_storage.tf │ │ │ │ ├── example_CDBInternetService/ │ │ │ │ │ └── tencentcloud_mysql_instance.tf │ │ │ │ ├── example_CDBIntranetPort/ │ │ │ │ │ └── tencentcloud_mysql_instance.tf │ │ │ │ ├── example_CLBInstanceLog/ │ │ │ │ │ └── tencentcloud_clb_instance.tf │ │ │ │ ├── example_CLBListenerProtocol/ │ │ │ │ │ └── tencentcloud_clb_listener.tf │ │ │ │ ├── example_CVMAllocatePublicIp/ │ │ │ │ │ └── tencentcloud_instance.tf │ │ │ │ ├── example_CVMDisableMonitorService/ │ │ │ │ │ └── tencentcloud_instance.tf │ │ │ │ ├── example_CVMUseDefaultSecurityGroup/ │ │ │ │ │ └── tencentcloud_instance.tf │ │ │ │ ├── example_CVMUseDefaultVPC/ │ │ │ │ │ └── tencentcloud_instance.tf │ │ │ │ ├── example_CVMUserData/ │ │ │ │ │ └── tencentcloud_instance.tf │ │ │ │ ├── example_TKELogAgentEnable/ │ │ │ │ │ └── tencentcloud_kubernetes_cluster.tf │ │ │ │ ├── example_TKEPublicIpAssigned/ │ │ │ │ │ └── tencentcloud_kubernetes_cluster.tf │ │ │ │ ├── example_VPCFlowLogConfigEnable/ │ │ │ │ │ └── tencentcloud_vpc_flow_log_config.tf │ │ │ │ ├── example_VPCSecurityGroupRuleSet/ │ │ │ │ │ └── tencentcloud_security_group_rule_set.tf │ │ │ │ ├── test_CBSEncryption.py │ │ │ │ ├── test_CDBInternetService.py │ │ │ │ ├── test_CDBIntranetPort.py │ │ │ │ ├── test_CLBInstanceLog.py │ │ │ │ ├── test_CLBListenerProtocol.py │ │ │ │ ├── test_CVMAllocatePublicIp.py │ │ │ │ ├── test_CVMDisableMonitorService.py │ │ │ │ ├── test_CVMUseDefaultSecurityGroup.py │ │ │ │ ├── test_CVMUseDefaultVPC.py │ │ │ │ ├── test_CVMUserData.py │ │ │ │ ├── test_TKELogAgentEnable.py │ │ │ │ ├── test_TKEPublicIpAssigned.py │ │ │ │ ├── test_VPCFlowLogConfigEnable.py │ │ │ │ └── test_VPCSecurityGroupRuleSet.py │ │ │ ├── test_base_resource_check.py │ │ │ ├── test_base_resource_dynamic_value_check.py │ │ │ ├── test_base_resource_negative_value_check.py │ │ │ ├── test_base_resource_value_check.py │ │ │ └── yandexcloud/ │ │ │ ├── __init__.py │ │ │ ├── example_ComputeInstanceGroupPublicIP/ │ │ │ │ └── main.tf │ │ │ ├── example_ComputeInstanceGroupSecurityGroup/ │ │ │ │ └── main.tf │ │ │ ├── example_ComputeVMPublicIP/ │ │ │ │ └── main.tf │ │ │ ├── example_ComputeVMSecurityGroup/ │ │ │ │ └── main.tf │ │ │ ├── example_ComputeVMSerialConsole/ │ │ │ │ └── main.tf │ │ │ ├── example_IAMCloudElevatedMembers/ │ │ │ │ └── main.tf │ │ │ ├── example_IAMFolderElevatedMembers/ │ │ │ │ └── main.tf │ │ │ ├── example_IAMOrganizationElevatedMembers/ │ │ │ │ └── main.tf │ │ │ ├── example_IAMPassportAccountUsage/ │ │ │ │ └── main.tf │ │ │ ├── example_K8SAutoUpgrade/ │ │ │ │ └── main.tf │ │ │ ├── example_K8SEtcdKMSEncryption/ │ │ │ │ └── main.tf │ │ │ ├── example_K8SNetworkPolicy/ │ │ │ │ └── main.tf │ │ │ ├── example_K8SNodeGroupAutoUpgrade/ │ │ │ │ └── main.tf │ │ │ ├── example_K8SNodeGroupPublicIP/ │ │ │ │ └── main.tf │ │ │ ├── example_K8SNodeGroupSecurityGroup/ │ │ │ │ └── main.tf │ │ │ ├── example_K8SPublicIP/ │ │ │ │ └── main.tf │ │ │ ├── example_K8SSecurityGroup/ │ │ │ │ └── main.tf │ │ │ ├── example_KMSSymmetricKeyRotation/ │ │ │ │ └── main.tf │ │ │ ├── example_MDBPublicIP/ │ │ │ │ └── main.tf │ │ │ ├── example_MDBSecurityGroup/ │ │ │ │ └── main.tf │ │ │ ├── example_ObjectStorageBucketEncryption/ │ │ │ │ └── main.tf │ │ │ ├── example_ObjectStorageBucketPublicAccess/ │ │ │ │ └── main.tf │ │ │ ├── example_VPCSecurityGroupAllowAll/ │ │ │ │ └── main.tf │ │ │ ├── example_VPCSecurityGroupRuleAllowAll/ │ │ │ │ └── main.tf │ │ │ ├── test_ComputeInstanceGroupPublicIP.py │ │ │ ├── test_ComputeInstanceGroupSecurityGroup.py │ │ │ ├── test_ComputeVMPublicIP.py │ │ │ ├── test_ComputeVMSecurityGroup.py │ │ │ ├── test_ComputeVMSerialConsole.py │ │ │ ├── test_IAMCloudElevatedMembers.py │ │ │ ├── test_IAMFolderElevatedMembers.py │ │ │ ├── test_IAMOrganizationElevatedMembers.py │ │ │ ├── test_IAMPassportAccountUsage.py │ │ │ ├── test_K8SAutoUpgrade.py │ │ │ ├── test_K8SEtcdKMSEncryption.py │ │ │ ├── test_K8SNetworkPolicy.py │ │ │ ├── test_K8SNodeGroupAutoUpgrade.py │ │ │ ├── test_K8SNodeGroupPublicIP.py │ │ │ ├── test_K8SNodeGroupSecurityGroup.py │ │ │ ├── test_K8SPublicIP.py │ │ │ ├── test_K8SSecurityGroup.py │ │ │ ├── test_KMSSymmetricKeyRotation.py │ │ │ ├── test_MDBPublicIP.py │ │ │ ├── test_MDBSecurityGroup.py │ │ │ ├── test_ObjectStorageBucketEncryption.py │ │ │ ├── test_ObjectStorageBucketPublicAccess.py │ │ │ ├── test_VPCSecurityGroupAllowAll.py │ │ │ └── test_VPCSecurityGroupRuleAllowAll.py │ │ ├── terraform/ │ │ │ └── terraform/ │ │ │ └── resources/ │ │ │ └── lock/ │ │ │ ├── fail.cdk.tf.json │ │ │ ├── pass.cdk.tf.json │ │ │ └── unknown_partialconfig.tf │ │ ├── test_base_resource_check.py │ │ └── test_wildcard_entities.py │ ├── context_parsers/ │ │ ├── __init__.py │ │ ├── mock_context_parser.py │ │ ├── mock_tf_files/ │ │ │ ├── inline_suppression.tf │ │ │ └── mock.tf │ │ ├── test_base_parser.py │ │ ├── test_locals_parser.py │ │ ├── test_parser_registry.py │ │ ├── test_variable_context_parser.py │ │ └── test_variable_context_parser2.py │ ├── evaluation/ │ │ ├── __init__.py │ │ └── resources/ │ │ ├── default_evaluation/ │ │ │ ├── main.tf │ │ │ └── variables.tf │ │ └── locals_evaluation/ │ │ └── main.tf │ ├── graph/ │ │ ├── __init__.py │ │ ├── checks/ │ │ │ ├── __init__.py │ │ │ ├── custom_policies/ │ │ │ │ ├── CustomAwsEMRSecurityConfiguration.yaml │ │ │ │ ├── CustomPolicy1.yaml │ │ │ │ └── CustomPolicy2.yaml │ │ │ ├── resources/ │ │ │ │ ├── ACMWildcardDomainName/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── ADORepositoryHasMinTwoReviewers/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── ALBProtectedByWAF/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── ALBRedirectsHTTPToHTTPS/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── ALBWebACLConfiguredWIthLog4jVulnerability/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── AMRClustersNotOpenToInternet/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── APIGWLoggingLevelsDefinedProperly/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── APIGatewayEndpointsUsesCertificateForAuthentication/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── APIGatewayMethodWOAuth/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── APIGatewayRequestParameterValidationEnabled/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── APIGatewayWebACLConfiguredWIthLog4jVulnerability/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── APIProtectedByWAF/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── AWSConfigRecorderEnabled/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── AWSNATGatewaysshouldbeutilized/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── AWSSSMParametershouldbeEncrypted/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── AWS_private_MWAA_environment/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── AWSdisableS3ACL/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── AccessControlGroupRuleDefine/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── AccessToPostgreSQLFromAzureServicesIsDisabled/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── AdministratorUserNotAssociatedWithAPIKey/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── AppLoadBalancerTLS12/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── AppSyncProtectedByWAF/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── ApplicationGatewayEnablesWAF/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── AppsyncWebACLConfiguredWIthLog4jVulnerability/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── AutoScalingEnableOnDynamoDBTables/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── AutoScalingEnabledLB/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── AutoScallingEnabledELB/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── AzureACR_HTTPSwebhook/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── AzureAKSclusterAzureCNIEnabled/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── AzureActiveDirectoryAdminIsConfigured/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── AzureAntimalwareIsConfiguredWithAutoUpdatesForVMs/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── AzureAutomationAccConfigManagedIdentity/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── AzureAutomationAccNotOverlyPermissiveNetAccess/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── AzureCognitiveServicesCustomerManagedKey/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── AzureConfigMSSQLwithAD/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── AzureContainerInstanceconfigManagedIdentity/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── AzureDataFactoriesEncryptedWithCustomerManagedKey/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── AzureKeyVaultConfigPrivateEndpoint/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── AzureMLWorkspaceHBIPublicNetwork/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── AzureMLWorkspacePublicNetwork/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── AzureMSSQLServerHasSecurityAlertPolicy/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── AzureMSSQLserverConfigPrivEndpt/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── AzureMariaDBserverConfigPrivEndpt/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── AzureMariaDBserverUsingTLS_1_2/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── AzureMySQLFlexibleServerConfigPrivEndpt/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── AzureMySQLserverConfigPrivEndpt/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── AzureNetworkInterfacePublicIPAddressId/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── AzurePostgreSQLFlexServerNotOverlyPermissive/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── AzurePostgreSQLFlexibleServerConfigPrivEndpt/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── AzurePostgreSQLserverConfigPrivEndpt/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── AzureRecoveryServicesvaultConfigManagedIdentity/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── AzureSQLserverNotOverlyPermissive/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── AzureSpringCloudConfigWithVnet/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── AzureSpringCloudTLSDisabled/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── AzureSqlDbEnableTransparentDataEncryption/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── AzureStorageAccConfigSharedKeyAuth/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── AzureStorageAccConfigWithPrivateEndpoint/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── AzureStorageAccConfigWithoutBlobAnonymousAccess/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── AzureStorageAccConfig_SAS_expirePolicy/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── AzureStorageAccountEnableSoftDelete/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── AzureSubnetConfigWithNSG/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── AzureSynapseWorkspaceVAisEnabled/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── AzureSynapseWorkspacesHaveNoIPFirewallRulesAttached/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── AzureUnattachedDisksAreEncrypted/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── AzureVMconfigPublicIP_SerialConsoleAccess/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── CLoudFrontS3OriginConfigWithOAI/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── CloudFrontHasCustomSSLCertificate/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── CloudFrontHasResponseHeadersPolicy/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── CloudFrontUsesSecureProtocolsForHTTPS/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── CloudFrontWebACLConfiguredWIthLog4jVulnerability/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── CloudFunctionSecureHTTPTrigger/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── CloudfrontOriginNotHTTPSOnly/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── CloudtrailHasCloudwatch/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── CodecommitApprovalRulesAttached/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── ConfigRecorderRecordsAllGlobalResources/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── CustomAwsEMRSecurityConfiguration/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── CustomPolicy1/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── CustomPolicy2/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── DMSEndpointHaveSSLConfigured/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── DataExplorerEncryptionUsesCustomKey/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── DatabricksWorkspaceDBFSRootEncryptedWithCustomerManagedKey/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── DisableAccessToSqlDBInstanceForRootUsersWithoutPassword/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── EBSAddedBackup/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── EC2InstanceHasIAMRoleAttached/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── EFSAddedBackup/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── EFSAddedBackupSuppress/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── EIPAllocatedToVPCAttachedEC2/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── EMRClusterHasSecurityConfiguration/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── ElastiCacheRedisConfiguredAutomaticFailOver/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── ElasticSearchDedicatedMasterEnabled/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── EncryptedEBSVolumeOnlyConnectedToEC2s/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── GCPAuditLogsConfiguredForAllServicesAndUsers/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── GCPComputeFirewallOverlyPermissiveToAllTraffic/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── GCPComputeGlobalForwardingRuleCheck/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── GCPComputeRegionalForwardingRuleCheck/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── GCPContainerRegistryReposAreNotPubliclyAccessible/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── GCPDialogFlowAgentLoggingEnabled/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── GCPDialogFlowCxAgentLoggingEnabled/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── GCPDialogFlowCxWebhookLoggingEnabled/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── GCPDocumentAIProcessorEncryptedWithCMK/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── GCPDocumentAIWarehouseLocationEncryptedWithCMK/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── GCPKMSCryptoKeysAreNotPubliclyAccessible/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── GCPKMSKeyRingsAreNotPubliclyAccessible/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── GCPLogBucketsConfiguredUsingLock/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── GCPMySQLdbInstancePoint_In_TimeRecoveryBackupIsEnabled/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── GCPNetworkDoesNotUseDefaultFirewall/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── GCPPostgreSQLDatabaseFlaglog_durationIsSetToON/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── GCPPostgreSQLDatabaseFlaglog_executor_statsIsSetToOFF/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── GCPPostgreSQLDatabaseFlaglog_parser_statsIsSetToOFF/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── GCPPostgreSQLDatabaseFlaglog_planner_statsIsSetToOFF/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── GCPPostgreSQLDatabaseFlaglog_statement_statsIsSetToOFF/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── GCPProjectHasNoLegacyNetworks/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── GCPTpuV2VmPrivateEndpoint/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── GCPVertexAIEndpointEncryptedWithCMK/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── GCPVertexAIFeaturestoreEncryptedWithCMK/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── GCPVertexAIPrivateEndpoint/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── GCPVertexAIPrivateIndexEndpoint/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── GCPVertexAITensorboardEncryptedWithCMK/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── GCPVertexInstanceEncryptedWithCMK/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── GCPVertexRuntimeEncryptedWithCMK/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── GCPVertexRuntimePrivate/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── GCPVertexWorkbenchInstanceEncryptedWithCMK/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── GCPVertexWorkbenchInstanceNoPublicIp/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── GCPdisableAlphaClusterFeatureInKubernetesEngineClusters/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── GCRContainerVulnerabilityScanningEnabled/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── GKEClustersAreNotUsingDefaultServiceAccount/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── GuardDutyIsEnabled/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── HTTPNotSendingPasswords/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── IAMGroupHasAtLeastOneUser/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── IAMManagedIAMFullAccessPolicy/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── IAMPolicyNotAllowFullIAMAccess/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── IAMUserHasNoConsoleAccess/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── IAMUsersAreMembersAtLeastOneGroup/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── IBM_DatabasesNWaccessRestrictedToSpecificIPrange/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── IBM_EnableMFAatAccountLevel/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── IBM_K8sClustersAccessibleViaPrivateEndPt/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── IBM_LoadBalancerforVPCisPrivate/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── IBM_RestrictAPIkeyCreationInAccountSettings/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── IBM_RestrictServiceIDCreationInAccountSettings/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── IBM_VPCclassicAccessIsDisabled/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── KmsKeyPolicyIsDefined/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── LBTargetGroup/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── LBWeakCiphers/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── LambdaOpenCorsPolicy/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── MSQLenablesCustomerManagedKey/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── NeptuneDeletionProtectionEnabled/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── NetworkFirewallHasLogging/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── OCI_K8EngineClusterBootVolConfigInTransitEncryption/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── OCI_K8EngineClusterPodSecPolicyEnforced/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── OCI_KubernetesEngineClusterEndpointConfigWithNSG/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── OCI_NFSaccessRestrictedToRootUsers/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── OCI_NSGNotAllowRDP/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── OSSBucketPublic/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── OpenSearchDomainHasFineGrainedControl/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── PGSQLenablesCustomerManagedKey/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── PostgresDBHasQueryLoggingEnabled/ │ │ │ │ │ ├── db.tf │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── rds.tf │ │ │ │ ├── PostgresRDSHasQueryLoggingEnabled/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── rds.tf │ │ │ │ ├── RDSClusterHasBackupPlan/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── RDSEnableCopyTagsToSnapshot/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── RDSEncryptionInTransit/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── RepositoryHasBranchProtection/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── Route53ARecordAttachedResource/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── Route53ZoneEnableDNSSECSigning/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── Route53ZoneHasMatchingQueryLog/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── RouteTablePublicSubnetConnection/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── S3BucketEncryption/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── S3BucketEventNotifications/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── S3BucketHasPublicAccessBlock/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── S3BucketLifecycle/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── S3BucketLogging/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── S3BucketReplicationConfiguration/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── S3BucketVersioning/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── S3KMSEncryptedByDefault/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── S3NotAllowAccessToAllAuthenticatedUsers/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── S3PublicACLRead/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ ├── main.tf │ │ │ │ │ └── same_resource_name/ │ │ │ │ │ └── main.tf │ │ │ │ ├── S3PublicACLWrite/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── SGAttachedToResource/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── SQLServerAuditingEnabled/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── SQLServerAuditingRetention90Days/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── SQSEncryptionCMK/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── SageMakerIAMPolicyOverlyPermissiveToAllTraffic/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── SecretsAreRotated/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── ServiceAccountHasGCPmanagedKey/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── StorageContainerActivityLogsNotPublic/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── StorageCriticalDataEncryptedCMK/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── StorageLoggingIsEnabledForBlobService/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── StorageLoggingIsEnabledForTableService/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── SubnetHasACL/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── SynapseLogMonitoringEnabledForSQLPool/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── SynapseSQLPoolHasSecurityAlertPolicy/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── SynapseSQLPoolHasVulnerabilityAssessment/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── SynapseWorkspaceHasExtendedAuditLogs/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── VAconfiguredToSendReports/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── VAconfiguredToSendReportsToAdmins/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── VAisEnabledInStorageAccount/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── VAsetPeriodicScansOnSQL/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── VMHasBackUpMachine/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── VPCHasFlowLog/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── VPCHasOneOfWantedFlowLogs/ │ │ │ │ │ └── main.tf │ │ │ │ ├── VPCHasRestrictedSG/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── VPCPeeringRouteTableOverlyPermissive/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── VirtualMachinesUtilizingManagedDisks/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ ├── WAF2HasLogs/ │ │ │ │ │ ├── expected.yaml │ │ │ │ │ └── main.tf │ │ │ │ └── connected_nodes/ │ │ │ │ └── main.tf │ │ │ ├── test_custom_yaml_policies.py │ │ │ ├── test_yaml_connected_nodes.py │ │ │ └── test_yaml_policies.py │ │ ├── checks_infra/ │ │ │ ├── __init__.py │ │ │ ├── attribute_solvers/ │ │ │ │ ├── __init__.py │ │ │ │ ├── cidr_range_not_subset_solver/ │ │ │ │ │ ├── CIDRRangeNotSubsetList.yaml │ │ │ │ │ ├── CIDRRangeNotSubsetString.yaml │ │ │ │ │ ├── IPV6CIDRRangeNotSubsetList.yaml │ │ │ │ │ ├── JsonPathCIDRRangeNotSubsetList.yaml │ │ │ │ │ ├── JsonPathCIDRRangeNotSubsetString.yaml │ │ │ │ │ ├── JsonPathIPV6CIDRRangeNotSubsetList.yaml │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── resources/ │ │ │ │ │ │ └── main.tf │ │ │ │ │ └── test_solver.py │ │ │ │ ├── cidr_range_subset_solver/ │ │ │ │ │ ├── CIDRRangeSubsetList.yaml │ │ │ │ │ ├── CIDRRangeSubsetString.yaml │ │ │ │ │ ├── IPV6CIDRRangeSubsetList.yaml │ │ │ │ │ ├── JsonPathCIDRRangeSubsetList.yaml │ │ │ │ │ ├── JsonPathCIDRRangeSubsetString.yaml │ │ │ │ │ ├── JsonPathIPV6CIDRRangeSubsetList.yaml │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── resources/ │ │ │ │ │ │ └── main.tf │ │ │ │ │ └── test_solver.py │ │ │ │ ├── contains_solver/ │ │ │ │ │ ├── NetworkAclsIPs.yaml │ │ │ │ │ ├── PublicSG.yaml │ │ │ │ │ ├── PublicSGMultipleIngress.yaml │ │ │ │ │ ├── PublicVMs.yaml │ │ │ │ │ ├── PublicVMsWithJsonpath.yaml │ │ │ │ │ ├── SpecificBlockSG.yaml │ │ │ │ │ ├── TagIncludes.yaml │ │ │ │ │ ├── VariableDependentPolicy.yaml │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── test_solver.py │ │ │ │ ├── ending_with_solver/ │ │ │ │ │ ├── AmiEndingWith.yaml │ │ │ │ │ ├── AmiEndingWithJsonpath.yaml │ │ │ │ │ ├── UnrenderedVar.yaml │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── test_solver.py │ │ │ │ ├── equals_ignore_case_solver/ │ │ │ │ │ ├── BooleanString.yaml │ │ │ │ │ ├── EncryptedResources.yaml │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── test_solver.py │ │ │ │ ├── equals_solver/ │ │ │ │ │ ├── BooleanString.yaml │ │ │ │ │ ├── Complex.yaml │ │ │ │ │ ├── EncryptedResources.yaml │ │ │ │ │ ├── PublicDBSG.yaml │ │ │ │ │ ├── SGPorts.yaml │ │ │ │ │ ├── UnrenderedVar.yaml │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── test_solver.py │ │ │ │ ├── exists_solver/ │ │ │ │ │ ├── TagEnvironmentExists.yaml │ │ │ │ │ ├── TagEnvironmentExistsAll.yaml │ │ │ │ │ ├── VersioningEnabledExists.yaml │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── test_solver.py │ │ │ │ ├── greater_than_solver/ │ │ │ │ │ ├── GT.yaml │ │ │ │ │ ├── GTE.yaml │ │ │ │ │ ├── LT.yaml │ │ │ │ │ ├── LTE.yaml │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── resources/ │ │ │ │ │ │ └── main.tf │ │ │ │ │ └── test_solver.py │ │ │ │ ├── intersects_solver/ │ │ │ │ │ ├── ArrayIntersect.yaml │ │ │ │ │ ├── MivedValue.yaml │ │ │ │ │ ├── NoneAttribute.yaml │ │ │ │ │ ├── PublicVMs.yaml │ │ │ │ │ ├── StringAttribute.yaml │ │ │ │ │ ├── TagsIntersect.yaml │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── test_solver.py │ │ │ │ ├── is_empty_solver/ │ │ │ │ │ ├── SGPorts.yaml │ │ │ │ │ ├── SGPortsJsonpath.yaml │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── main.tf │ │ │ │ │ └── test_solver.py │ │ │ │ ├── is_false_solver/ │ │ │ │ │ ├── FalseValue.yaml │ │ │ │ │ ├── TrueValue.yaml │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── test_solver.py │ │ │ │ ├── is_not_empty_solver/ │ │ │ │ │ ├── SGPorts.yaml │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── main.tf │ │ │ │ │ └── test_solver.py │ │ │ │ ├── is_true_solver/ │ │ │ │ │ ├── FalseValue.yaml │ │ │ │ │ ├── TrueValue.yaml │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── test_solver.py │ │ │ │ ├── jsonpath_equals_solver/ │ │ │ │ │ ├── AzureSecureRule.yaml │ │ │ │ │ ├── CkSshPortOpenForAll.yaml │ │ │ │ │ ├── EcsWithMerge.yaml │ │ │ │ │ ├── PublicDBSG.yaml │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── example.tf │ │ │ │ │ └── test_solver.py │ │ │ │ ├── jsonpath_exists_solver/ │ │ │ │ │ ├── AzureSecureRule.yaml │ │ │ │ │ ├── CkSshPortOpenForAll.yaml │ │ │ │ │ ├── PublicDBSG.yaml │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── example.tf │ │ │ │ │ ├── example.yaml │ │ │ │ │ └── test_solver.py │ │ │ │ ├── jsonpath_not_equals_solver/ │ │ │ │ │ ├── AzureSecureRule.yaml │ │ │ │ │ ├── CkSshPortOpenForAll.yaml │ │ │ │ │ ├── PublicDBSG.yaml │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── test_solver.py │ │ │ │ ├── jsonpath_not_exists_solver/ │ │ │ │ │ ├── AzureSecureRule.yaml │ │ │ │ │ ├── CkSshPortOpenForAll.yaml │ │ │ │ │ ├── PublicDBSG.yaml │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── example.tf │ │ │ │ │ ├── example.yaml │ │ │ │ │ └── test_solver.py │ │ │ │ ├── length_equals_solver/ │ │ │ │ │ ├── ArrayLengthEquals.yaml │ │ │ │ │ ├── DictLength.yaml │ │ │ │ │ ├── StringLengthEquals.yaml │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── test_solver.py │ │ │ │ ├── length_greater_than_or_equal_solver/ │ │ │ │ │ ├── ArrayLength.yaml │ │ │ │ │ ├── DictLength.yaml │ │ │ │ │ ├── StringLength.yaml │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── test_solver.py │ │ │ │ ├── length_greater_than_solver/ │ │ │ │ │ ├── ArrayLength.yaml │ │ │ │ │ ├── DictLength.yaml │ │ │ │ │ ├── StringLength.yaml │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── test_solver.py │ │ │ │ ├── length_less_than_or_equal_solver/ │ │ │ │ │ ├── ArrayLength.yaml │ │ │ │ │ ├── DictLength.yaml │ │ │ │ │ ├── StringLength.yaml │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── test_solver.py │ │ │ │ ├── length_less_than_solver/ │ │ │ │ │ ├── ArrayLength.yaml │ │ │ │ │ ├── DictLength.yaml │ │ │ │ │ ├── StringLength.yaml │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── test_solver.py │ │ │ │ ├── length_not_equals_solver/ │ │ │ │ │ ├── ArrayLengthNotEquals.yaml │ │ │ │ │ ├── DictLengthNotEquals.yaml │ │ │ │ │ ├── StringLengthNotEquals.yaml │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── test_solver.py │ │ │ │ ├── not_contains_solver/ │ │ │ │ │ ├── PublicSG.yaml │ │ │ │ │ ├── PublicVMs.yaml │ │ │ │ │ ├── SpecificBlockSG.yaml │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── test_solver.py │ │ │ │ ├── not_ending_with_solver/ │ │ │ │ │ ├── AmiEndingWith.yaml │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── test_solver.py │ │ │ │ ├── not_equals_ignore_case_solver/ │ │ │ │ │ ├── BooleanString.yaml │ │ │ │ │ ├── EncryptedResources.yaml │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── test_solver.py │ │ │ │ ├── not_equals_solver/ │ │ │ │ │ ├── PublicDBSG.yaml │ │ │ │ │ ├── SGPorts.yaml │ │ │ │ │ ├── UnrenderedVar.yaml │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── test_solver.py │ │ │ │ ├── not_exists_solver/ │ │ │ │ │ ├── SecureTransportExist.yaml │ │ │ │ │ ├── TagEnvironmentExists.yaml │ │ │ │ │ ├── VersioningEnabledExists.yaml │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── resources/ │ │ │ │ │ │ └── main.tf │ │ │ │ │ └── test_solver.py │ │ │ │ ├── not_intersects_solver/ │ │ │ │ │ ├── ArrayNotIntersect.yaml │ │ │ │ │ ├── PublicVMs.yaml │ │ │ │ │ ├── TagsNotIntersect.yaml │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── test_solver.py │ │ │ │ ├── not_regex_match_solver/ │ │ │ │ │ ├── TagPrefix.yaml │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── test_solver.py │ │ │ │ ├── not_starting_with_solver/ │ │ │ │ │ ├── NameStartingWith.yaml │ │ │ │ │ ├── NameStartingWithJsonpath.yaml │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── test_solver.py │ │ │ │ ├── not_subset_solver/ │ │ │ │ │ ├── Subset1.yaml │ │ │ │ │ ├── SubsetJsonpath.yaml │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── test_solver.py │ │ │ │ ├── not_within_solver/ │ │ │ │ │ ├── NameNotWithin.yaml │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── test_solver.py │ │ │ │ ├── number_of_words_equals_solver/ │ │ │ │ │ ├── NumberOfWordsEquals.yaml │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── test_solver.py │ │ │ │ ├── number_of_words_greater_than_or_equal_solver/ │ │ │ │ │ ├── NumberOfWordsGreaterThanOrEqual.yaml │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── test_solver.py │ │ │ │ ├── number_of_words_greater_than_solver/ │ │ │ │ │ ├── NumberOfWordsGreaterThan.yaml │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── test_solver.py │ │ │ │ ├── number_of_words_less_than_or_equal_solver/ │ │ │ │ │ ├── NumberOfWordsLessThanOrEqual.yaml │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── test_solver.py │ │ │ │ ├── number_of_words_less_than_solver/ │ │ │ │ │ ├── NumberOfWordsLessThan.yaml │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── test_solver.py │ │ │ │ ├── number_of_words_not_equals_solver/ │ │ │ │ │ ├── NumberOfWordsEquals.yaml │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── test_solver.py │ │ │ │ ├── range_includes_solver/ │ │ │ │ │ ├── JsonPathRangeIncludesInt.yaml │ │ │ │ │ ├── JsonPathRangeIncludesList.yaml │ │ │ │ │ ├── JsonPathRangeIncludesListWRange.yaml │ │ │ │ │ ├── JsonPathRangeIncludesString.yaml │ │ │ │ │ ├── RangeIncludesInt.yaml │ │ │ │ │ ├── RangeIncludesList.yaml │ │ │ │ │ ├── RangeIncludesListWRange.yaml │ │ │ │ │ ├── RangeIncludesString.yaml │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── resources/ │ │ │ │ │ │ └── main.tf │ │ │ │ │ └── test_solver.py │ │ │ │ ├── range_not_includes_solver/ │ │ │ │ │ ├── JsonPathRangeNotIncludesInt.yaml │ │ │ │ │ ├── JsonPathRangeNotIncludesList.yaml │ │ │ │ │ ├── JsonPathRangeNotIncludesListWRange.yaml │ │ │ │ │ ├── JsonPathRangeNotIncludesString.yaml │ │ │ │ │ ├── RangeNotIncludesInt.yaml │ │ │ │ │ ├── RangeNotIncludesList.yaml │ │ │ │ │ ├── RangeNotIncludesListWRange.yaml │ │ │ │ │ ├── RangeNotIncludesString.yaml │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── resources/ │ │ │ │ │ │ └── main.tf │ │ │ │ │ └── test_solver.py │ │ │ │ ├── regex_match_solver/ │ │ │ │ │ ├── TagPrefix.yaml │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── test_solver.py │ │ │ │ ├── starting_with_solver/ │ │ │ │ │ ├── NameStartingWith.yaml │ │ │ │ │ ├── UnrenderedVar.yaml │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── test_solver.py │ │ │ │ ├── subset_solver/ │ │ │ │ │ ├── Subset1.yaml │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── test_solver.py │ │ │ │ └── within_solver/ │ │ │ │ ├── NameWithin.yaml │ │ │ │ ├── UnrenderedVar.yaml │ │ │ │ ├── WildcardWithin.yaml │ │ │ │ ├── __init__.py │ │ │ │ └── test_solver.py │ │ │ ├── complex_solvers/ │ │ │ │ ├── __init__.py │ │ │ │ ├── and_solver/ │ │ │ │ │ ├── BucketsWithDevEnvAndPrivateACL.yaml │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── test_solver.py │ │ │ │ ├── not_solver/ │ │ │ │ │ ├── BucketsWithDevEnvAndPrivateACL.yaml │ │ │ │ │ ├── NotWithNestedDict.yaml │ │ │ │ │ ├── NotWithNestedList.yaml │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── test_solver.py │ │ │ │ └── or_solver/ │ │ │ │ ├── BucketsWithEnvTag.yaml │ │ │ │ ├── __init__.py │ │ │ │ └── test_solver.py │ │ │ ├── connection_solvers/ │ │ │ │ ├── __init__.py │ │ │ │ ├── and_connection_solver/ │ │ │ │ │ ├── ALBConnectedToHTTPS.yaml │ │ │ │ │ ├── AndComplexConnection.yaml │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── test_solver.py │ │ │ │ ├── connection_exist_solver/ │ │ │ │ │ ├── NetworkInterfaceForInstance.yaml │ │ │ │ │ ├── S3BucketPolicyDataSource.yaml │ │ │ │ │ ├── VPCForSubnet.yaml │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── test_solver.py │ │ │ │ ├── connection_not_exist_solver/ │ │ │ │ │ ├── NoNetworkInterfaceForInstance.yaml │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── test_solver.py │ │ │ │ ├── connection_one_exists/ │ │ │ │ │ ├── VPCHasOneOfWantedFlowLogs.yaml │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── test_solver.py │ │ │ │ └── or_connection_solver/ │ │ │ │ ├── SpecificInstanceComplexConnection.yaml │ │ │ │ ├── __init__.py │ │ │ │ └── test_solver.py │ │ │ ├── resource_solvers/ │ │ │ │ ├── __init__.py │ │ │ │ ├── exists_solver/ │ │ │ │ │ ├── ResourceAllowList.yaml │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── test_solver.py │ │ │ │ └── not_exists_solver/ │ │ │ │ ├── ResourceDenyList.yaml │ │ │ │ ├── __init__.py │ │ │ │ └── test_solver.py │ │ │ ├── test_base.py │ │ │ └── test_base_attribute_solver.py │ │ ├── db_connector/ │ │ │ ├── __init__.py │ │ │ └── test_graph_connector.py │ │ ├── graph_builder/ │ │ │ ├── __init__.py │ │ │ ├── graph_components/ │ │ │ │ ├── __init__.py │ │ │ │ └── test_blocks.py │ │ │ ├── test_graph_builder.py │ │ │ ├── test_local_graph.py │ │ │ ├── test_oci_policy.py │ │ │ ├── test_terraform_graph_parser.py │ │ │ └── test_utils.py │ │ ├── resources/ │ │ │ ├── array_test/ │ │ │ │ └── main.tf │ │ │ ├── arrays/ │ │ │ │ └── main.tf │ │ │ ├── azure_secure_rule/ │ │ │ │ └── main.tf │ │ │ ├── boolean_test/ │ │ │ │ └── main.tf │ │ │ ├── complex/ │ │ │ │ └── main.tf │ │ │ ├── cross_modules/ │ │ │ │ ├── main.tf │ │ │ │ └── module/ │ │ │ │ ├── main.tf │ │ │ │ └── variables.tf │ │ │ ├── cross_modules2/ │ │ │ │ ├── inner_module/ │ │ │ │ │ ├── main.tf │ │ │ │ │ └── variables.tf │ │ │ │ ├── main.tf │ │ │ │ └── module/ │ │ │ │ ├── main.tf │ │ │ │ └── variables.tf │ │ │ ├── cross_variables/ │ │ │ │ └── main.tf │ │ │ ├── cross_variables2/ │ │ │ │ ├── main/ │ │ │ │ │ └── main.tf │ │ │ │ └── module/ │ │ │ │ ├── main.tf │ │ │ │ └── variables.tf │ │ │ ├── dynamic_lambda_function/ │ │ │ │ └── lambda.tf │ │ │ ├── ec2_instance_network_interfaces/ │ │ │ │ └── main.tf │ │ │ ├── ecs_with_merge/ │ │ │ │ └── main.tf │ │ │ ├── encryption/ │ │ │ │ └── main.tf │ │ │ ├── encryption_test/ │ │ │ │ └── main.tf │ │ │ ├── for_each/ │ │ │ │ └── main.tf │ │ │ ├── general_example/ │ │ │ │ ├── main.tf │ │ │ │ └── variables.tf │ │ │ ├── graph_files_test/ │ │ │ │ ├── more_vars.tf │ │ │ │ ├── pass_s3.tf │ │ │ │ └── variables.tf │ │ │ ├── k8_service/ │ │ │ │ ├── main.tf │ │ │ │ └── variables.tf │ │ │ ├── lb/ │ │ │ │ └── main.tf │ │ │ ├── lengths/ │ │ │ │ └── main.tf │ │ │ ├── malformed_provider/ │ │ │ │ └── main.tf │ │ │ ├── module_rendering/ │ │ │ │ └── example/ │ │ │ │ ├── modules/ │ │ │ │ │ ├── mock/ │ │ │ │ │ │ └── main.tf │ │ │ │ │ └── second-mock/ │ │ │ │ │ └── main.tf │ │ │ │ └── stacks/ │ │ │ │ ├── s1/ │ │ │ │ │ └── main.tf │ │ │ │ └── s2/ │ │ │ │ └── main.tf │ │ │ ├── modules/ │ │ │ │ ├── git_module/ │ │ │ │ │ └── main.tf │ │ │ │ ├── linked_modules/ │ │ │ │ │ └── external_modules/ │ │ │ │ │ └── terraform-aws-modules/ │ │ │ │ │ ├── lambda/ │ │ │ │ │ │ ├── main.tf │ │ │ │ │ │ └── outputs.tf │ │ │ │ │ └── s3-bucket/ │ │ │ │ │ ├── examples/ │ │ │ │ │ │ └── notification/ │ │ │ │ │ │ └── main.tf │ │ │ │ │ ├── main.tf │ │ │ │ │ ├── outputs.tf │ │ │ │ │ └── variables.tf │ │ │ │ ├── nested_modules_instances/ │ │ │ │ │ ├── another_one/ │ │ │ │ │ │ ├── main.tf │ │ │ │ │ │ └── variable.tf │ │ │ │ │ ├── example.tfcloud/ │ │ │ │ │ │ └── main.tf │ │ │ │ │ ├── expected_local_graph.json │ │ │ │ │ ├── main.tf │ │ │ │ │ ├── module/ │ │ │ │ │ │ ├── main.tf │ │ │ │ │ │ └── variable.tf │ │ │ │ │ ├── module2/ │ │ │ │ │ │ ├── main.tf │ │ │ │ │ │ └── variable.tf │ │ │ │ │ └── module3/ │ │ │ │ │ ├── main.tf │ │ │ │ │ └── variable.tf │ │ │ │ ├── registry_security_group_inner_module/ │ │ │ │ │ └── main.tf │ │ │ │ ├── s3_inner_modules/ │ │ │ │ │ ├── inner/ │ │ │ │ │ │ ├── main.tf │ │ │ │ │ │ └── variables.tf │ │ │ │ │ ├── main.tf │ │ │ │ │ └── variables.tf │ │ │ │ ├── same_var_names/ │ │ │ │ │ ├── main.tf │ │ │ │ │ ├── module1/ │ │ │ │ │ │ ├── main.tf │ │ │ │ │ │ └── variables.tf │ │ │ │ │ ├── module2/ │ │ │ │ │ │ ├── main.tf │ │ │ │ │ │ └── variables.tf │ │ │ │ │ ├── submodule1/ │ │ │ │ │ │ └── variables.tf │ │ │ │ │ └── submodule2/ │ │ │ │ │ └── variables.tf │ │ │ │ ├── stacks/ │ │ │ │ │ ├── prod/ │ │ │ │ │ │ ├── main.tf │ │ │ │ │ │ └── sub-prod/ │ │ │ │ │ │ └── main.tf │ │ │ │ │ ├── stage/ │ │ │ │ │ │ └── main.tf │ │ │ │ │ └── test/ │ │ │ │ │ └── main.tf │ │ │ │ └── violation_example/ │ │ │ │ ├── main.tf │ │ │ │ └── variables.tf │ │ │ ├── modules-and-vars/ │ │ │ │ ├── context.tf │ │ │ │ ├── examples/ │ │ │ │ │ └── complete/ │ │ │ │ │ ├── context.tf │ │ │ │ │ ├── main.tf │ │ │ │ │ ├── outputs.tf │ │ │ │ │ └── variables.tf │ │ │ │ ├── main.tf │ │ │ │ ├── outputs.tf │ │ │ │ ├── replication.tf │ │ │ │ └── variables.tf │ │ │ ├── modules_edges_tfplan/ │ │ │ │ ├── s3module.tf │ │ │ │ └── tfplan.json │ │ │ ├── nested_modules_address/ │ │ │ │ ├── main.tf │ │ │ │ └── module/ │ │ │ │ ├── main.tf │ │ │ │ ├── module2/ │ │ │ │ │ ├── main.tf │ │ │ │ │ └── variable.tf │ │ │ │ └── variable.tf │ │ │ ├── nested_modules_double_call/ │ │ │ │ ├── examples/ │ │ │ │ │ └── complete/ │ │ │ │ │ ├── fixtures.us-west-1.tfvars │ │ │ │ │ ├── main.tf │ │ │ │ │ ├── outputs.tf │ │ │ │ │ └── variables.tf │ │ │ │ ├── four/ │ │ │ │ │ ├── main.tf │ │ │ │ │ ├── output.tf │ │ │ │ │ └── variable.tf │ │ │ │ ├── main.tf │ │ │ │ ├── outputs.tf │ │ │ │ ├── third/ │ │ │ │ │ ├── main.tf │ │ │ │ │ ├── outputs.tf │ │ │ │ │ └── variable.tf │ │ │ │ ├── variables.tf │ │ │ │ └── versions.tf │ │ │ ├── none_contains/ │ │ │ │ └── main.tf │ │ │ ├── number_of_words/ │ │ │ │ └── main.tf │ │ │ ├── oci_policies/ │ │ │ │ └── main.tf │ │ │ ├── output_example/ │ │ │ │ ├── main.tf │ │ │ │ └── submodule/ │ │ │ │ ├── main.tf │ │ │ │ └── outputs.tf │ │ │ ├── public_security_groups/ │ │ │ │ ├── main.tf │ │ │ │ └── output.tf │ │ │ ├── public_virtual_machines/ │ │ │ │ └── main.tf │ │ │ ├── reset_edges/ │ │ │ │ ├── main.tf │ │ │ │ └── variables.tf │ │ │ ├── s3_bucket/ │ │ │ │ ├── main.tf │ │ │ │ └── variables.tf │ │ │ ├── s3_bucket_2/ │ │ │ │ └── main.tf │ │ │ ├── s3_bucket_grant/ │ │ │ │ └── main.tf │ │ │ ├── s3_bucket_policy/ │ │ │ │ └── main.tf │ │ │ ├── security_group_list_cidr_blocks/ │ │ │ │ └── main.tf │ │ │ ├── security_group_multiple_rules/ │ │ │ │ └── main.tf │ │ │ ├── security_group_multiple_rules2/ │ │ │ │ └── main.tf │ │ │ ├── security_group_multiple_rules3/ │ │ │ │ └── main.tf │ │ │ ├── tag_includes/ │ │ │ │ └── main.tf │ │ │ ├── terraform_block/ │ │ │ │ └── main.tf │ │ │ ├── tf_parsing_comparison/ │ │ │ │ ├── modifications_diff/ │ │ │ │ │ └── main.tf │ │ │ │ ├── tf_old/ │ │ │ │ │ └── main.tf │ │ │ │ └── tf_regular/ │ │ │ │ └── main.tf │ │ │ ├── variable_dependent_policy/ │ │ │ │ └── main.tf │ │ │ └── variable_rendering/ │ │ │ ├── complex_var/ │ │ │ │ └── main.tf │ │ │ ├── render_complex_keys/ │ │ │ │ └── main.tf │ │ │ ├── render_deep_nesting/ │ │ │ │ ├── main.tf │ │ │ │ └── variables.tf │ │ │ ├── render_dictionary_tfvars/ │ │ │ │ ├── main.tf │ │ │ │ └── terraform.tfvars │ │ │ ├── render_from_module_def_sg/ │ │ │ │ ├── main.tf │ │ │ │ └── modules/ │ │ │ │ └── security_group/ │ │ │ │ ├── main.tf │ │ │ │ └── variables.tf │ │ │ ├── render_from_module_vpc/ │ │ │ │ ├── main.tf │ │ │ │ └── vpc/ │ │ │ │ └── variables.tf │ │ │ ├── render_lambda/ │ │ │ │ ├── main.tf │ │ │ │ └── variables.tf │ │ │ ├── render_local/ │ │ │ │ └── main.tf │ │ │ ├── render_local_from_variable/ │ │ │ │ ├── main.tf │ │ │ │ └── variables.tf │ │ │ ├── render_module_postgresql/ │ │ │ │ ├── auto_values.tf │ │ │ │ ├── main.tf │ │ │ │ ├── outputs.tf │ │ │ │ ├── variables.tf │ │ │ │ └── versions.tf │ │ │ ├── render_nested_modules/ │ │ │ │ ├── child/ │ │ │ │ │ └── main.tf │ │ │ │ ├── main.tf │ │ │ │ ├── outputs.tf │ │ │ │ └── variables.tf │ │ │ ├── render_terragoat_db_app/ │ │ │ │ ├── consts.tf │ │ │ │ └── main.tf │ │ │ ├── render_variable/ │ │ │ │ ├── main.tf │ │ │ │ └── variables.tf │ │ │ ├── terraform-aws-eks-master/ │ │ │ │ ├── eks.tf │ │ │ │ └── variables.tf │ │ │ └── unrendered/ │ │ │ └── main.tf │ │ ├── runner/ │ │ │ ├── __init__.py │ │ │ ├── test_graph_builder.py │ │ │ └── test_runner.py │ │ ├── utils/ │ │ │ ├── __init__.py │ │ │ └── test_utils.py │ │ └── variable_rendering/ │ │ ├── __init__.py │ │ ├── expected_data.py │ │ ├── expected_data_foreach.json │ │ ├── expected_foreach_module_dup_foreach.json │ │ ├── expected_foreach_modules_tf_definitions.json │ │ ├── resources/ │ │ │ ├── bad_ref_fallbacks_expected.json │ │ │ ├── colon_expected.json │ │ │ ├── count_examples/ │ │ │ │ ├── module_foreach_module_foreach_resource_count/ │ │ │ │ │ ├── level1_module/ │ │ │ │ │ │ ├── main.tf │ │ │ │ │ │ └── variables.tf │ │ │ │ │ ├── level2_module/ │ │ │ │ │ │ ├── main.tf │ │ │ │ │ │ └── variables.tf │ │ │ │ │ └── main.tf │ │ │ │ └── simple_count/ │ │ │ │ └── main.tf │ │ │ ├── data_simple/ │ │ │ │ ├── main.tf │ │ │ │ └── variables.tf │ │ │ ├── data_with_resource/ │ │ │ │ ├── data.tf │ │ │ │ ├── main.tf │ │ │ │ └── variables.tf │ │ │ ├── doc_evaluations_verify_expected.json │ │ │ ├── foreach_examples/ │ │ │ │ ├── count_dup_resources/ │ │ │ │ │ ├── main.tf │ │ │ │ │ └── variables.tf │ │ │ │ ├── depend_resources/ │ │ │ │ │ ├── main.tf │ │ │ │ │ └── variable.tf │ │ │ │ ├── foreach_dup_resources/ │ │ │ │ │ ├── main.tf │ │ │ │ │ └── variables.tf │ │ │ │ ├── foreach_lookup/ │ │ │ │ │ └── main.tf │ │ │ │ ├── foreach_tfvars/ │ │ │ │ │ ├── main.tf │ │ │ │ │ └── terraform.tfvars │ │ │ │ ├── module_foreach_module_foreach_resource_foreach/ │ │ │ │ │ ├── level1_module/ │ │ │ │ │ │ ├── main.tf │ │ │ │ │ │ └── variables.tf │ │ │ │ │ ├── level2_module/ │ │ │ │ │ │ ├── main.tf │ │ │ │ │ │ └── variables.tf │ │ │ │ │ └── main.tf │ │ │ │ └── nested_foreach_based_on_module_locals/ │ │ │ │ ├── main.tf │ │ │ │ └── s3_files/ │ │ │ │ ├── main.tf │ │ │ │ └── variables.tf │ │ │ ├── foreach_module/ │ │ │ │ ├── main.tf │ │ │ │ └── module/ │ │ │ │ ├── main.tf │ │ │ │ └── module2/ │ │ │ │ └── main.tf │ │ │ ├── foreach_module_and_resource/ │ │ │ │ ├── main.tf │ │ │ │ └── module/ │ │ │ │ └── main.tf │ │ │ ├── foreach_module_dup_foreach/ │ │ │ │ ├── main.tf │ │ │ │ ├── module/ │ │ │ │ │ ├── main.tf │ │ │ │ │ └── module2/ │ │ │ │ │ └── main.tf │ │ │ │ └── variable.tf │ │ │ ├── foreach_module_with_more_than_two_resources/ │ │ │ │ ├── main.tf │ │ │ │ └── module/ │ │ │ │ ├── main.tf │ │ │ │ └── module2/ │ │ │ │ └── main.tf │ │ │ ├── foreach_resources/ │ │ │ │ ├── dynamic_foreach_value/ │ │ │ │ │ ├── main.tf │ │ │ │ │ └── variable.tf │ │ │ │ └── static_foreach_value/ │ │ │ │ └── main.tf │ │ │ ├── merge_function_unresolved_var_expected.json │ │ │ ├── os_example_large_count_with_nested_module/ │ │ │ │ ├── child/ │ │ │ │ │ └── main.tf │ │ │ │ ├── modules.tf │ │ │ │ └── parent/ │ │ │ │ └── main.tf │ │ │ └── parser_dup_nested/ │ │ │ ├── main.tf │ │ │ ├── module/ │ │ │ │ ├── main.tf │ │ │ │ └── module2/ │ │ │ │ └── main.tf │ │ │ └── variable.tf │ │ ├── test_foreach_renderer.py │ │ ├── test_render_scenario.py │ │ ├── test_renderer.py │ │ ├── test_resources/ │ │ │ ├── default_map_value/ │ │ │ │ └── main.tf │ │ │ ├── dynamic_block_map_example/ │ │ │ │ ├── dynamic.tf │ │ │ │ ├── terraform.tfvars │ │ │ │ └── variables.tf │ │ │ ├── dynamic_block_nesting_attribute/ │ │ │ │ ├── main.tf │ │ │ │ └── variables.tf │ │ │ ├── dynamic_blocks_map/ │ │ │ │ ├── main.tf │ │ │ │ └── variables.tf │ │ │ ├── dynamic_blocks_map_brackets/ │ │ │ │ ├── main.tf │ │ │ │ └── variables.tf │ │ │ ├── dynamic_blocks_null_lookup/ │ │ │ │ ├── examples/ │ │ │ │ │ └── simple/ │ │ │ │ │ ├── main.tf │ │ │ │ │ └── variables.tf │ │ │ │ ├── main.tf │ │ │ │ └── variables.tf │ │ │ ├── dynamic_blocks_resource/ │ │ │ │ └── dynamic_block_with_list.tf │ │ │ ├── dynamic_blocks_tfvars/ │ │ │ │ ├── main.tf │ │ │ │ ├── terraform.tfvars │ │ │ │ └── variables.tf │ │ │ ├── dynamic_blocks_tfvars_merge/ │ │ │ │ ├── main.tf │ │ │ │ ├── terraform.tfvars │ │ │ │ └── variables.tf │ │ │ ├── dynamic_blocks_variable_rendering/ │ │ │ │ ├── main.tf │ │ │ │ └── variables.tf │ │ │ ├── dynamic_blocks_with_nested/ │ │ │ │ ├── main.tf │ │ │ │ └── variables.tf │ │ │ ├── dynamic_nested_with_lookup_foreach/ │ │ │ │ ├── aws_iam_role.pipeline.tf │ │ │ │ ├── aws_kms_key.example.tf │ │ │ │ ├── data.aws_region.current.tf │ │ │ │ ├── examplea.auto.tfvars │ │ │ │ ├── locals.tf │ │ │ │ ├── main.tf │ │ │ │ ├── module.codepipeline.tf │ │ │ │ └── variables.tf │ │ │ ├── dynamic_with_conditional_expression/ │ │ │ │ ├── cosmosdb_account_main.tf │ │ │ │ └── cosmosdb_account_vars.tf │ │ │ ├── list_entry_module_var/ │ │ │ │ └── module/ │ │ │ │ └── main.tf │ │ │ ├── lookup_from_var/ │ │ │ │ └── main.tf │ │ │ ├── multiple_dynamic_blocks/ │ │ │ │ └── main.tf │ │ │ ├── provider_alias/ │ │ │ │ └── main.tf │ │ │ ├── skip_renderer/ │ │ │ │ └── ellipsis.tf │ │ │ └── tfvar_module_variables/ │ │ │ ├── install_airpods.tf │ │ │ ├── modules/ │ │ │ │ └── instance/ │ │ │ │ ├── main.tf │ │ │ │ ├── outputs.tf │ │ │ │ └── variables.tf │ │ │ ├── outputs.tf │ │ │ ├── provider.tf │ │ │ ├── terraform.tfvars │ │ │ └── variables.tf │ │ └── test_string_evaluation.py │ ├── image_referencer/ │ │ ├── __init__.py │ │ ├── provider/ │ │ │ ├── __init__.py │ │ │ ├── test_aws.py │ │ │ ├── test_azure.py │ │ │ └── test_gcp.py │ │ ├── resources/ │ │ │ ├── aws/ │ │ │ │ ├── apprunner.tf │ │ │ │ ├── apprunner_tfplan.json │ │ │ │ ├── batch.tf │ │ │ │ ├── batch_tfplan.json │ │ │ │ ├── codebuild.tf │ │ │ │ ├── codebuild_tfplan.json │ │ │ │ ├── ecs.tf │ │ │ │ ├── ecs_tfplan.json │ │ │ │ ├── lightsail.tf │ │ │ │ ├── lightsail_tfplan.json │ │ │ │ ├── sagemaker_image_version.tf │ │ │ │ └── sagemaker_model.tf │ │ │ ├── azure/ │ │ │ │ ├── app_service_linux_function.tf │ │ │ │ ├── app_service_linux_web.tf │ │ │ │ ├── app_service_windows_web.tf │ │ │ │ ├── batch.tf │ │ │ │ ├── containers.tf │ │ │ │ └── spring_cloud.tf │ │ │ └── gcp/ │ │ │ ├── cloud_run.tf │ │ │ ├── cloud_run_v2.tf │ │ │ └── cloudbuild.tf │ │ ├── test_manager.py │ │ ├── test_plan_runner_aws_resources.py │ │ ├── test_runner_aws_resources.py │ │ ├── test_runner_azure_resources.py │ │ └── test_runner_gcp_resources.py │ ├── module_loading/ │ │ ├── __init__.py │ │ ├── data/ │ │ │ ├── nested_modules/ │ │ │ │ └── main.tf │ │ │ ├── tf_managed_modules/ │ │ │ │ └── main.tf │ │ │ ├── tf_managed_submodules/ │ │ │ │ └── main.tf │ │ │ └── tf_module_downloader/ │ │ │ ├── private_registry_modules/ │ │ │ │ └── main.tf │ │ │ └── public_modules/ │ │ │ └── main.tf │ │ ├── loaders/ │ │ │ ├── __init__.py │ │ │ ├── resources/ │ │ │ │ └── README.txt │ │ │ ├── test_git_loader.py │ │ │ ├── test_local_path_loader.py │ │ │ ├── test_registry_loader.py │ │ │ └── test_version_parser.py │ │ ├── test_registry.py │ │ ├── test_runner.py │ │ └── test_tf_module_finder.py │ ├── parser/ │ │ ├── __init__.py │ │ ├── resources/ │ │ │ ├── double_slash.tf │ │ │ ├── failing_module_address/ │ │ │ │ └── registry_security_group.tf │ │ │ ├── file_bom/ │ │ │ │ ├── with_bom.tf │ │ │ │ └── without_bom.tf │ │ │ ├── hcl_timeout/ │ │ │ │ └── main.tf │ │ │ ├── local_module/ │ │ │ │ ├── main.tf │ │ │ │ └── module/ │ │ │ │ └── main.tf │ │ │ ├── malformed_outputs/ │ │ │ │ └── main.tf │ │ │ ├── parse_backtrack_module/ │ │ │ │ ├── example/ │ │ │ │ │ └── main.tf │ │ │ │ └── main.tf │ │ │ ├── parse_file_vs_dir/ │ │ │ │ └── main.tf │ │ │ ├── parser_dup_nested/ │ │ │ │ ├── main.tf │ │ │ │ └── module/ │ │ │ │ ├── main.tf │ │ │ │ └── module2/ │ │ │ │ └── main.tf │ │ │ ├── parser_nested_modules/ │ │ │ │ ├── main.tf │ │ │ │ └── module/ │ │ │ │ ├── main.tf │ │ │ │ ├── module2/ │ │ │ │ │ ├── main.tf │ │ │ │ │ └── variable.tf │ │ │ │ └── variable.tf │ │ │ ├── parser_scenarios/ │ │ │ │ ├── README.md │ │ │ │ ├── account_dirs_and_modules/ │ │ │ │ │ ├── envs/ │ │ │ │ │ │ ├── myaccount/ │ │ │ │ │ │ │ └── us-east-1/ │ │ │ │ │ │ │ ├── main.tf │ │ │ │ │ │ │ ├── terraform.tfvars │ │ │ │ │ │ │ └── variables.tf │ │ │ │ │ │ └── myotheraccount/ │ │ │ │ │ │ └── us-east-1/ │ │ │ │ │ │ ├── main.tf │ │ │ │ │ │ ├── terraform.tfvars │ │ │ │ │ │ └── variables.tf │ │ │ │ │ ├── expected.json │ │ │ │ │ └── modules/ │ │ │ │ │ └── db/ │ │ │ │ │ ├── db.tf │ │ │ │ │ └── variables.tf │ │ │ │ ├── bad_ref_fallbacks/ │ │ │ │ │ ├── expected.json │ │ │ │ │ └── main.tf │ │ │ │ ├── bad_tf_nested_modules_enable/ │ │ │ │ │ ├── expected.json │ │ │ │ │ └── skip_bad_tf_example.tf │ │ │ │ ├── bogus_function/ │ │ │ │ │ ├── expected.json │ │ │ │ │ └── main.tf │ │ │ │ ├── colon/ │ │ │ │ │ ├── colon.tf │ │ │ │ │ └── expected.json │ │ │ │ ├── compound_local/ │ │ │ │ │ ├── checkov.tf │ │ │ │ │ └── expected.json │ │ │ │ ├── concat_function/ │ │ │ │ │ ├── expected.json │ │ │ │ │ └── main.tf │ │ │ │ ├── count_eval/ │ │ │ │ │ ├── main.tf │ │ │ │ │ ├── modules/ │ │ │ │ │ │ ├── fabric-net-firewall/ │ │ │ │ │ │ │ ├── main.tf │ │ │ │ │ │ │ ├── outputs.tf │ │ │ │ │ │ │ └── variables.tf │ │ │ │ │ │ ├── fabric-net-svpc-access/ │ │ │ │ │ │ │ ├── main.tf │ │ │ │ │ │ │ ├── outputs.tf │ │ │ │ │ │ │ └── variables.tf │ │ │ │ │ │ ├── network-peering/ │ │ │ │ │ │ │ ├── main.tf │ │ │ │ │ │ │ ├── outputs.tf │ │ │ │ │ │ │ └── variables.tf │ │ │ │ │ │ ├── routes/ │ │ │ │ │ │ │ ├── main.tf │ │ │ │ │ │ │ ├── outputs.tf │ │ │ │ │ │ │ └── variables.tf │ │ │ │ │ │ ├── routes-beta/ │ │ │ │ │ │ │ ├── main.tf │ │ │ │ │ │ │ ├── outputs.tf │ │ │ │ │ │ │ └── variables.tf │ │ │ │ │ │ ├── subnets/ │ │ │ │ │ │ │ ├── main.tf │ │ │ │ │ │ │ ├── outputs.tf │ │ │ │ │ │ │ └── variables.tf │ │ │ │ │ │ ├── subnets-beta/ │ │ │ │ │ │ │ ├── main.tf │ │ │ │ │ │ │ ├── outputs.tf │ │ │ │ │ │ │ └── variables.tf │ │ │ │ │ │ └── vpc/ │ │ │ │ │ │ ├── main.tf │ │ │ │ │ │ ├── outputs.tf │ │ │ │ │ │ └── variables.tf │ │ │ │ │ ├── outputs.tf │ │ │ │ │ └── variables.tf │ │ │ │ ├── default_evaluation/ │ │ │ │ │ ├── expected.json │ │ │ │ │ ├── main.tf │ │ │ │ │ └── variables.tf │ │ │ │ ├── default_var_types/ │ │ │ │ │ ├── expected.json │ │ │ │ │ └── main.tf │ │ │ │ ├── doc_evaluations_verify/ │ │ │ │ │ ├── README.md │ │ │ │ │ ├── eval.json │ │ │ │ │ ├── expected.json │ │ │ │ │ ├── main.tf │ │ │ │ │ └── variables.tf │ │ │ │ ├── empty_file/ │ │ │ │ │ ├── evaluation.json │ │ │ │ │ ├── expected.json │ │ │ │ │ └── main.tf │ │ │ │ ├── formatting/ │ │ │ │ │ ├── expected.json │ │ │ │ │ └── main.tf │ │ │ │ ├── json_807/ │ │ │ │ │ ├── cdk.tf.json │ │ │ │ │ └── expected.json │ │ │ │ ├── list_default_622/ │ │ │ │ │ ├── expected.json │ │ │ │ │ └── test.tf │ │ │ │ ├── local_block/ │ │ │ │ │ ├── eval.json │ │ │ │ │ ├── expected.json │ │ │ │ │ └── name_doesnt_matter.tf │ │ │ │ ├── local_bool_string_conversion/ │ │ │ │ │ ├── eval.json │ │ │ │ │ ├── expected.json │ │ │ │ │ └── name_doesnt_matter.tf │ │ │ │ ├── map_function/ │ │ │ │ │ ├── expected.json │ │ │ │ │ └── main.tf │ │ │ │ ├── maze_of_variables/ │ │ │ │ │ ├── bucket/ │ │ │ │ │ │ └── bucket.tf │ │ │ │ │ ├── expected.json │ │ │ │ │ └── maze.tf │ │ │ │ ├── merge_function/ │ │ │ │ │ ├── expected.json │ │ │ │ │ └── main.tf │ │ │ │ ├── merge_function_unresolved_var/ │ │ │ │ │ ├── expected.json │ │ │ │ │ └── main.tf │ │ │ │ ├── module_matryoshka_nested_module_enable/ │ │ │ │ │ ├── bucket1/ │ │ │ │ │ │ ├── bucket.tf │ │ │ │ │ │ └── bucket2/ │ │ │ │ │ │ ├── bucket.tf │ │ │ │ │ │ └── bucket3/ │ │ │ │ │ │ └── bucket.tf │ │ │ │ │ ├── buckets.tf │ │ │ │ │ └── expected.json │ │ │ │ ├── module_multiple_usage/ │ │ │ │ │ ├── bucket/ │ │ │ │ │ │ └── bucket.tf │ │ │ │ │ ├── buckets.tf │ │ │ │ │ └── expected.json │ │ │ │ ├── module_output_reference/ │ │ │ │ │ ├── bucket/ │ │ │ │ │ │ └── bucket.tf │ │ │ │ │ ├── common/ │ │ │ │ │ │ └── common.tf │ │ │ │ │ ├── expected.json │ │ │ │ │ └── main.tf │ │ │ │ ├── module_reference/ │ │ │ │ │ ├── bucket/ │ │ │ │ │ │ └── bucket.tf │ │ │ │ │ ├── expected.json │ │ │ │ │ └── main.tf │ │ │ │ ├── module_simple/ │ │ │ │ │ ├── bucket/ │ │ │ │ │ │ └── bucket.tf │ │ │ │ │ ├── expected.json │ │ │ │ │ └── main.tf │ │ │ │ ├── module_simple_up_dir_ref/ │ │ │ │ │ ├── bucket/ │ │ │ │ │ │ └── bucket.tf │ │ │ │ │ ├── expected.json │ │ │ │ │ └── tf/ │ │ │ │ │ └── main.tf │ │ │ │ ├── nested_modules_instances_enable/ │ │ │ │ │ ├── expected.json │ │ │ │ │ └── tf_module/ │ │ │ │ │ ├── main.tf │ │ │ │ │ └── module/ │ │ │ │ │ ├── main.tf │ │ │ │ │ ├── module2/ │ │ │ │ │ │ ├── main.tf │ │ │ │ │ │ └── variable.tf │ │ │ │ │ └── variable.tf │ │ │ │ ├── null_variables_651/ │ │ │ │ │ ├── expected.json │ │ │ │ │ └── main.tf │ │ │ │ ├── simple_bucket_single_file/ │ │ │ │ │ ├── expected.json │ │ │ │ │ └── main.tf │ │ │ │ ├── ternaries/ │ │ │ │ │ ├── expected.json │ │ │ │ │ └── main.tf │ │ │ │ ├── ternary_793/ │ │ │ │ │ ├── expected.json │ │ │ │ │ └── main.tf │ │ │ │ ├── tfvars/ │ │ │ │ │ ├── expected.json │ │ │ │ │ ├── main.tf │ │ │ │ │ ├── other1.tfvars │ │ │ │ │ ├── other2.tfvars │ │ │ │ │ ├── other3.tfvars │ │ │ │ │ ├── terraform.tfvars │ │ │ │ │ ├── x.auto.tfvars │ │ │ │ │ └── y.auto.tfvars │ │ │ │ ├── tfvars_outside_dir/ │ │ │ │ │ ├── expected.json │ │ │ │ │ └── main.tf │ │ │ │ ├── tobool_function/ │ │ │ │ │ ├── expected.json │ │ │ │ │ └── main.tf │ │ │ │ ├── tolist_function/ │ │ │ │ │ ├── expected.json │ │ │ │ │ └── main.tf │ │ │ │ ├── tomap_function/ │ │ │ │ │ ├── expected.json │ │ │ │ │ └── main.tf │ │ │ │ ├── tonumber_function/ │ │ │ │ │ ├── expected.json │ │ │ │ │ └── main.tf │ │ │ │ ├── toset_function/ │ │ │ │ │ ├── expected.json │ │ │ │ │ └── main.tf │ │ │ │ ├── tostring_function/ │ │ │ │ │ ├── expected.json │ │ │ │ │ └── main.tf │ │ │ │ ├── variable_defaults/ │ │ │ │ │ ├── eval.json │ │ │ │ │ ├── expected.json │ │ │ │ │ └── name_doesnt_matter.tf │ │ │ │ └── variable_defaults_separate_files/ │ │ │ │ ├── eval.json │ │ │ │ ├── expected.json │ │ │ │ ├── main.tf │ │ │ │ └── variables.tf │ │ │ ├── parser_tfvars/ │ │ │ │ ├── main.tf │ │ │ │ └── other.tfvars │ │ │ ├── plan_after_unknown/ │ │ │ │ └── tfplan.json │ │ │ ├── plan_booleans/ │ │ │ │ └── tfplan.json │ │ │ ├── plan_encodings/ │ │ │ │ ├── tfplan_mac_utf8.json │ │ │ │ ├── tfplan_win_utf16.json │ │ │ │ └── tfplan_win_utf8.json │ │ │ ├── plan_module_with_connected_resources/ │ │ │ │ ├── s3module.tf │ │ │ │ └── tfplan.json │ │ │ ├── plan_multiple_providers/ │ │ │ │ ├── multiple_providers.tf │ │ │ │ └── tfplan.json │ │ │ ├── plan_provisioners/ │ │ │ │ ├── tfplan.json │ │ │ │ └── tfplan2.json │ │ │ ├── plan_tags/ │ │ │ │ └── tfplan.json │ │ │ ├── plan_tags_variety/ │ │ │ │ ├── tags.tf │ │ │ │ └── tfplan.json │ │ │ ├── plan_vpc_endpoint/ │ │ │ │ └── tfplan.json │ │ │ ├── registry_security_group/ │ │ │ │ └── registry_security_group.tf │ │ │ └── registry_security_group_inner_module/ │ │ │ └── main.tf │ │ ├── skip_bad_tf_example.tf │ │ ├── test_hcl2_load_assumptions.py │ │ ├── test_module.py │ │ ├── test_new_parser_modules.py │ │ ├── test_parse_file_vs_dir.py │ │ ├── test_parser_internals.py │ │ ├── test_parser_var_blocks.py │ │ └── test_plan_parser.py │ ├── runner/ │ │ ├── __init__.py │ │ ├── extra_checks/ │ │ │ ├── S3EnvironmentCheck.py │ │ │ ├── __init__.py │ │ │ └── nested/ │ │ │ ├── S3EnvironmentCheck2.py │ │ │ └── __init__.py │ │ ├── extra_tf_plan_checks/ │ │ │ ├── __init__.py │ │ │ ├── modules.json │ │ │ ├── nsg_rule_connection.yaml │ │ │ ├── secret_not_deleted.py │ │ │ ├── secret_not_deleted.yaml │ │ │ └── security_group_rule_protocol_changed.py │ │ ├── extra_yaml_checks/ │ │ │ ├── aws_provider_check.yaml │ │ │ ├── bucket_versioned_owned.yaml │ │ │ ├── module_source.yaml │ │ │ ├── policy_violations.yaml │ │ │ └── test_tag.yaml │ │ ├── py_check_tf_plan/ │ │ │ ├── __init__.py │ │ │ └── check_tf_plan.py │ │ ├── py_graph_check/ │ │ │ ├── __init__.py │ │ │ └── py_graph_check.py │ │ ├── resources/ │ │ │ ├── definition_context_path_nested_modules/ │ │ │ │ ├── main.tf │ │ │ │ └── module/ │ │ │ │ ├── main.tf │ │ │ │ ├── module2/ │ │ │ │ │ ├── main.tf │ │ │ │ │ └── variable.tf │ │ │ │ └── variable.tf │ │ │ ├── duplicate_violations/ │ │ │ │ ├── modules/ │ │ │ │ │ └── main.tf │ │ │ │ └── src/ │ │ │ │ ├── main1.tf │ │ │ │ └── main2.tf │ │ │ ├── empty_locals/ │ │ │ │ └── locals.tf │ │ │ ├── example/ │ │ │ │ ├── example.tf │ │ │ │ └── invalid.tf │ │ │ ├── extra_check_test/ │ │ │ │ └── s3.tf │ │ │ ├── for_each/ │ │ │ │ ├── main.tf │ │ │ │ └── simple/ │ │ │ │ ├── alerts.tf │ │ │ │ ├── main.tf │ │ │ │ └── outputs.tf │ │ │ ├── get_graph_resource_entity_config/ │ │ │ │ ├── main.tf │ │ │ │ └── variables.tf │ │ │ ├── hcl_0.11/ │ │ │ │ └── main.tf │ │ │ ├── hcl_timeout/ │ │ │ │ └── main.tf │ │ │ ├── hidden_dir/ │ │ │ │ ├── .dir/ │ │ │ │ │ └── .example1.tf │ │ │ │ ├── .example2.tf │ │ │ │ ├── dir1/ │ │ │ │ │ ├── .example1.tf │ │ │ │ │ └── example.tf │ │ │ │ └── example.tf │ │ │ ├── invalid_terraform_syntax/ │ │ │ │ ├── bad_tf_1.tf │ │ │ │ └── bad_tf_2.tf │ │ │ ├── list_of_routes/ │ │ │ │ └── list_of_routes.tf │ │ │ ├── malformed_857/ │ │ │ │ └── main.tf │ │ │ ├── many_providers/ │ │ │ │ └── main.tf │ │ │ ├── merge_operator/ │ │ │ │ ├── main.tf │ │ │ │ └── query/ │ │ │ │ └── TagsQuery.yaml │ │ │ ├── module_check/ │ │ │ │ └── main.tf │ │ │ ├── module_failure_reporting_772/ │ │ │ │ ├── main.tf │ │ │ │ └── module/ │ │ │ │ └── module.tf │ │ │ ├── module_skip/ │ │ │ │ ├── another/ │ │ │ │ │ └── module/ │ │ │ │ │ ├── module-3/ │ │ │ │ │ │ └── module.tf │ │ │ │ │ └── module.tf │ │ │ │ ├── main.tf │ │ │ │ └── module/ │ │ │ │ └── module.tf │ │ │ ├── multi_line_ternary/ │ │ │ │ └── main.tf │ │ │ ├── multiple_module_versions/ │ │ │ │ ├── main.tf │ │ │ │ └── main_2.tf │ │ │ ├── nested_dir/ │ │ │ │ ├── dir1/ │ │ │ │ │ └── example.tf │ │ │ │ └── example.tf │ │ │ ├── nested_modules_caller_file/ │ │ │ │ ├── main.tf │ │ │ │ └── module/ │ │ │ │ └── module.tf │ │ │ ├── plan/ │ │ │ │ ├── corrupted-tfplan.json │ │ │ │ ├── tf_plan_filtered_rule_fail.json │ │ │ │ ├── tf_plan_filtered_rule_success.json │ │ │ │ └── tfplan.json │ │ │ ├── plan_and_tf_combine_graph/ │ │ │ │ ├── source/ │ │ │ │ │ ├── main.tf │ │ │ │ │ ├── module/ │ │ │ │ │ │ ├── main.tf │ │ │ │ │ │ └── variable.tf │ │ │ │ │ └── module2/ │ │ │ │ │ ├── main.tf │ │ │ │ │ └── variable.tf │ │ │ │ └── tfplan.json │ │ │ ├── plan_and_tf_combine_graph_with_missing_resources/ │ │ │ │ ├── source/ │ │ │ │ │ ├── main.tf │ │ │ │ │ ├── module/ │ │ │ │ │ │ ├── main.tf │ │ │ │ │ │ └── variable.tf │ │ │ │ │ └── module2/ │ │ │ │ │ ├── main.tf │ │ │ │ │ └── variable.tf │ │ │ │ └── tfplan.json │ │ │ ├── plan_change_keys/ │ │ │ │ └── tfplan.json │ │ │ ├── plan_data_resource_partial_values/ │ │ │ │ └── tfplan.json │ │ │ ├── plan_nested_child_modules/ │ │ │ │ └── tfplan.json │ │ │ ├── plan_nested_child_modules_with_connections/ │ │ │ │ └── tfplan.json │ │ │ ├── plan_resources_ids/ │ │ │ │ └── tfplan.json │ │ │ ├── plan_resources_ids_with_nested_modules/ │ │ │ │ └── tfplan.json │ │ │ ├── plan_root_module_resources_no_values/ │ │ │ │ ├── tfplan.json │ │ │ │ └── tfplan_route53.json │ │ │ ├── plan_with_child_modules/ │ │ │ │ └── tfplan.json │ │ │ ├── plan_with_deleted_resources/ │ │ │ │ └── tfplan.json │ │ │ ├── plan_with_iam_data_block/ │ │ │ │ ├── main.tf │ │ │ │ └── tfplan.json │ │ │ ├── plan_with_iam_policies/ │ │ │ │ ├── main.tf │ │ │ │ └── tfplan.json │ │ │ ├── plan_with_lifecycle_check/ │ │ │ │ └── tfplan.json │ │ │ ├── plan_with_providers/ │ │ │ │ ├── main.tf │ │ │ │ └── tfplan.json │ │ │ ├── plan_with_resource_reference/ │ │ │ │ ├── tfplan.json │ │ │ │ ├── tfplan_extra_ref.json │ │ │ │ └── tfplan_graph.json │ │ │ ├── plan_with_utf_16_encoding/ │ │ │ │ └── tfplan.json │ │ │ ├── provider_blocks/ │ │ │ │ └── main.tf │ │ │ ├── py_graph_check/ │ │ │ │ └── main.tf │ │ │ ├── py_graph_check_tf_plan/ │ │ │ │ └── py_graph_check_paln.json │ │ │ ├── resource_ids_nested_modules/ │ │ │ │ ├── main.tf │ │ │ │ └── module/ │ │ │ │ ├── main.tf │ │ │ │ ├── module2/ │ │ │ │ │ ├── main.tf │ │ │ │ │ └── variable.tf │ │ │ │ └── variable.tf │ │ │ ├── resource_negative_value_without_var/ │ │ │ │ ├── main.tf │ │ │ │ ├── variables.tf │ │ │ │ └── variables_unscoped.tf │ │ │ ├── resource_value_without_var/ │ │ │ │ ├── main.tf │ │ │ │ ├── variables.tf │ │ │ │ └── variables_unscoped.tf │ │ │ ├── tf_raw_resource/ │ │ │ │ └── main.tf │ │ │ ├── tf_with_hcl_files/ │ │ │ │ ├── example_acl_fail.hcl │ │ │ │ └── example_acl_fail.tf │ │ │ ├── unbalanced_eval_brackets/ │ │ │ │ └── main.tf │ │ │ ├── unexpected/ │ │ │ │ ├── eks_node_group_remote_access.json │ │ │ │ └── unexpected.md │ │ │ ├── unrendered_vars/ │ │ │ │ ├── bucket_equals.yaml │ │ │ │ ├── bucket_exists.yaml │ │ │ │ ├── component_equals.yaml │ │ │ │ ├── component_exists.yaml │ │ │ │ ├── nested.tf │ │ │ │ └── simple.tf │ │ │ ├── valid_tf_only_failed_checks/ │ │ │ │ └── example_acl_fail.tf │ │ │ ├── valid_tf_only_module_usage/ │ │ │ │ └── example.tf │ │ │ ├── valid_tf_only_passed_checks/ │ │ │ │ ├── example.tf │ │ │ │ └── example_skip_acl.tf │ │ │ └── valid_tf_only_resource_usage/ │ │ │ └── example.tf │ │ ├── test_plan_runner.py │ │ ├── test_runner.py │ │ ├── tf_plan_skip_check_regex/ │ │ │ ├── resource/ │ │ │ │ ├── skip_directory/ │ │ │ │ │ └── tfplan2.json │ │ │ │ └── tfplan1.json │ │ │ └── test_tf_plan_skip_check_regex.py │ │ └── tfplan2.json │ ├── test_provider_tags.py │ ├── test_scanner_registry.py │ └── util/ │ ├── __init__.py │ ├── test_doc_generator.py │ └── test_iam_converter.py ├── terraform_json/ │ ├── __init__.py │ ├── examples/ │ │ └── cdk.tf.json │ ├── test_graph_manager.py │ ├── test_parser.py │ └── test_runner.py ├── test_contributor_metrics.py ├── test_main.py ├── test_runner_filter.py └── unit/ ├── __init__.py └── test_secrets.py