Field guide

Cloud Penetration Testing: AWS, Azure & GCP (2026 Guide)

Almost every cloud breach starts on the customer's side of the line — a mis-scoped role, an exposed key, a public bucket. This guide explains what cloud penetration testing actually tests, how it differs across AWS, Azure and GCP, and how to run it at the speed infrastructure-as-code now moves.

Cloud penetration testing is an authorized, adversarial assessment of a cloud environment — the identities, policies, storage, compute and network configuration you run on AWS, Azure, Google Cloud or Kubernetes. Where a configuration scanner flags a single misconfigured setting in isolation, a cloud pentest chains those settings into an attack path: it proves that this exposed identity can assume that role, read that bucket, and reach the data an attacker is actually after. In the cloud, where the perimeter is identity rather than network, that distinction is the whole game.

The urgency is not theoretical. Industry breach research is consistent year after year: the overwhelming majority of cloud security incidents trace back to customer-side misconfiguration and identity failures, not to a flaw in the provider's infrastructure. This guide walks through the shared responsibility model, the attack paths that dominate real cloud compromises, how testing differs across the three major providers, the toolchain, and the shift from annual audits to continuous posture testing.

What Cloud Penetration Testing Actually Is

A cloud environment is a graph of identities and permissions. Every user, role, service account, function and resource is a node, and every policy that grants one node access to another is an edge. An attacker who lands anywhere in that graph — through a leaked key, a compromised CI token, or a public endpoint — asks one question: how far can I walk, and what can I reach? Cloud penetration testing answers that question before the attacker does.

The work targets four layers. Identity and access management — can a low-privilege principal escalate to a higher one through a chain of iam:PassRole, trust-policy or group-membership flaws? Configuration — are storage buckets, databases, snapshots or key vaults exposed more broadly than intended? Secrets — are credentials sitting in environment variables, user-data scripts, container images or source history? Network and exposure — what is reachable from the public internet that should not be? A posture scanner can see settings; a pentest proves which combinations of them are exploitable.

The Shared Responsibility Model

Every cloud provider publishes a version of the same diagram: the provider secures the cloud, the customer secures what they put in it. AWS, Microsoft and Google each draw the line slightly differently depending on whether the service is infrastructure, platform or software, but the principle is identical — the provider owns the hardware, the hypervisor and the managed-service internals, and you own identity, data, configuration and code.

This is why cloud penetration testing concentrates almost entirely on the customer side. You are not testing whether AWS's data centre is secure; you are testing whether your IAM policies, your network rules and your deployment pipeline leave a door open. It is also why cloud providers permit customer-initiated testing of your own resources without prior approval in most cases, while still prohibiting disruptive techniques — denial-of-service, testing other tenants, or attacking the provider's own control plane. A responsible cloud pentest is read-only and non-destructive by design, exactly the posture AssurePort's cloud engine takes.

The blind spot: Teams invest heavily in securing their application code, then grant the service running it a role with * permissions "to make it work." The application can be flawless and the environment still falls in one hop, because the identity attached to it was the real vulnerability. Cloud penetration testing is what surfaces that gap.

The Attack Paths That Dominate Cloud Breaches

Cloud compromises rarely rely on exotic exploits. They follow a handful of well-worn paths, and a competent test hunts every one of them.

Attack pathWhat it looks like
IAM privilege escalationA low-privilege principal abuses a permission like iam:PassRole, sts:AssumeRole or policy-version editing to gain admin.
Exposed storagePublic or over-shared object storage, database snapshots or disk images leaking data directly.
Leaked credentialsLong-lived access keys or service-account JSON in code, container layers, user-data or commit history.
Over-permissive servicesCompute, functions or containers running with roles far wider than the workload needs.
SSRF to metadataA server-side request forgery flaw reaching the instance metadata endpoint to steal temporary credentials.
Supply-chain and CI/CDA compromised pipeline token or build step that can deploy into the production account.

The through-line is identity. The Cloud Security Alliance's recurring Top Threats research has, for several years, ranked misconfiguration, weak identity and insecure interfaces above any provider-side failure. The lesson for testing is clear: spend your time where the breaches actually come from — permissions, exposure and secrets — not chasing hypothetical infrastructure flaws the provider already owns.

AWS vs Azure vs GCP: Different Surfaces, Different Tests

The three major providers share the same shape but differ in the details that matter to a tester.

AWS centres on IAM roles, policies and the AssumeRole trust model. Testing maps the role graph, hunts for privilege-escalation chains through dangerous actions, checks S3 and snapshot exposure, and probes the EC2 instance metadata service (IMDSv1 versus the hardened IMDSv2) as an SSRF credential-theft target.

Azure splits its model between Entra ID (identity) and Azure RBAC (resource permissions), with a frequent escalation path running through the directory — a contributor role on an identity, or control over a service principal, can lead to tenant-wide impact. Testing examines role assignments, managed identities, storage-account keys and the subscription/management-group hierarchy.

Google Cloud builds on projects, service accounts and IAM bindings, where the classic escalation is service-account impersonation and abuse of permissions like iam.serviceAccounts.actAs or setIamPolicy. Testing follows the project-and-folder hierarchy, service-account key sprawl, and over-broad primitive roles. Kubernetes, which runs on all three, adds its own layer: RBAC, service-account tokens, workload identity and the risk of a pod breakout reaching the node's cloud credentials.

CSPM, Scanning and Pentesting Are Not the Same

Cloud teams often already run a Cloud Security Posture Management (CSPM) tool and assume it covers them. It does not — the two answer different questions. CSPM continuously compares your configuration to a baseline and tells you what is misconfigured: a public bucket, an unencrypted volume, an over-permissive role. That is valuable and necessary. But a list of two hundred flagged settings has no priority and no proof. Cloud penetration testing takes those settings and asks which ones actually chain into a breach — it walks the graph from an exposed identity to sensitive data and proves the path, turning a wall of alerts into a short list of real, exploitable risks with evidence attached. The strongest programmes use both: CSPM for continuous coverage, pentesting for validation and prioritisation.

