Shared Responsibility Model
Cloud security is shared between the provider and customer. The provider is always responsible for physical infrastructure, network fabric, and hypervisor security. The customer is always responsible for their data, identity and access management, and client-side configurations. The middle ground shifts by service model: IaaS — customer responsible for OS and above. PaaS — customer responsible for application and data. SaaS — customer responsible for data and user access only.
Common customer mistakes: misconfigured S3 buckets (public read access on private data), overprivileged IAM roles, no MFA on root/admin accounts, unencrypted data at rest, open security groups allowing 0.0.0.0/0 on all ports. Most cloud breaches result from customer misconfiguration, not cloud provider failures.
Cloud Network Security Controls
Security groups (virtual firewalls): control inbound and outbound traffic to cloud instances at the instance level. Stateful — only outbound rules needed for return traffic. Apply least-privilege: only open specific required ports from specific sources. Never use 0.0.0.0/0 (allow all) for sensitive resources.
Network ACLs (cloud): subnet-level stateless filters in cloud VPCs (e.g., AWS NACL). Unlike security groups, NACLs require both inbound and outbound rules for bidirectional traffic. Applied at the subnet level — affect all instances in the subnet.
Cloud WAF and DDoS protection: cloud providers offer WAF services (AWS WAF, Azure WAF, Cloudflare WAF) and DDoS protection (AWS Shield, Azure DDoS Protection). These cloud-native services integrate directly with cloud load balancers and CDNs without requiring dedicated hardware.
Encryption: encrypt data at rest using cloud KMS (Key Management Service) — provider-managed keys or customer-managed keys (CMK). Encrypt data in transit using TLS. Client-side encryption: encrypt before uploading so even the provider cannot access plaintext.