Back to Home
Free Resource

Cloud Misconfiguration Guide

The top 25 AWS misconfigurations we find in production environments. Each entry includes what the issue looks like, why it matters, and how to fix it.

1

S3 Buckets with Public Access

Buckets configured with public read or write ACLs, or bucket policies that grant access to everyone ('*' principal). This is the #1 cause of cloud data leaks.

How to Fix

Enable 'Block Public Access' at the account level and on each bucket. Use bucket policies that restrict access to specific IAM principals or VPC endpoints. Audit existing buckets with AWS Trusted Advisor or S3 Storage Lens.

2

Security Groups Open to 0.0.0.0/0

Security group rules allowing inbound traffic from any IP on sensitive ports like SSH (22), RDP (3389), MySQL (3306), or PostgreSQL (5432).

How to Fix

Restrict inbound rules to specific CIDR ranges (office VPN, VPC CIDR) or use AWS Systems Manager Session Manager for shell access instead of SSH. Implement a security group change monitoring process.

3

IAM Users with Active Long-Term Access Keys

Long-lived IAM user credentials that never rotate. These keys often end up in source code, CI/CD logs, or compromised developer machines.

How to Fix

Rotate keys every 90 days. Migrate to IAM roles for EC2/Lambda/ECS workloads. Use IAM Identity Center for human access. Set up an IAM credential report schedule and automated key rotation via AWS Config rules.

4

Overly Permissive IAM Policies (Star Actions)

IAM policies containing 'Effect: Allow, Action: *' or 'Resource: *' grant full access to all AWS services, violating the principle of least privilege.

How to Fix

Replace wildcards with specific actions. Use IAM Access Analyzer to identify overly broad policies. Implement permission boundaries and service control policies (SCPs) at the organization level.

5

Unencrypted EBS Volumes and Snapshots

Elastic Block Store volumes and snapshots without encryption at rest. Shared snapshots can leak data if made public accidentally.

How to Fix

Enable EBS encryption by default in all regions. Use AWS KMS customer-managed keys for sensitive workloads. Audit existing unencrypted volumes and create encrypted copies.

6

CloudTrail Not Enabled or Misconfigured

AWS CloudTrail disabled in some regions, or configured without log file validation, encryption, or multi-region aggregation.

How to Fix

Create an organization trail covering all regions with SSE-KMS encryption and log file validation enabled. Ship logs to a dedicated S3 bucket with restricted access. Set up CloudWatch alarms for trail changes.

7

RDS Databases Publicly Accessible

RDS instances with the 'Publicly Accessible' flag set to true, exposing databases directly to the internet.

How to Fix

Set PubliclyAccessible to false. Place RDS instances in private subnets. Use a bastion host or Session Manager for administrative access. Enable RDS encryption and deletion protection.

8

Missing VPC Flow Logs

VPCs without flow logs enabled, making network traffic analysis and incident investigation impossible.

How to Fix

Enable VPC flow logs on all VPCs. Publish to CloudWatch Logs or S3. Set up metric filters to alert on anomalous traffic patterns (port scans, excessive denied requests).

9

Default VPC Used in Production

Using the default VPC instead of custom VPCs with proper CIDR planning, subnet design, and network segmentation.

How to Fix

Design custom VPCs with properly sized CIDR blocks, public/private/database subnets across multiple AZs. Migrate resources from default VPCs. Tag custom VPCs clearly.

10

Unrestricted Lambda Permissions

Lambda execution roles with overly broad permissions, or function policies that allow invocation from any AWS account.

How to Fix

Scope Lambda execution roles to the minimum required actions and resources. Use resource-based policies to restrict cross-account invocation. Enable Lambda code signing and runtime version pinning.

11

EKS/K8s Clusters with Public Endpoints

EKS cluster API endpoints accessible from the internet without IP restrictions.

How to Fix

Set endpoint access to private-only or public+private with restricted CIDR ranges. Enable control plane logging (API server, audit, authenticator). Enforce pod security standards and network policies.

12

No AWS Config Rules for Compliance

AWS Config not enabled or configured without compliance rules, leaving configuration drift undetected.

How to Fix

Enable AWS Config in all regions. Deploy managed rules for CIS, PCI-DSS, and custom organizational requirements. Set up automatic remediation actions for common violations.