How a Cloud Penetration Test Works

A rigorous engagement moves through the same phases regardless of provider, aligned to methodologies like the Penetration Testing Execution Standard (PTES) and provider security benchmarks.

  1. Scoping and authorization. Define the accounts, subscriptions or projects in play, confirm the provider's testing policy, and lock in written permission — no responsible test starts without it.
  2. Enumeration. Inventory identities, roles, resources and network exposure across the environment, usually from a read-only assessor identity, to build the permission graph.
  3. IAM analysis. The heart of the work: trace privilege-escalation chains, dangerous trust relationships, and paths from low-privilege principals to administrative control.
  4. Configuration and exposure review. Check storage, databases, key vaults, serverless functions and security groups against the provider's hardening benchmark for real exposure.
  5. Secrets hunting. Search code, container images, build logs, user-data and history for long-lived credentials that break the identity model.
  6. Attack-path validation. Chain findings into a demonstrated route from an initial foothold to sensitive data — the difference between a theoretical finding and a proven one.
  7. Reporting. Every finding ships with a reproducible proof of concept, an impact rating, the exact IAM or configuration change that fixes it, and a mapping to the controls it affects.

The toolchain is well established. Assessors lean on cloud-native graphing and privilege-escalation tools — the kind that enumerate an account and surface escalation chains automatically — alongside the provider's own CLIs and the CIS Benchmarks as a configuration baseline. The tools enumerate; the judgment about which chained permission proves real impact is what separates a test from a scan, a theme we develop in our pillar guide to penetration testing.

Compliance and Continuous Testing

Regulation increasingly assumes the cloud is in scope. ISO 27001:2022 added explicit controls for cloud services, PCI DSS 4.0 expects penetration testing at least annually and after significant change, and SOC 2, DORA and NIS2 all expect that the environment holding regulated data has been tested, not just configured. An auditor reviewing a modern platform will ask for cloud pentest evidence by name. See which controls a test evidences in our ISO 27001:2022 control matrix, and our walkthrough of sovereign cloud and EU data residency.

The harder problem is cadence. Infrastructure-as-code means a Terraform or Bicep change can reshape an entire environment between Monday and Tuesday — a single merged pull request can open a new path to production. A once-a-year cloud pentest certifies the environment on one day and leaves a 364-day blind spot behind it. That is why leading teams now pair the deep annual engagement with continuous automated posture testing that runs whenever the configuration changes, closing the gap a yearly audit cannot.

This is the model AssurePort is built for. Our AI-driven Cloud Pentest engine runs authorized, read-only assessments across AWS, Azure, GCP and Kubernetes — IAM, secrets, supply-chain and exposure — with every finding backed by a human-verifiable proof of concept, from $2,299 per scan. The broader platform, spanning web, API, network and more, starts at $399 per scan. Instead of one expensive audit a year, you get coverage that keeps pace with your pipeline — at a fraction of the $15,000–$50,000 a consultancy cloud engagement typically costs.

Conclusion

Cloud breaches are identity breaches. The flaws that dominate — privilege-escalation chains, exposed storage, leaked keys, over-permissive services — are configuration and permission failures on the customer's side of the shared responsibility line, and no scanner that reads settings in isolation can tell you which ones actually chain into a compromise. Three points are worth carrying forward.

  • Identity is the perimeter. The real test spends most of its time walking the permission graph, not probing the provider's infrastructure.
  • Posture management is not validation. CSPM tells you what is misconfigured; a pentest proves which misconfigurations an attacker can actually use.
  • Cadence beats depth alone. A yearly test on an environment that changes with every deploy is a snapshot, not coverage — continuous testing is what holds the line.

The strongest cloud security programme in 2026 is the one that tests the way its environment actually changes: continuously, with proof, mapped to the controls it is accountable for. Point an authorized, read-only scan at your cloud accounts and see what a modern cloud penetration test surfaces.

Frequently Asked Questions

What is cloud penetration testing?

Cloud penetration testing is an authorized assessment of a cloud environment — AWS, Azure, GCP or Kubernetes — that probes identity and access management, resource configuration, secrets handling and network exposure the way an attacker would. It goes beyond a configuration scan by chaining permissions together to prove real privilege-escalation and data-access paths, within the limits of the provider's shared responsibility model.

How much does cloud penetration testing cost?

A traditional consultancy cloud penetration test typically costs $15,000 to $50,000 per engagement, depending on the number of accounts, services and identities in scope. AssurePort runs an authorized, read-only AI-driven cloud pentest from $2,299 per scan, with the wider platform starting at $399 per scan.

What is the shared responsibility model?

The shared responsibility model defines where the provider's security duty ends and the customer's begins. The provider secures the underlying infrastructure, while the customer is responsible for identity, access policies, data, network configuration and everything they deploy. Cloud penetration testing focuses on the customer side, because that is where almost all cloud breaches originate.

What is the difference between CSPM and cloud penetration testing?

CSPM continuously checks your configuration against a baseline and flags deviations, such as a public bucket or an over-permissive role. Cloud penetration testing goes further by chaining those findings into an attack path — proving that a specific exposed identity can actually reach sensitive data — and validating which issues are exploitable rather than merely theoretical.

How often should you run cloud penetration testing?

Run it at least annually for compliance and after any significant change to identities, accounts or architecture. Because infrastructure-as-code lets teams reshape a cloud environment on every deploy, leading teams pair the annual deep test with continuous automated posture testing that runs whenever the configuration changes.