The structural primitives are different: identity replaces the network as the dominant boundary, the control plane is a first-class target, and the provider's testing policy applies alongside the client's consent.
| Model | What the tester sees | Assessment focus |
|---|---|---|
| IaaS EC2, Azure VMs, GCE | VMs, networks, storage, load balancers | Network + host assessment + IAM roles on instances, IMDS exposure, storage-account exposure |
| PaaS Lambda, App Service, Cloud Run | Application with VM abstracted | Application surface, runtime identity & permissions, platform-level controls |
| SaaS M365, Salesforce, ServiceNow | Configuration only | Tenant config, identity integration (SCIM, SSO), admin roles, sharing settings, DLP |
| Containers EKS, AKS, GKE | Orchestrator | RBAC, network policy, image supply chain, runtime security |
| Serverless Lambda, Functions | Function code + invocation surface + identity | Invocation authentication, function identity permissions, secrets in code, egress |
Services doing their job: EC2 running, S3 returning data, RDS answering queries.
On-premises analogy: the traffic on the wire.
APIs that manage those services: launching instances, creating buckets, attaching IAM roles.
On-premises analogy: the admin who can reconfigure everything.
On-premises: the firewall is the perimeter. In the cloud: IAM is the perimeter.
AdministratorAccess, *:*, Azure Owner, GCP roles/editor).These are not exotic findings — they are the findings on most cloud engagements.
s3scanner, AWS Config rules.0.0.0.0/0 on SSH, RDP, database ports).Tools: MicroBurst, ROADtools, AzureHound / BloodHound, ScoutSuite.
iam.serviceAccountTokenCreator and iam.serviceAccountUser are common privilege-escalation paths.allUsers / allAuthenticatedUsers exposure.Tools: GCPBucketBrute, ScoutSuite, Prowler, gcloud CLI.
Kubernetes is production infrastructure for most modern enterprises — not an exotic target.
hostPath/hostNetwork/hostPID, missing security contexts, running as root.Tools: kubescape, kube-bench, kube-hunter, peirates, Krane, Trivy/Grype.
Serverless flips the question from "what is running?" to "what can invoke this, and what can it do?"
The path from source code to cloud production is itself part of the attack surface.
~/.aws/credentials or git history → full IAM access. Defence: short-lived federated credentials with no static keys anywhere.
A client says "we use AWS Organizations; SCPs prevent risky actions". What follow-up tests do you run before believing this?
Enumerate the SCPs at each OU level; identify accounts excluded from SCPs (management account, audit account); test whether SCPs apply to root user actions; verify they cover all AWS regions actually in use; check for explicit overrides that defeat the SCP's intent. SCPs are a control — not a substitute for IAM least-privilege.
Next: further topics in Part V cover specialised targets. Review the AWS, Azure, and GCP shared-responsibility models before the next session.