Free plan Signups are open now. The full audytx engine — Terraform and CloudFormation — is live. The Free plan is 100 scans a month and stays free — paid tiers arrive Nov 01, 2026 from $20/month for unlimited repositories. Try it on your own code.

Rules

301 checks for AWS Terraform and CloudFormation, read from the same catalog the engine runs. Each page says what the check looks at and how to fix it.

125 shown.

ACM

AWS_ACM_001ACM certificate should use DNS validation instead of email validationMEDIUM

APIGW

AWS_APIGW_001API Gateway REST stage should have access logging enabledMEDIUM
AWS_APIGW_005API Gateway stage has neither X-Ray nor access logsMEDIUM
AWS_APIGW_006API Gateway custom domain should not use the legacy TLS 1.0 security policyMEDIUM
AWS_APIGW_007API Gateway method cache should be encrypted when caching is enabledMEDIUM

ATHENA

AWS_ATHENA_001Athena workgroup should enforce workgroup configuration and encrypt query resultsMEDIUM

BACKUP

AWS_BACKUP_001AWS Backup vault should have Vault Lock enabled for immutable backupsMEDIUM

BEDROCK

AWS_BEDROCK_002Bedrock agent conversation data not encrypted with a customer-managed keyMEDIUM
AWS_BEDROCK_006Bedrock AgentCore memory not encrypted with a customer-managed keyMEDIUM
AWS_BEDROCK_007Bedrock AgentCore gateway not encrypted with a customer-managed keyMEDIUM

CLOUDFRONT

AWS_CLOUDFRONT_002CloudFront distribution should enforce a minimum TLS version of TLSv1.2MEDIUM
AWS_CLOUDFRONT_005CloudFront distribution should have a WAF web ACL associatedMEDIUM
AWS_CLOUDFRONT_006CloudFront distribution should have access logging enabledMEDIUM
AWS_CLOUDFRONT_007CloudFront Field Level Encryption profile is configured but not assigned to cache behaviorMEDIUM

CODEBUILD

AWS_CODEBUILD_004CodeBuild project build artifact encryption should be enabledMEDIUM

COGNITO

AWS_COGNITO_002Cognito user pool should enable MFAMEDIUM

CT

AWS_CT_002CloudTrail trail should have log file validation enabledMEDIUM
AWS_CT_003CloudTrail trail should integrate with CloudWatch LogsMEDIUM
AWS_CT_005CloudTrail trail should encrypt logs with a KMS key (SSE-KMS)MEDIUM

DDB

AWS_DDB_001DynamoDB table should have Point-in-Time Recovery (PITR) enabledMEDIUM
AWS_DDB_003DynamoDB table should have deletion protection enabledMEDIUM

DOCDB

AWS_DOCDB_002DocumentDB cluster should export audit logs to CloudWatchMEDIUM

EC2

AWS_EC2_004EC2 instance uses a GPU or compute-intensive type without a shutdown scheduleMEDIUM
AWS_EC2_011IMDS hop limit above 1 exposes the instance role to containers on the hostMEDIUM
AWS_EC2_013EC2 root volume is unencrypted because EBS encryption by default is turned offMEDIUM

ECR

AWS_ECR_001ECR repository should have scan-on-push enabledMEDIUM
AWS_ECR_002ECR repository should have image tag immutability enabledMEDIUM

ECS

AWS_ECS_002ECS task definition container should use a read-only root filesystemMEDIUM
AWS_ECS_004ECS task definition should specify a task role for fine-grained IAM accessMEDIUM
AWS_ECS_005ECS task definition should configure log driver for audit containersMEDIUM
AWS_ECS_006ECS Exec (SSM-based shell access) should log to CloudWatch or S3MEDIUM

EFS

AWS_EFS_002EFS file system should have a backup policy enabledMEDIUM

EKS

AWS_EKS_002EKS cluster should have control-plane logging enabledMEDIUM
AWS_EKS_005EKS node group with SSH access should restrict source security groupsMEDIUM

ELASTICACHE

AWS_ELASTICACHE_004ElastiCache replication group should have automatic failover enabledMEDIUM
AWS_ELASTICACHE_005ElastiCache cluster (standalone) should be upgraded to a replication groupMEDIUM
AWS_ELASTICACHE_007ElastiCache Redis cluster should retain at least one automatic snapshotMEDIUM

ELB

AWS_ELB_001Load balancer should have access logging enabledMEDIUM
AWS_ELB_005ALB HTTP listener should redirect to HTTPSMEDIUM

EMR

AWS_EMR_001EMR Serverless application should have auto-stop configuredMEDIUM
AWS_EMR_002EMR Serverless application should have maximum capacity limits setMEDIUM

