Back to blog
Misconfigurations14 Apr 20266 min readMarios Daskalas

Top 10 Cloud Misconfigurations That Lead to Data Breaches

Most cloud breaches aren't caused by sophisticated zero-day exploits. They happen because something was misconfigured, in ways that are simple, preventable, and surprisingly common.

Top 10 Cloud Misconfigurations That Lead to Data Breaches

Cloud platforms have transformed how organizations build and scale systems, but they've also introduced a new class of security risk. As companies rush to adopt the cloud, they gain speed and flexibility but also inherit a shared responsibility model that isn't always fully understood. Cloud providers secure the underlying infrastructure; customers are responsible for securing everything they put in the cloud: data, access controls, network configurations, and application settings. That boundary is where things frequently go wrong, as illustrated by high-profile incidents including the Twitch data leak, the Pegasus Airlines breach, and the Codefinger ransomware campaign. [1][2][3][4][5][6]

What makes cloud misconfigurations particularly dangerous is how silent they are. There's no immediate failure, no obvious alert, just an open door waiting to be discovered. Attackers don't need to break in if they can simply walk through.

01

Publicly Exposed Storage Buckets

MITRE ATT&CK: T1530 (Data from Cloud Storage Object)

Cloud storage services are designed for easy accessibility, which sometimes leads developers to enable public access for testing or rapid sharing, never reverting that setting. The result: sensitive data such as customer records, database backups, or even credentials becomes accessible to anyone on the internet.

FIX

Disable public access by default, enforce strict bucket and object-level policies, and continuously scan for exposed storage using cloud-native tools such as AWS Config or Azure Policy.

02

Overly Permissive IAM Policies

MITRE ATT&CK: T1078.004 (Valid Accounts: Cloud Accounts) · T1548 (Abuse Elevation Control Mechanism)

In many environments, users and service accounts are granted broad permissions simply for convenience. While this may speed up development, it dramatically increases the attack surface. If an attacker compromises such an account, they can escalate privileges and take control of critical resources across the entire environment.

FIX

Apply the principle of least privilege, conduct regular permission audits, favor role-based access over static credentials, and use tools like IAM Access Analyzer (AWS) or Azure Privileged Identity Management (PIM).

03

Unrestricted Network Access

MITRE ATT&CK: T1190 (Exploit Public-Facing Application) · T1133 (External Remote Services)

Opening sensitive ports such as SSH (22) or RDP (3389) to the entire internet exposes systems directly to automated scanners and targeted attackers. Without proper network segmentation, a single compromised service can become a foothold for lateral movement across the environment.

FIX

Restrict inbound rules to known IP ranges, use VPNs or bastion hosts for administrative access, and enforce network segmentation to contain the blast radius of any breach.

04

Lack of Encryption

MITRE ATT&CK: T1530 (Data from Cloud Storage Object) · T1020 (Automated Exfiltration)

Data that is unencrypted (whether at rest or in transit) is vulnerable to interception and unauthorized access. This gap often occurs because encryption settings are not enabled by default, or because teams underestimate the sensitivity of the data they're storing.

FIX

Enable encryption across all storage, database, and compute layers; use managed key services (AWS KMS, Azure Key Vault); enforce HTTPS for all endpoints; and rotate encryption keys on a regular schedule.

05

Misconfigured Kubernetes Clusters

MITRE ATT&CK: T1610 (Deploy Container) · T1613 (Container and Resource Discovery) · T1552.007 (Unsecured Credentials: Container API)

Kubernetes environments are powerful but notoriously complex, making them especially prone to misconfiguration. Leaving default settings unchanged, exposing the API server publicly, or failing to restrict the Kubernetes dashboard can give attackers a direct path into the cluster, and from there into everything it orchestrates.

FIX

Use private API server endpoints, enforce role-based access control (RBAC), apply network policies to restrict pod-to-pod communication, and never expose management interfaces to the public internet.

06

Exposed Secrets and Hardcoded Credentials

