AWS Security Checks
cloud-audit runs 47 security checks across 15 AWS services. Each check includes copy-paste remediation in AWS CLI and Terraform. Browse by service below.
IAM (7 checks)
Root account MFA
Checks if the AWS root account has MFA enabled.
IAM users MFA
Checks if all IAM users with console access have MFA enabled..
Access key rotation
Checks if active access keys are older than 90 days..
Unused access keys
Checks for active access keys that haven't been used in 30+ days or have never been used..
Overly permissive IAM policies
Checks for customer-managed IAM policies with Action: * and Resource: *, granting full admin access to all AWS services..
Password policy strength
Checks if the account password policy meets CIS requirements (min 14 chars, uppercase, lowercase, numbers, symbols)..
OIDC trust policy without sub condition
Checks IAM roles with OIDC federation (GitHub Actions, GitLab CI, etc.) for missing 'sub' condition.
S3 (5 checks)
Public S3 buckets
Checks for S3 buckets that do not have all four public access block settings enabled..
S3 bucket encryption
Checks if S3 buckets use SSE-KMS encryption instead of default SSE-S3.
S3 bucket versioning
Checks if S3 buckets have versioning enabled to protect against accidental deletion or overwrites..
S3 bucket lifecycle policy
Checks if S3 buckets have lifecycle rules configured to automatically transition or expire objects..
S3 access logging
Checks if S3 buckets have server access logging enabled to track requests..
EC2 (6 checks)
Public AMIs
Checks for AMIs owned by your account that are publicly shared to all AWS accounts..
Unencrypted EBS volumes
Checks for EBS volumes that are not encrypted at rest..
Stopped EC2 instances (cost)
Checks for EC2 instances in stopped state.
EC2 IMDSv1 enabled
Checks for running EC2 instances that allow IMDSv1 (HttpTokens not set to 'required').
EC2 termination protection
Checks for running EC2 instances without API termination protection enabled..
EBS default encryption
Checks if EBS default encryption is enabled in each scanned region.
VPC (4 checks)
Default VPC usage
Checks if the default VPC has active resources (network interfaces).
Open security groups
Checks for security groups with unrestricted inbound access (0.0.0.0/0 or ::/0) on sensitive ports like SSH, RDP, databases, or all traffic..
VPC flow logs
Checks if non-default VPCs have flow logs enabled.
Unrestricted NACL
Checks for non-default Network ACLs that allow all inbound traffic from 0.0.0.0/0 or ::/0..
RDS (4 checks)
Public RDS instances
Checks for RDS instances with PubliclyAccessible set to true..
RDS encryption at rest
Checks for RDS instances without storage encryption enabled..
RDS Multi-AZ
Checks for non-micro/small RDS instances (likely production) without Multi-AZ failover enabled..
RDS auto minor upgrade
Checks for RDS instances with automatic minor version upgrade disabled..
CloudTrail (3 checks)
CloudTrail enabled
Checks if CloudTrail is enabled with multi-region logging.
CloudTrail log validation
Checks if CloudTrail trails have log file integrity validation enabled..
CloudTrail S3 bucket public access
Checks if S3 buckets used by CloudTrail have all public access block settings enabled..
CloudWatch (1 check)
Config (2 checks)
ECS (3 checks)
ECS privileged containers
Checks for ECS task definitions with containers running in privileged mode, which gives root-level access to the host..
ECS task logging
Checks for ECS task definitions with containers that have no log configuration.
ECS Exec enabled
Checks for ECS services with executeCommand enabled, which allows interactive shell access to running containers..
EIP (1 check)
GuardDuty (2 checks)
KMS (2 checks)
Lambda (3 checks)
Lambda public function URL
Checks for Lambda functions with public function URLs (AuthType=NONE), allowing anyone on the internet to invoke them..
Lambda deprecated runtime
Checks for Lambda functions using deprecated/end-of-life runtimes that no longer receive security patches..
Lambda env var secrets
Checks for Lambda functions with environment variable names matching secret patterns (SECRET, PASSWORD, API_KEY, TOKEN, etc.)..
Secrets Manager (2 checks)
SSM (2 checks)
EC2 not managed by SSM
Checks for running EC2 instances that are not registered with AWS Systems Manager for patching and remote management..
SSM insecure parameters
Checks for SSM parameters with secret-like names (password, api_key, token, etc.) that are stored as plain String instead of SecureString..
These checks are part of cloud-audit - install with pip install cloud-audit