EVENTBRIDGE

AWS_EVENTBRIDGE_001EventBridge Lambda targets should have invocation authorizationMEDIUM

FIREHOSE

AWS_FIREHOSE_001Kinesis Firehose delivery stream should have server-side encryption enabledMEDIUM

FSX

AWS_FSX_001FSx file system should use a customer-managed KMS key for encryptionMEDIUM

GA

AWS_GA_001Global Accelerator should enable flow logsMEDIUM

GDY

AWS_GDY_002GuardDuty S3 protection should be enabledMEDIUM
AWS_GDY_003GuardDuty EKS protection should be enabledMEDIUM

GLUE

AWS_GLUE_002Glue catalog database table with JSON classifier should use SSE-KMSMEDIUM

IAM

AWS_IAM_002IAM password policy maximum age should be positive and no more than 90 daysMEDIUM
AWS_IAM_003IAM users should not have inline policies attachedMEDIUM
AWS_IAM_011GitHub OIDC role leaves the branch or environment open with a wildcardMEDIUM
AWS_IAM_012IAM password policy should prevent password reuseMEDIUM

KINESIS

AWS_KINESIS_001Kinesis Data Stream should use KMS server-side encryptionMEDIUM

KMS

AWS_KMS_001KMS key should have automatic rotation enabledMEDIUM
AWS_KMS_003KMS multi-region key should restrict replica regions via key policyMEDIUM

LAMBDA

AWS_LAMBDA_004Lambda function should have a dead-letter queue configuredMEDIUM
AWS_LAMBDA_007Lambda function should have an explicitly declared CloudWatch log groupMEDIUM

LOGS

AWS_LOGS_001CloudWatch log group should have a retention period configuredMEDIUM

MQ

AWS_MQ_002Amazon MQ for ActiveMQ broker should enable audit logging to CloudWatchMEDIUM

MSK

AWS_MSK_004MSK cluster should deliver broker logs to CloudWatch, S3, or FirehoseMEDIUM

NEPTUNE

AWS_NEPTUNE_002Neptune cluster should have audit logging enabledMEDIUM
AWS_NEPTUNE_003Neptune cluster should have IAM database authentication enabledMEDIUM

OPENSEARCH

AWS_OPENSEARCH_003OpenSearch domain should have node-to-node encryption enabledMEDIUM
AWS_OPENSEARCH_004OpenSearch domain should have fine-grained access control enabledMEDIUM
AWS_OPENSEARCH_005OpenSearch domain should have audit logging enabledMEDIUM

OPS

AWS_OPS_001Long-running Lambda has no DLQ and no reserved concurrencyMEDIUM
AWS_OPS_006SQS visibility timeout under 60 seconds (including creation default)MEDIUM
AWS_OPS_009RDS changes applied immediately instead of in the maintenance windowMEDIUM
AWS_OPS_011CloudWatch alarm uses Average statistic for a latency-shaped metricMEDIUM
AWS_OPS_012CloudWatch alarm on a critical metric treats missing data as missingMEDIUM
AWS_OPS_023RDS engine version pinned to the major version only, with automatic minor upgrades onMEDIUM
AWS_OPS_025Internet-facing load balancer lacks proven health-aware DNS routingMEDIUM
AWS_OPS_026Load balancer has deletion protection turned offMEDIUM
AWS_OPS_027Lambda async invocation with no reserved concurrency (retry-storm risk)MEDIUM
AWS_OPS_029ECS service runs a single task (no redundancy)MEDIUM
AWS_OPS_034Aurora cluster keeps backups for one day or lessMEDIUM
AWS_OPS_035IAM role or user is missing a permissions boundaryMEDIUM
AWS_OPS_037IAM user credentials: prefer federation for people and roles for workloadsMEDIUM
AWS_OPS_038Declared IAM access key should have a documented rotation planMEDIUM
AWS_OPS_043IAM password policy has no minimum length of its own (the API default of 6 applies)MEDIUM
AWS_OPS_056Lambda function is configured with 10,240 MB or more of memoryMEDIUM
AWS_OPS_060Step Functions Express state machine (5-minute limit)MEDIUM
AWS_OPS_062Sharded ElastiCache replication group needs a cluster mode reviewMEDIUM
AWS_OPS_064Aurora Serverless v1 cluster (end of life)MEDIUM
AWS_OPS_067Stateful resource has no prevent-destroy guardMEDIUM
AWS_OPS_074Terraform S3 backend without encryption or a state lockMEDIUM
AWS_OPS_076Resource module sourced from raw GitHub URL (no version pin)MEDIUM
AWS_OPS_077Secrets Manager access should use a VPC endpoint, not public internetMEDIUM
AWS_OPS_078KMS access should use a VPC endpoint, not public internetMEDIUM
AWS_OPS_079ECR access should use VPC endpoints to avoid public internet pullMEDIUM
AWS_OPS_084AWS Backup vault should use a CMK for encryptionMEDIUM
AWS_OPS_086AWS Inspector v2 should be enabled for EC2 and ECR vulnerability scanningMEDIUM

