Skip to content
beginner Phase 16 · Cloud Security Foundations

Shared Responsibility Model

Know exactly which controls your provider owns and which remain yours.

45m
0 problems
Topic Progress 0%

The Responsibility Boundary and Why It Exists

The Responsibility Boundary

When a company lifts a workload into the cloud, the first question is never "how do we secure this?" — it's "which parts are already secured for us?" The shared responsibility model answers that question by drawing a line between the cloud provider's obligations and the customer's obligations. Getting this boundary wrong is the root cause of most cloud breaches: teams assume the provider handles something the customer owns, or they waste effort re-securing what the provider already covers.

The provider's side: security of the cloud

The provider is responsible for the physical and virtualization layers that make the cloud exist. This includes:

  • Physical security of data centers — access controls, power, cooling, hardware lifecycle
  • Network infrastructure — the backbone, edge locations, and core routing
  • Hypervisor and host OS — the virtualization layer that isolates tenant workloads
  • Managed service internals — for services like RDS, Lambda, or CloudFront, the provider patches the underlying runtime

AWS, Azure, and GCP all publish detailed responsibility matrices. The key insight is that the provider's responsibility is always the same regardless of what you run — they secure the substrate.

The customer's side: security in the cloud

Everything you build, configure, or deploy on top of that substrate is your responsibility. This includes:

  • Data classification and encryption — you decide what's sensitive and how it's encrypted at rest and in transit
  • Identity and access management — who can do what, with which credentials, under which conditions
  • Network configuration — VPC design, security groups, firewall rules, routing tables
  • OS and application patching — for IaaS workloads, you patch the guest OS and everything above it
  • Customer-managed keys — if you bring your own key (BYOK), you manage rotation and access

The critical nuance: the boundary shifts by service model

This is where most people get tripped up. The responsibility line is not fixed — it moves depending on whether you're using IaaS, PaaS, or SaaS:

Control IaaS (EC2) PaaS (RDS) SaaS (Office 365)
Physical security Provider Provider Provider
Network infrastructure Provider Provider Provider
Hypervisor Provider Provider Provider
Guest OS Customer Provider Provider
Application Customer Customer Provider
Data Customer Customer Customer
Identity Customer Customer Customer

With EC2, you own the OS patching. With RDS, AWS patches the database engine and OS — you manage access, encryption, and data. With SaaS, the provider owns almost everything except your data and who can access it.

Why this matters for security decisions

Understanding the boundary prevents two failure modes:

  1. Assuming the provider handles something you own — e.g., assuming AWS patches your EC2 instances (it doesn't) or that S3 buckets are private by default (they're not)
  2. Over-engineering controls the provider already has — e.g., building redundant physical access controls when the provider already handles that

The model is not a suggestion — it's the contractual and architectural reality of cloud computing. Every security decision you make should start with "which side of the line does this control fall on?"

Common Breach Patterns and the Responsibility Gaps They Exploit

Breach Patterns at the Boundary

The shared responsibility model isn't theoretical — it maps directly to real breach patterns. When you read incident post-mortems, the root cause is almost always a customer-side control that was assumed to be the provider's job.

Pattern 1: Public storage buckets

The most common cloud breach is an exposed S3 bucket, Azure Blob, or GCS object. The provider gives you the storage service; you configure the access policy. When a bucket is accidentally set to public, that's a customer-side misconfiguration — the provider delivered exactly the service you asked for.

# Checking bucket policy for public access (AWS CLI)
aws s3api get-bucket-policy --bucket my-app-data --query 'Policy' --output text | jq .

# Checking block public access settings
aws s3api get-public-access-block --bucket my-app-data

The provider offers tools like S3 Block Public Access, but enabling them is the customer's responsibility. The service works correctly — the misconfiguration is in how the customer used it.

Pattern 2: Over-privileged IAM roles

When an EC2 instance is given an IAM role with s3:* permissions and the instance is compromised, the attacker gets full S3 access. The provider's IAM service worked exactly as configured — the customer attached an over-permissive role.

// Over-permissive role — customer-side mistake
{
  "Version": "2012-10-17",
  "Statement": [{
    "Effect": "Allow",
    "Action": "s3:*",
    "Resource": "*"
  }]
}

The provider gives you the tools to scope permissions tightly (least privilege, permission boundaries, SCPs). Using them correctly is on you.

Pattern 3: Unpatched IaaS workloads

When a vulnerability like Log4Shell spreads through cloud environments, the compromised systems are almost always customer-managed EC2 instances or containers. The provider patches the hypervisor and host infrastructure — but the guest OS and application layers are the customer's responsibility.

# Checking for available security updates on an EC2 instance (Amazon Linux 2)
sudo yum check-update --security

# Applying security patches
sudo yum update --security

Pattern 4: Misconfigured network security groups

A security group that allows 0.0.0.0/0 on port 22 (SSH) or 3389 (RDP) is a customer configuration error. The provider's security group service is working correctly — the rule you created is too permissive.