MITRE ATT&CK: T1552.001 (Credentials in Files) · T1552.004 (Private Keys)

Hardcoding API keys, passwords, or tokens into source code or configuration files is one of the most persistent risks in modern development workflows. Once a repository is scanned (by a curious developer, an automated bot, or a malicious actor), those credentials can be reused to access systems and data almost immediately.

FIX

Adopt dedicated secret management tools (AWS Secrets Manager, Azure Key Vault), rotate credentials regularly, use short-lived tokens where possible, and integrate repository scanning into your CI/CD pipeline.

07

Missing Logging and Monitoring

MITRE ATT&CK: T1562.008 (Impair Defenses: Disable Cloud Logs)

Logging and monitoring are often treated as optional extras, but their absence can be catastrophic. Without visibility into system activity, breaches can go undetected for weeks or months, giving attackers ample time to exfiltrate data, establish persistence, or cause further damage.

FIX

Enable audit logs across all cloud services, centralize log storage in a tamper-resistant location, and configure automated alerts for suspicious behavior such as unexpected privilege escalation or bulk data exports.

08

Insecure APIs

MITRE ATT&CK: T1190 (Exploit Public-Facing Application) · T1059 (Command and Scripting Interpreter)

APIs form the backbone of cloud-native applications, and insecure ones (lacking proper authentication, rate limiting, or input validation) can expose sensitive data or allow attackers to manipulate backend systems at scale.

FIX

Enforce authentication and authorization on every endpoint (OAuth 2.0/OIDC), implement rate limiting to prevent abuse, validate and sanitize all incoming data, and route APIs through a managed gateway with WAF capabilities.

09

Unprotected Backups

MITRE ATT&CK: T1486 (Data Encrypted for Impact) · T1537 (Transfer Data to Cloud Account)

Backups are intended as a safety net, but they become a liability if not properly secured. Storing backups in the same environment as production systems (or leaving them publicly accessible) makes them easy targets. In a ransomware attack, compromised backups can turn a recoverable incident into a catastrophic one.

FIX

Encrypt all backups, isolate them from primary systems (ideally in a separate account or subscription), apply strict access controls, and test restoration procedures regularly to ensure backups are usable when needed.

10

Unpatched and Outdated Resources

MITRE ATT&CK: T1190 (Exploit Public-Facing Application) · T1203 (Exploitation for Client Execution)

Many organizations mistakenly assume that cloud providers manage all patching, overlooking their own responsibilities within the shared responsibility model. Outdated operating systems, container images, and application dependencies leave systems exposed to known, publicly disclosed vulnerabilities.

FIX

Automate patching where possible (AWS Systems Manager Patch Manager, Azure Update Manager), regularly rebuild base images for containers, and subscribe to vulnerability feeds relevant to your stack.

Remediation Reference: AWS vs. Azure vs. Cloud-Agnostic

The table below maps each misconfiguration to concrete remediation steps across AWS, Azure, and provider-agnostic controls, useful for multi-cloud and hybrid environments.

