BlogCloud Security

Top 15 Cloud Misconfigurations That Lead to Data Breaches

Cloud misconfigurations are the leading cause of cloud data breaches — ahead of vulnerabilities, stolen credentials, and insider threats. Research shows that 80% of organizations have experienced at least one cloud security incident caused by misconfiguration. Here are the fifteen most dangerous misconfigurations and how to detect them.

16 min readUpdated May 2026

Why Cloud Misconfigurations Are So Dangerous

Cloud infrastructure is defined by configuration — IAM policies, security group rules, encryption settings, logging settings, and network architecture. A single misconfigured setting can expose an entire database to the internet. Unlike software vulnerabilities that require exploitation, many misconfigurations create immediate, unauthenticated access to sensitive data.

80%

of organizations experienced a cloud misconfiguration incident

45%

of data breaches are cloud-based, a number growing year over year

15 min

average time for attackers to discover a newly exposed S3 bucket

The 15 Most Dangerous Cloud Misconfigurations

#1

Publicly Accessible Storage Buckets

Critical

S3 buckets, GCS buckets, or Azure Blob containers with public read or write access. The most common source of large-scale data exposures.

#2

Open Security Groups / Firewall Rules

Critical

Inbound rules allowing 0.0.0.0/0 on SSH (22), RDP (3389), database ports (3306, 5432, 27017), or all ports.

#3

Missing MFA on Root / Admin Accounts

Critical

Root or admin accounts without multi-factor authentication. A compromised password gives full account access.

#4

Unencrypted Data at Rest

High

EBS volumes, RDS instances, S3 buckets, and database storage without encryption enabled. Violates PCI DSS, HIPAA, and SOC 2.

#5

Overprivileged IAM Roles and Policies

High

IAM policies with Action: * or Resource: * wildcards. A compromised service with admin rights can access everything.

#6

Publicly Accessible Databases

Critical

RDS, Cloud SQL, or Cosmos DB instances with public endpoints and no network restrictions.

#7

Disabled Audit Logging

High

CloudTrail, Cloud Audit Logs, or Azure Activity Log disabled. Breaches go undetected without audit trails.

#8

Default VPC and Subnets

Medium

Resources deployed in default VPCs with permissive routing and no network segmentation.

#9

No Network Segmentation

High

Flat network architecture where all resources can communicate with each other. Enables lateral movement.

#10

Exposed Management Ports

High

SSH, RDP, and management console ports open to the internet instead of behind VPN or bastion hosts.

#11

Missing Encryption in Transit

High

Services communicating over HTTP instead of HTTPS, or missing TLS for database connections.

#12

No Key Rotation

Medium

KMS keys, access keys, and service account keys without automatic rotation policies.

#13

Stale Credentials and Unused Accounts

Medium

Access keys unused for 90+ days, service accounts for decommissioned services, or ex-employee accounts.

#14

Missing Resource Tags

Low

Resources without ownership, environment, or compliance tags — making it impossible to audit or attribute costs.

#15

Disabled Security Monitoring

High

GuardDuty, Security Command Center, or Azure Defender disabled. No automated threat detection.

How to Detect and Prevent Misconfigurations

CSPM Scanning

Cloud Security Posture Management tools continuously scan your cloud accounts against CIS Benchmarks, detecting misconfigurations automatically and alerting on drift.

Policy as Code

Define security policies in code (OPA/Rego, Sentinel) and enforce them in CI/CD. Prevent misconfigurations from being deployed in the first place.

Drift Detection

Monitor for configuration changes that deviate from the defined IaC state. Detect manual console changes that bypass code review.

Anatomy of a Misconfiguration Breach