# Auditing security groups for open SSH
aws ec2 describe-security-groups \
  --filters "Name=ip-permission.cidr,Values=0.0.0.0/0" \
  --query "SecurityGroups[?IpPermissions[?FromPort==`22`]].GroupId" \
  --output text

The pattern behind all patterns

Every one of these breaches follows the same shape: the customer assumed a control was the provider's responsibility, or failed to configure a customer-side control correctly. The shared responsibility model exists precisely to make this boundary explicit — so you can focus your security effort on the controls you actually own, and verify that the provider's controls are operating as expected.

Practice Problems

0 / 2 solved
Map Controls to Responsibility Tiers

A company runs a three-tier web app: EC2 instances (IaaS) for the web tier, RDS (PaaS) for the database, and uses Office 365 (SaaS) for email. For each of the following controls, identify whether it is the provider's or customer's responsibility: (a) patching the OS on the web tier, (b) encrypting the database at rest, (c) managing user mailbox access, (d) configuring the VPC routing table, (e) patching the database engine.

Solution
(a) Customer — EC2 is IaaS, so the guest OS is the customer's responsibility. (b) Customer — RDS is PaaS; the provider patches the engine and OS, but the customer decides whether to enable encryption and manages the encryption keys (or uses AWS-managed keys). (c) Customer — Office 365 is SaaS; Microsoft owns the application, but the customer controls who has accounts and what they can access. (d) Customer — VPC configuration is always the customer's responsibility regardless of service model. (e) Provider — RDS is PaaS, so AWS patches the database engine.
Identify the Responsibility Gap

An attacker exfiltrates customer data from a company's cloud storage. The bucket had a public-read ACL. The company's CISO claims the cloud provider is responsible because the storage service was 'insecure.' Explain why this claim is incorrect and which side of the responsibility boundary the failure falls on.

Solution
The claim is incorrect. The storage service (S3, Blob, etc.) is designed to support both public and private access patterns — that's a feature, not a vulnerability. The provider's responsibility is to offer access control mechanisms (ACLs, bucket policies, block public access settings). The customer's responsibility is to configure those mechanisms correctly. A public-read ACL is a customer-side misconfiguration. The provider delivered a working service; the customer misused it.

Quiz

1. A company uses AWS RDS for their database. Which of the following is the customer's responsibility?

Question 1 options

2. An S3 bucket is accidentally configured with public-read access, exposing customer data. Which side of the shared responsibility boundary does this failure fall on?

Question 2 options

3. Which of the following is always the customer's responsibility regardless of whether you use IaaS, PaaS, or SaaS?

Question 3 options

Flashcards

Question

What does the cloud provider secure in the shared responsibility model?

Answer

The provider secures the cloud itself: physical data centers, network infrastructure, hypervisor, and host OS for managed services.

Question

What does the customer secure in the shared responsibility model?

Answer

The customer secures what they put in the cloud: data, identity/access management, network configuration (VPCs, security groups), and OS/application patching for IaaS.

Question

How does the responsibility boundary shift between IaaS and PaaS?

Answer

With IaaS (e.g., EC2), the customer patches the guest OS. With PaaS (e.g., RDS), the provider patches the OS and application runtime — the customer only manages access, data, and configuration.

Question

What is the most common customer-side cloud breach pattern?

Answer

Misconfigured storage (public buckets), over-privileged IAM roles, and unpatched IaaS workloads — all customer-side controls that were assumed to be the provider's responsibility.

Revision Notes

Key Takeaways

  • 1. The provider secures the cloud substrate; the customer secures everything they build on top of it
  • 2. The responsibility boundary shifts by service model — IaaS leaves OS patching to the customer, PaaS does not
  • 3. Most cloud breaches are customer-side misconfigurations, not provider failures
  • 4. Data classification and access management are always the customer's responsibility

Interview Tips

  • • Use a concrete example: 'With EC2, AWS patches the hypervisor but I patch the guest OS — that's the IaaS boundary.'
  • • Explain the breach pattern: 'The 2019 Capital One breach was a customer-side SSRF vulnerability, not an AWS infrastructure failure.'
  • • Show you understand the nuance: 'Even with SaaS, the customer owns data classification and who can access it.'

Cheat Sheet

Shared Responsibility Model Cheat Sheet

Phase: Cloud Security Foundations | Level: beginner

The boundary:

  • Provider secures the cloud: physical security, network infrastructure, hypervisor, managed service internals
  • Customer secures what's in the cloud: data, IAM, network config, OS patching (IaaS)

Responsibility by service model:

Control IaaS PaaS SaaS
Physical / Network / Hypervisor Provider Provider Provider
Guest OS Customer Provider Provider
Application Customer Customer Provider
Data Customer Customer Customer
Identity Customer Customer Customer

Common breach patterns (all customer-side):

  • Public storage buckets (misconfigured ACLs/policies)
  • Over-privileged IAM roles
  • Unpatched IaaS workloads
  • Overly permissive security groups

Key rule: Every security decision starts with "which side of the line does this control fall on?"

Continue Learning