RDS

AWS_RDS_004RDS production instance should have Multi-AZ enabledMEDIUM
AWS_RDS_007Aurora cluster has no explicit customer-managed key choiceMEDIUM
AWS_RDS_010Aurora cluster does not enable IAM database authenticationMEDIUM
AWS_RDS_011Aurora cluster has fewer than two instances — no Multi-AZ failover targetMEDIUM
AWS_RDS_013RDS Enhanced Monitoring is disabled or the monitoring role is invalidMEDIUM
AWS_RDS_015Aurora global cluster has no demonstrated customer-managed key choiceMEDIUM
AWS_RDS_016RDS automatic minor version upgrades are disabledMEDIUM
AWS_RDS_017RDS backup retention period is shorter than 7 daysMEDIUM

REDSHIFT

AWS_REDSHIFT_004Redshift cluster should have user activity logging enabledMEDIUM

ROUTE53

AWS_ROUTE53_001Route53 hosted zone should have DNSSEC signing enabledMEDIUM
AWS_ROUTE53_003Route53 failover record with PRIMARY role should have a health checkMEDIUM
AWS_ROUTE53_004Route53 public hosted zone should log DNS queriesMEDIUM

S3

AWS_S3_004S3 bucket should have access logging enabledMEDIUM
AWS_S3_011S3 audit/compliance bucket has no object-lock configurationMEDIUM
AWS_S3_017S3 bucket has no server access loggingMEDIUM

SAGEMAKER

AWS_SAGEMAKER_001SageMaker domain should be in a VPC with security groups configuredMEDIUM
AWS_SAGEMAKER_003SageMaker notebook instance should not enable root accessMEDIUM
AWS_SAGEMAKER_004SageMaker endpoint configuration should specify a KMS key for its storage volumeMEDIUM

SFN

AWS_SFN_001Step Functions state machine should have logging enabledMEDIUM

SM

AWS_SM_001Secrets Manager secret should have automatic rotation configuredMEDIUM

SNS

AWS_SNS_001SNS topic should use a customer-managed KMS key for encryptionMEDIUM
AWS_SNS_002SNS topic access policy should enforce TLS-only accessMEDIUM

SQS

AWS_SQS_001SQS queue without inline redrive should specify a KMS encryption keyMEDIUM
AWS_SQS_002SQS queue should have a dead-letter queue configuredMEDIUM
AWS_SQS_003SQS queue has server-side encryption explicitly disabledMEDIUM

VPC

AWS_VPC_001VPC has no associated flow logsMEDIUM
AWS_VPC_002VPC peering connection has no route table entry on requester sideMEDIUM
AWS_VPC_003Default security group permits any rule (should be no-rules)MEDIUM
AWS_VPC_005VPC subnet automatically assigns public IPs on launchMEDIUM
AWS_VPC_012Route to a VPC peering connection should not use an unrestricted CIDRMEDIUM

WAF

AWS_WAF_002WAFv2 web ACL rate limit rule threshold is too permissiveMEDIUM
AWS_WAF_003WAFv2 web ACL should include AWSManagedRulesCommonRuleSetMEDIUM
AWS_WAF_004WAFv2 web ACL should have logging enabledMEDIUM

Engine-generated findings

These come from the engine's cross-resource analysis rather than the catalog, so their ids are families, not single checks.

ATTACK_PATH_* — Attack paths
Chains that cross resources: an internet-reachable entry point, an identity it can use, and the IAM permissions that lead from there to account-wide control.
AWS_XREF_* — Cross-resource correlations
Issues that are only visible when you look at how several resources interact, not at any one resource on its own.
AWS_FUSION_* — Cost and security together
Findings that need a cost signal and a security signal on different resources in the same code, such as accelerator compute next to an administrator-equivalent IAM policy.
AWS_CRED_* — Credentials written into code
Literal credentials of recognisable shapes (AWS access key ids, private keys, provider tokens) in resource attributes, variable defaults and variable files.
AWS_CFN_* — CloudFormation only
Findings with no Terraform twin, such as a NoEcho parameter whose value flows into Outputs, or a nested stack pulled from an unpinned template URL.