MisconfigurationMITRE ATT&CKAWSAzureCloud-Agnostic
Publicly Exposed StorageT1530Block Public Access on S3; enforce bucket policies; use AWS Config rulesDisable anonymous Blob access; enforce with Azure Policy; use private endpointsUse CSPM tools (Wiz, Orca); enforce IaC policy checks (Checkov, tfsec); follow CIS Cloud Benchmarks
Overly Permissive IAMT1078.004, T1548Apply least privilege; use IAM Access Analyzer; rotate/remove access keysAzure RBAC; enable PIM for just-in-time access; conduct access reviewsEnforce least privilege via IaC; adopt just-in-time access solutions; conduct quarterly permission reviews
Unrestricted Network AccessT1190, T1133Restrict Security Groups and NACLs; eliminate 0.0.0.0/0 rules; use VPC endpoints and WAFStrict NSG rules; Azure Firewall; Private Link; Just-in-Time VM accessApply Zero Trust network principles; use micro-segmentation; deploy CNAPP with network exposure analysis
Lack of EncryptionT1530, T1020Enable encryption for S3, EBS, and RDS; use AWS KMS; enforce HTTPSEnable Storage Encryption; use Azure Key Vault; enforce TLS policiesEnforce encryption-at-rest and in-transit via policy-as-code; use centralized KMS; audit key rotation regularly
Misconfigured KubernetesT1610, T1613, T1552.007Private EKS API endpoints; enable IRSA; apply network policiesPrivate AKS clusters; Azure AD RBAC integration; enable Defender for KubernetesAdopt CIS Kubernetes Benchmark; use admission controllers (OPA/Gatekeeper); scan manifests with Kubescape or kube-bench
Exposed SecretsT1552.001, T1552.004AWS Secrets Manager / SSM Parameter Store; enable rotation; scan reposAzure Key Vault; use managed identities; enable Defender for DevOps scanningIntegrate secret scanning in CI/CD (GitLeaks, TruffleHog); adopt a centralized secrets vault; use short-lived OIDC tokens
Missing Logging & MonitoringT1562.008Enable CloudTrail; use CloudWatch and GuardDuty; centralize logs in S3Azure Monitor and Activity Logs; Log Analytics Workspace; Microsoft SentinelImplement SIEM with cloud log ingestion; define alert runbooks; align with SOC 2 / ISO 27001 logging requirements
Insecure APIsT1190, T1059API Gateway with auth; enable throttling; protect with WAFAzure API Management; enforce OAuth 2.0/OIDC; apply rate limiting policiesFollow OWASP API Security Top 10; use API gateways with auth enforcement; run regular API security testing
Unprotected BackupsT1486, T1537AWS Backup; cross-region replication; enable Vault Lock for immutabilityAzure Backup; geo-redundancy; soft delete and immutable vault policiesFollow the 3-2-1 backup rule; air-gap critical backups; test restoration procedures on a regular schedule
Unpatched ResourcesT1190, T1203Patch Manager; update AMIs and container images; enable InspectorUpdate Manager; automated patching; Defender for Cloud vulnerability assessmentsAdopt a vulnerability management platform (Qualys, Tenable); enforce image scanning in CI/CD; follow a formal CVE triage process

Why Hands-On Training Is Your Best Defense

Reading about misconfigurations is a start, but understanding how they're discovered and exploited is what actually changes behavior. Security teams that have seen a publicly exposed bucket get scraped in real time, or watched credentials exfiltrated from a misconfigured metadata service, respond very differently when they encounter the same patterns in production. That intuition doesn't come from documentation. It comes from doing.

This is where hands-on cloud security training makes the difference between a team that knows the theory and one that catches the issue before it ships. When engineers understand the attacker's perspective (how a single overly permissive IAM role becomes full account compromise, or how an exposed Kubernetes API server leads to cluster takeover), secure configuration stops being a checklist item and becomes instinct.

CloudBreach: Real Labs. Real Attack Vectors.

CloudBreach offers hands-on cloud labs built around the latest attack vectors targeting AWS and Azure environments. Instead of simulated click-through exercises, you work in live cloud environments against real attack paths, using the same techniques found in actual breaches. From privilege escalation chains and lateral movement through misconfigured services, to credential theft and ransomware deployment patterns, CloudBreach puts defenders inside the attacker's mindset where it matters most.

The misconfigurations covered in this article aren't hypothetical. They're the foundation of real-world cloud attacks, and the best way to stop them is to have already seen what happens when they're exploited.

Final Thoughts

Cloud security isn't about adding more tools; it's about consistently getting the fundamentals right. Most breaches stem from simple misconfigurations that are entirely preventable with the right processes, automation, and team awareness.

  • Automate security checks wherever possible
  • Continuously audit your cloud environment, because posture drifts silently
  • Educate teams on secure configuration practices before they reach production
Found this useful?

See how attackers exploit these misconfigurations.

The Breaching AWS and Breaching Azure courses include labs built around real attack paths: IAM abuse, exposed storage, lateral movement, and more.