Home
Cybersecurity & AI Security / Part 51 — Common Cloud Misconfigurations

Common Cloud Misconfigurations

CAP, ACID vs BASE, latency numbers, back-of-envelope estimation, single points of failure — the vocabulary every system designer thinks in.


Core Philosophy: Cloud breaches are rarely the result of a clever attack on the cloud provider’s infrastructure. Overwhelmingly, they are the result of the customer configuring something wrong — an exposed data store, an over-permissioned identity, a setting left open. The cloud gives you enormous power to configure resources through software, and that same power makes it easy to configure them insecurely. This page is the catalogue of what goes wrong, and the discipline of preventing it.

Part 1: The Problem

Page 5C.1 established the shared responsibility model: the cloud provider secures the underlying infrastructure to a high standard, and the customer secures their own configuration, identity, data, and access. It also stated the consequence bluntly — the customer’s side is where cloud breaches happen.

Now we get specific. How exactly does the customer side go wrong? The answer, in the overwhelming majority of cases, is cloud misconfiguration: a cloud resource set up insecurely. Not a sophisticated exploit, not a zero-day — a setting left open, a permission too broad, a data store exposed.

You already met this idea in 2.9 (Security Misconfiguration) — the OWASP category of insecurity-by-setup. In the cloud, misconfiguration is not just a category of risk; it is the dominant one. This page is the cloud-specific deep dive: the common misconfigurations, why they happen so much, and how to prevent them.

Part 2: The Concept — Why Cloud Misconfiguration Is So Common

Before the catalogue, understand why cloud misconfiguration is so pervasive — because the causes point to the cures.

The takeaway: cloud misconfiguration is not a sign of careless individuals — it is a structural consequence of how the cloud works. Which means the cure is not “be more careful”; it is systematic, automated prevention (Parts 5 and 6, and the DevSecOps half of this track).

Part 3: The Concept — Exposed Storage and Data

The most notorious category of cloud misconfiguration — responsible for a great many well-known cloud data breaches — is exposed storage.

Cloud providers offer storage services — places to store files, data, backups. These are enormously useful and heavily used. They are also, misconfigured, a leading cause of breaches.

The classic failure: a cloud storage resource that should be private — accessible only to specific authorized identities — is instead configured so that it is publicly accessible to anyone on the internet. The data inside — which may be sensitive customer data, internal files, backups, secrets — is then readable by anyone who finds it. And attackers actively scan for exposed cloud storage; finding it requires no skill, just looking.

Related data-exposure misconfigurations:

The principle running through all of it: data is the crown jewel, and in the cloud the most common way it is lost is through a storage or data resource configured to be more accessible than it should be. The defense is disciplined: data resources private by default, access restricted to the specific identities that genuinely need it (least privilege, identity-based — 5C.1), and sensitive data encrypted.

Part 4: The Concept — Identity and Access Misconfigurations

The other dominant category — flowing directly from 5C.1’s “identity is the new perimeter” — is identity and access misconfiguration. If identity is the primary security boundary, then misconfigured identity is the primary way that boundary fails.

The common identity/access misconfigurations:

Over-permissioned identities. The biggest one. An identity — a user, or a service/machine identity — granted far more permissions than it needs. This violates least privilege (5C.1, and the principle since 0.2), and the consequence is severe: if that identity is ever compromised, the attacker inherits all its excessive permissions. An over-permissioned identity turns a small compromise into a large one. (This is the cloud, identity-level version of the privilege-escalation lesson from 3.4 — except here the excessive privilege was simply granted, not escalated to.)

Overly broad access policies. Access rules written too permissively — granting access to more resources, or more actions, or more identities than intended. The cloud’s access-policy systems are powerful and detailed; written carelessly, they grant far too much.

Weak authentication on cloud accounts. Cloud accounts — especially powerful administrative ones — without strong authentication and MFA (1.4, 4.2). A compromised cloud admin account can mean compromise of the entire environment.

Unused and forgotten identities. Identities (especially old user accounts, or service identities for things no longer used) left active. Each is an unnecessary, often unmonitored, way in (the attack-surface and unused-account lesson from 4.4).

Exposed credentials and keys. Cloud access credentials and keys — the things that authenticate identities — leaked or exposed: hard-coded in code, committed to repositories (the leaked-secrets finding from 2.1, 2.10, 4.2), or otherwise mishandled. An exposed credential is a handed-over identity.

Excessive use of highly-privileged identities. Using powerful administrative identities for routine work, rather than reserving them and using minimally-privileged identities for everyday tasks (the “don’t operate as root” lesson from 0.2, at cloud scale).

The defense for all of it is identity discipline built on least privilege: every identity (human and machine) granted the minimum permissions needed; access policies written tightly; strong authentication and MFA, especially on privileged accounts; unused identities removed; credentials managed properly and never exposed.

Part 5: The Concept — The Other Misconfigurations, and a Unifying View

Beyond exposed data and identity issues, cloud misconfiguration spans more ground. The other notable categories — and then the unifying principle:

Network misconfigurations. Even though identity is the new perimeter, cloud environments still have network-level controls — virtual networks, and firewall-like rules controlling what can reach what. Misconfigured, these expose resources that should be restricted: a resource open to the whole internet when it should be reachable only internally (the cloud version of 3.2’s improper exposure and 4.4’s firewall discipline).

Logging and monitoring not enabled. Cloud providers offer logging and monitoring capabilities — but they are not always on by default, or not configured comprehensively. A cloud environment without proper logging is one where attacks cannot be detected (the entire 4.6 lesson — “an attack you cannot see is an attack you cannot stop” — and you cannot configure detection on logs that were never enabled).