Misconfiguration breaches rarely involve a single mistake. They almost always chain two or three of the issues above together. The 2019 Capital One incident is the canonical example: an overly permissive WAF role (misconfiguration #5) combined with a server-side request forgery vulnerability let an attacker query the EC2 instance metadata service, harvest temporary credentials, and list and copy data from more than 700 S3 buckets. No zero-day was involved — every step abused configuration that a CSPM scan would have flagged.

A typical attack chain looks like this: the attacker discovers an exposed asset through internet-wide scanning services such as Shodan or Censys, or by enumerating predictable bucket names. Within minutes of exposure, automated scanners probe the asset — honeypot studies consistently show first contact in under fifteen minutes. If the asset yields credentials (an exposed .env file, a readable Terraform state file, or an instance metadata endpoint), the attacker pivots to the cloud control plane, enumerates IAM permissions, and escalates. From there, the goals are data exfiltration, cryptomining, or ransom.

Two properties make these attacks devastating. First, they are fully automatable — attackers do not target you specifically; their scripts target everyone simultaneously. Second, cloud APIs make exfiltration fast: copying a terabyte out of an S3 bucket with valid credentials looks like normal API traffic unless you have GuardDuty, VPC flow log analysis, or runtime monitoring watching for anomalous access patterns.

Provider-Specific Pitfalls: AWS, GCP, and Azure

While the fifteen categories above apply everywhere, each cloud provider has sharp edges of its own. Multi-cloud teams need to understand where the defaults differ.

AWS

The most common AWS-specific issues are S3 buckets created before account-level Block Public Access was enabled, IAM roles trusting external accounts without an ExternalId condition (enabling confused-deputy attacks), EC2 instances still using IMDSv1 (which allows SSRF-based credential theft), and Lambda functions with execution roles far broader than their code requires. Enable Block Public Access at the account level, require IMDSv2 via aws ec2 modify-instance-metadata-options, and use IAM Access Analyzer to find resources shared outside your organization.

GCP

GCP's biggest trap is the primitive roles — Owner, Editor, Viewer — which are dramatically overprivileged and still widely used. Bindings that grant access to allUsers or allAuthenticatedUsers make buckets and BigQuery datasets public (the latter means anyone with any Google account, not just yours). Downloaded service account keys are another chronic problem: they never expire by default and routinely leak into repositories. Prefer workload identity federation and organization policy constraints like iam.disableServiceAccountKeyCreation.

Azure

Azure teams most often stumble on storage accounts with “Allow Blob public access” enabled, shared access signatures (SAS tokens) minted with year-long lifetimes and full permissions, NSG rules opened by the portal's one-click “Allow RDP” prompt, and legacy authentication protocols left enabled in Entra ID, which bypass Conditional Access and MFA entirely. Disable public blob access at the storage-account level, use stored access policies so SAS tokens can be revoked, and audit Conditional Access coverage for every admin role.

Why Misconfigurations Keep Happening

If these problems are so well understood, why do they persist? The root causes are organizational as much as technical.

Speed over safety: engineers under deadline pressure open a security group 'temporarily' to debug, and the rule outlives the incident by years.
Insecure defaults: many cloud services historically shipped with public access, no encryption, or logging disabled — and older resources retain those defaults forever.
Console drift: changes made by hand in the web console are invisible to code review and diverge silently from the Terraform or CloudFormation state.
Account sprawl: organizations run dozens or hundreds of accounts and subscriptions; sandbox and legacy accounts get the least attention and the most findings.
Knowledge gaps: IAM policy evaluation, VPC routing, and KMS key policies are genuinely complex — even experienced engineers write overly broad policies just to make things work.
No ownership: without resource tagging and clear team ownership, nobody is responsible for remediating a finding, so it sits in a dashboard indefinitely.

The lesson: point-in-time audits cannot keep up with an environment that changes hundreds of times per day. Detection must be continuous, and prevention must live in the deployment pipeline itself — scanning Terraform plans before apply, and enforcing guardrails with AWS Service Control Policies, GCP Organization Policy, or Azure Policy so that dangerous configurations are rejected at the API level regardless of who requests them.

Building a Remediation Program That Actually Works

Detection is the easy half. Most teams that deploy a CSPM tool are greeted with thousands of findings on day one, and the real challenge becomes triage. A workable program has four elements.

Prioritize by exposure, not by count. A public database with production data outranks fifty untagged dev resources. Rank findings by internet exposure, data sensitivity, and privilege level. Attack-path analysis — chaining findings together the way an attacker would — cuts the “critical” queue by an order of magnitude.

Fix in code, not in the console. If a resource is managed by Terraform, remediating it in the console just creates drift that the next apply reverts. Route remediation to the owning repository as a pull request so the fix is durable and reviewed.

Automate the safe fixes. Enabling S3 Block Public Access, turning on default EBS encryption, and enabling GuardDuty are low-risk changes that can be auto-remediated — ideally in dry-run mode first so teams can review what would change. Reserve human review for changes that could break workloads, like tightening security groups or IAM policies.

Measure mean time to remediate. Track MTTR per severity tier and per team, set SLAs (for example, 24 hours for critical public exposure, 30 days for medium findings), and report trends. Platforms like TigerGate map each finding to the compliance controls it violates — CIS, SOC 2, PCI DSS — which turns remediation from a security chore into audit evidence your compliance program needs anyway.

Detect Cloud Misconfigurations with TigerGate

TigerGate scans AWS, GCP, Azure, Oracle Cloud, and Kubernetes against 900+ security checks and 38+ compliance frameworks. Find and fix misconfigurations before they become breaches.