Cloud Computing Tutorial · Cloud Basics · Lesson 3 of 24
The Shared Responsibility Model
What the cloud provider secures and what remains your job, for IaaS, PaaS and serverless.
Security "of" and "in" the cloud
The provider is responsible for security of the cloud: physical data centres, hardware, the network and the virtualisation layer. You are responsible for security in the cloud: your identities and permissions, data, network rules, operating system patches (for VMs), application code and configuration.
| Responsibility | VMs (IaaS) | Managed database (PaaS) | Serverless function |
|---|---|---|---|
| Physical security, hardware | Provider | Provider | Provider |
| OS patching | You | Provider | Provider |
| Database engine patching | You | Provider (in your maintenance window) | n/a |
| Network rules (security groups) | You | You | You (if in a VPC) |
| Identity and access (IAM) | You | You | You |
| Data classification, encryption settings | You | You | You |
| Application code and dependencies | You | You | You |
Most cloud breaches are on the customer's side: leaked access keys, public storage buckets, over-permissive roles and unpatched servers, not failures of the provider.
LAYERS = ["facilities", "hardware", "hypervisor", "os", "runtime", "app code", "identity", "data"]
PROVIDER_UP_TO = {"IaaS (VM)": "hypervisor", "PaaS (managed DB)": "runtime", "Serverless": "runtime"}
for model, last in PROVIDER_UP_TO.items():
cut = LAYERS.index(last) + 1
print(f"{model:18} provider: {', '.join(LAYERS[:cut])}")
print(f"{'':18} you: {', '.join(LAYERS[cut:])}")
Output
IaaS (VM) provider: facilities, hardware, hypervisor
you: os, runtime, app code, identity, data
PaaS (managed DB) provider: facilities, hardware, hypervisor, os, runtime
you: app code, identity, data
Serverless provider: facilities, hardware, hypervisor, os, runtime
you: app code, identity, dataTest yourself
A company's S3 bucket with customer data was publicly readable. Whose responsibility was that?
AWS'sThe customer'sNobody'sThe internet provider's
Show answer
Answer: The customer's
Access configuration of your data is security in the cloud, the customer's side of the model.