Insecure service-specific settings. The cloud has a vast array of services, and each has its own security-relevant configuration. Misconfiguring any of them — leaving a service’s settings in an insecure state — creates risk. There is no shortcut around this: each service used must be configured securely.

Unencrypted data and traffic. Beyond exposed storage (Part 3), encryption — of data at rest and in transit (1.3) — is something the customer must configure, and failing to is a misconfiguration.

The unifying view. Step back, and every category here — exposed data, identity issues, network exposure, missing logging, insecure settings — is the same root pattern you learned in 2.9: insecure by setup. The cloud did not invent misconfiguration; it amplified it, because the cloud is configured entirely through software, at speed, at scale, in complex environments. Cloud security, in large part, is the discipline of getting and keeping configuration right. Which is why the cure (Part 6) is systematic and automated, not manual and hopeful.

Part 6: The Concept — Preventing Cloud Misconfiguration

Knowing what goes wrong is half of it; preventing it is the rest. Because cloud misconfiguration is structural (Part 2), the defenses must be systematic.

Secure configuration discipline. Configure resources securely deliberately, not by accepting defaults: data private, identities least-privileged, access tight, encryption on, logging on, network access restricted. This is the cloud version of hardening (4.4).

Use security baselines and benchmarks. Just as 4.4 used recognized hardening baselines, the cloud has recognized secure-configuration benchmarks for cloud environments. Configure against a benchmark rather than improvising — it makes secure configuration thorough and consistent.

Cloud security posture scanning. There are tools — broadly, cloud security posture management — that automatically and continuously scan a cloud environment for misconfigurations and flag them. This is essential: because cloud environments are large, complex, and constantly changing (drift), continuous automated scanning is the only realistic way to find misconfigurations across the whole environment. This is the cloud equivalent of the vulnerability scanning from 4.8 — turned toward configuration.

Continuous monitoring for drift. Because environments drift (Part 2), misconfiguration detection cannot be one-time. It must be continuous — catching the resource that became insecure as things changed.

Least privilege, relentlessly. Given how central over-permissioning is (Part 4), least privilege applied relentlessly to every identity is one of the highest-value preventive measures.

Prevent misconfiguration at the source — the DevSecOps move. The most powerful prevention: rather than creating cloud resources and then scanning them for misconfiguration, define cloud infrastructure as code (5C.4) and check that code for misconfiguration before the resources are ever created. This is “shift left” (5B.1) applied to cloud configuration — and it is exactly what 5C.4 (Infrastructure as Code security) and 5C.5 (DevSecOps pipelines) build. The best fix for misconfiguration is to never deploy it.

🔑 The deep lesson: cloud breaches are overwhelmingly customer-side misconfiguration — exposed storage and data, over-permissioned identities, network exposure, missing logging, insecure settings. It is the 2.9 “insecure by setup” pattern, amplified because the cloud is configured through software at speed, scale, and complexity. Because the cause is structural, the cure is structural: secure-configuration discipline against benchmarks, continuous automated posture scanning to find misconfiguration across the whole environment, relentless least privilege — and, best of all, preventing misconfiguration at the source by checking infrastructure-as-code before it deploys.

📓 Key Terms

Term Plain meaning
Cloud misconfigurationA cloud resource set up insecurely — the dominant cause of cloud breaches.
Exposed storageA cloud storage resource accessible more broadly (often publicly) than intended.
Over-permissioned identityAn identity granted far more permissions than it needs.
Access policyA rule defining what an identity can access and do.
Configuration driftA resource drifting from secure into insecure configuration over time.
Cloud security posture scanningAutomated, continuous scanning of a cloud environment for misconfigurations.
Security baseline / benchmarkA recognized secure-configuration standard for cloud environments.

🧪 Hands-On Lab

Use your free-tier cloud account from 5C.1. Create, examine, and secure resources you own — never test cloud resources you do not own.

Task 1 — Examine storage configuration. In your cloud account, create a storage resource. Examine its access configuration carefully — what determines whether it is private or public? Configure it correctly as private, accessible only to a specific identity. Understand exactly how the exposed-storage breach happens — and how to prevent it.

Task 2 — Practice identity least privilege. Create an identity that needs to do one specific thing. Configure its permissions to allow only that — the minimum. Then look at how easy it would be to instead grant broad permissions, and reflect on why over-permissioning is so common.

Task 3 — Examine an access policy. Look at how access policies work in your cloud environment. Write a tightly-scoped one and a deliberately over-broad one. See concretely how an access policy can grant far more than intended.

Task 4 — Check network configuration. Create a resource and examine its network access configuration. Configure it so it is reachable only as intended — not open to the whole internet. The cloud version of firewall discipline (4.4).

Task 5 — Enable logging. Find the logging and monitoring capabilities in your cloud account. Enable logging for your resources. Note that it was not necessarily on by default — and connect this to 4.6 (no logs, no detection).

Task 6 — Run a posture scan. Use a cloud security posture / misconfiguration scanning tool (free/open-source options exist) against your own cloud environment. Read what it flags. This is the cloud equivalent of vulnerability scanning — turned toward configuration.

Task 7 — Study a benchmark. Find a recognized cloud security benchmark for your provider. Walk a section of it against your environment. See how systematic, recognized secure configuration compares to ad-hoc configuration.

Task 8 — Write a cloud misconfiguration note. In Notion, create a “Cloud Misconfigurations” page — why misconfiguration is so common, the main categories (exposed data, identity, network, logging, settings), and how to prevent it. Reference material for the track.

⚠️ Common Mistakes

✅ Recap & What’s Next

Next (5C.3): Cloud environments do not just store data — they run things, increasingly in containers and orchestrated by Kubernetes. Page 5C.3 secures that layer — and connects directly to the container content of your On-Prem/DevOps module.

⁂ Back to all modules