13

Unrotated KMS Keys

Customer-managed KMS keys without automatic rotation enabled, increasing exposure window if a key is compromised.

How to Fix

Enable automatic key rotation on all customer-managed KMS keys (rotates annually). For higher security, implement manual rotation every 90 days for highly sensitive data encryption keys.

14

GuardDuty Not Enabled

Amazon GuardDuty threat detection service not activated in all regions, missing critical threat intelligence.

How to Fix

Enable GuardDuty in all regions supported. Configure findings export to S3. Integrate with Security Hub and EventBridge for automated response to threat findings.

15

No Backup Strategy for Critical Data

Mission-critical resources (RDS, DynamoDB, EFS, S3) without automated backups or cross-region disaster recovery.

How to Fix

Use AWS Backup to create automated backup plans with cross-region copies. Define recovery point objectives (RPO) and recovery time objectives (RTO). Test restores quarterly.

16

Hardcoded Secrets in Code or Environment

API keys, database passwords, and access tokens stored in plaintext in code repositories, Lambda env vars, or EC2 user data.

How to Fix

Use AWS Secrets Manager or Parameter Store (SecureString) for all secrets. Implement secret rotation. Scan repositories with tools like git-secrets. Use IAM roles instead of static credentials.

17

Unused or Orphaned Resources

Unused EBS volumes, elastic IPs, load balancers, and ENIs accumulating costs and creating security blind spots.

How to Fix

Regularly audit resources with AWS Resource Explorer and Trusted Advisor. Tag all resources with owner and project. Implement automated cleanup for non-production resources.

18

Missing HTTPS on CloudFront Distributions

CloudFront distributions accepting HTTP traffic or using deprecated SSL protocols.

How to Fix

Redirect HTTP to HTTPS. Use the latest TLS security policy. Enable SNI. Configure Origin Shield for additional caching layer. Set minimum SSL protocol to TLSv1.2.

19

Cross-Account Role Chains Without External ID

Cross-account IAM roles that trust another AWS account without requiring an external ID, vulnerable to confused deputy attacks.

How to Fix

Add sts:ExternalId condition to all cross-account trust policies. Use unique, unguessable external IDs. Audit cross-account roles regularly.

20

No AWS Organization SCPs

AWS Organizations without Service Control Policies, leaving member accounts free to disable security services.

How to Fix

Apply SCPs that deny disabling CloudTrail, Config, GuardDuty, and Security Hub. Restrict root user actions. Prevent leaving the organization without approval. Start with allow-list approach for new accounts.

21

Redshift Clusters Not Encrypted or Public

Redshift data warehouse clusters without encryption at rest or publicly accessible.

How to Fix

Enable encryption with KMS. Place clusters in private subnets. Enable audit logging and require SSL connections. Rotate database credentials with Secrets Manager.

22

Too Many Root Account Actions

Using the AWS root account for day-to-day operations instead of IAM users/roles with appropriate permissions.

How to Fix

Lock away root credentials. Enable MFA on root. Create IAM users with admin permissions for daily tasks. Set up CloudWatch alarms for any root activity. Follow the security best practice of zero standing root usage.

23

No WAF on Public Endpoints

Public-facing applications (ALB, CloudFront, API Gateway) without AWS WAF protection against common exploits like SQL injection and XSS.

How to Fix

Deploy AWS WAF with managed rules (AWS Core, SQL injection, XSS). Enable rate-based rules for DDoS protection. Configure logging to S3 or CloudWatch. Review and update rules monthly.

24

Insufficient Network Segmentation

Flat network design where all workloads share the same subnets, allowing lateral movement if one resource is compromised.

How to Fix

Design multi-tier VPC architecture: public subnets for load balancers, private for application, isolated for databases. Use security groups as micro-segmentation. Implement VPC endpoints for AWS service access.

25

No Incident Response Automation

No automated response to security findings — manual processes lead to slow remediation times.

How to Fix

Set up EventBridge rules to trigger Lambda functions for automated response (e.g., isolate compromised instance, revoke exposed keys, snapshot forensic evidence). Integrate with PagerDuty or Slack for alerts. Document and test runbooks.

Ready to run this automatically?

Pavora scans your entire AWS infrastructure in minutes with a single read-only integration. Start your free audit today.