
CISSP Certification Complete Study Guide
June 22, 2026In 2024, a misconfigured Amazon S3 bucket exposed 38 million records belonging to a major insurance provider—not because of a sophisticated zero-day exploit, but because someone left a storage permission set to “public.” That breach cost the company millions in remediation and regulatory fines, and it represents the single most common cloud security failure on AWS: human error, not platform weakness. Amazon’s infrastructure is among the most secure on the planet, yet the overwhelming majority of cloud incidents trace back to customer-side misconfigurations. This is the uncomfortable truth at the heart of cloud security: AWS gives you powerful tools, but you remain responsible for using them correctly.
Whether you’re migrating your first workload or hardening an existing multi-account environment, the practices below will help you close the gaps attackers exploit most often. This guide is built for IT professionals who need actionable, technically grounded advice—not vague platitudes about “security culture.”
Understand the Shared Responsibility Model Before Anything Else
Every effective AWS security strategy begins with a clear understanding of who is responsible for what. AWS operates under a Shared Responsibility Model, which divides security obligations between the cloud provider and the customer. AWS secures the infrastructure—the physical data centers, networking hardware, and the hypervisor layer. You secure everything you put on top of it: your data, identity configurations, network rules, operating systems, and applications.
The phrase AWS uses is “security of the cloud” versus “security in the cloud.” Misunderstanding this boundary is precisely why breaches happen. According to Gartner, through 2025, 99% of cloud security failures will be the customer’s fault, typically due to misconfigured access controls and exposed resources.
Mapping Responsibility by Service Type
Your responsibilities shift depending on the service model:
| Service Type | AWS Responsibility | Your Responsibility |
|---|---|---|
| EC2 (IaaS) | Hardware, network, hypervisor | OS patching, firewall, data, IAM |
| RDS (Managed) | OS and database patching | Network access, encryption, credentials |
| Lambda (Serverless) | Runtime, scaling, OS | Code security, IAM permissions, data |
The lesson: as you move toward managed and serverless services, AWS handles more of the stack—but you never fully outsource responsibility for identity, data, and configuration.
Master Identity and Access Management (IAM)
IAM is the front door to your entire AWS environment, and it is where the majority of attacks begin. Compromised credentials remain the leading initial access vector in cloud breaches. The 2024 Verizon Data Breach Investigations Report found that stolen credentials were involved in roughly one-third of all breaches—and cloud consoles are a prime target.
Enforce Least Privilege Relentlessly
The principle of least privilege means granting each identity only the permissions it needs to perform its function—nothing more. In practice, this is harder than it sounds. Many teams attach overly broad policies like AdministratorAccess to roles for convenience, creating dangerous attack surfaces.
- Use IAM Access Analyzer to identify unused permissions and generate least-privilege policies based on actual access patterns.
- Avoid long-lived access keys. Rotate any keys that must exist, and prefer IAM roles with temporary credentials via AWS STS.
- Eliminate the root account from daily use. Lock it down with hardware MFA, store the credentials offline, and use it only for tasks that strictly require it.
Require Multi-Factor Authentication Everywhere
MFA blocks the overwhelming majority of credential-based attacks. Microsoft’s research has long shown that MFA prevents over 99% of account compromise attempts. Enforce MFA for all human users through IAM policies that deny actions when MFA is absent, and consider FIDO2 hardware security keys for privileged roles. For programmatic access, replace static keys with short-lived role-based credentials wherever possible.
Secure Your Data With Encryption and Storage Controls
Data exposure through misconfigured storage is the most publicized class of AWS breach. The S3 bucket leaks that make headlines almost always stem from permissions that were never meant to be public—or from default settings that weren’t tightened.
Lock Down S3 and Block Public Access
AWS now enables S3 Block Public Access at the account level by default for new buckets, but legacy buckets and overrides can still leave data exposed. Treat public access as an exception that requires explicit justification and documentation.
- Enable Block Public Access at both the account and bucket level unless a specific, reviewed use case demands otherwise.
- Use bucket policies and IAM rather than legacy ACLs to control access.
- Enable S3 versioning and Object Lock to protect against accidental deletion and ransomware-style tampering.
- Turn on S3 access logging and review it regularly for anomalous read patterns.
Encrypt Data at Rest and in Transit
Encryption is your last line of defense when other controls fail. Use AWS Key Management Service (KMS) to manage encryption keys with fine-grained access policies and automatic rotation. Enable default encryption on S3 buckets, EBS volumes, and RDS instances. For data in transit, enforce TLS 1.2 or higher and reject unencrypted connections through bucket policies and security group rules.
A real-world reminder: when Capital One suffered its 2019 breach affecting over 100 million customers, the attacker exploited a misconfigured web application firewall to access S3 data. Strong encryption and tighter IAM scoping would have significantly limited the blast radius.
Build Defensible Network Architecture
Network design determines how far an attacker can move once they gain a foothold. A flat, permissive network turns a single compromised instance into a full environment breach. Segmentation and the principle of minimal exposure dramatically reduce that risk.
Design VPCs With Segmentation in Mind
Your Virtual Private Cloud (VPC) is the foundation of network isolation. Structure it with security as a priority:
- Separate public and private subnets. Place databases, application servers, and sensitive workloads in private subnets with no direct internet route.
- Use a bastion host or AWS Systems Manager Session Manager for administrative access instead of exposing SSH or RDP to the internet.
- Apply security groups as stateful instance-level firewalls and Network ACLs as stateless subnet-level controls for defense in depth.
- Restrict ingress rules tightly. Avoid the dangerous
0.0.0.0/0on ports like 22 and 3389—a leading cause of compromised instances.
Internet-facing SSH and RDP ports are scanned constantly. Research from cloud honeypot studies shows that exposed instances are probed within minutes of going live, with automated attacks attempting common credentials almost immediately.
Protect the Edge With WAF and Shield
For internet-facing applications, deploy AWS WAF to filter malicious traffic—SQL injection, cross-site scripting, and bot activity. Pair it with AWS Shield for DDoS protection. Standard Shield protection is included at no extra cost, while Shield Advanced offers enhanced mitigation and cost protection for high-value workloads. Use AWS managed rule groups as a baseline, then tune custom rules to your application’s specific patterns.
Implement Continuous Monitoring and Logging
You cannot defend what you cannot see. Detection and response capabilities are what separate a contained incident from a catastrophic breach. The longer an intrusion goes undetected, the more it costs—IBM’s 2024 Cost of a Data Breach Report pegged the global average breach cost at $4.88 million, with longer dwell times driving sharply higher losses.
Enable the Core Observability Stack
AWS provides a robust set of native tools that should be active from day one:
- AWS CloudTrail records every API call across your account. Enable it in all regions and protect log integrity with log file validation and a dedicated, restricted S3 bucket.
- Amazon GuardDuty uses machine learning and threat intelligence to detect anomalous activity—unusual API calls, crypto-mining behavior, and communication with known malicious IPs.
- AWS Config continuously evaluates resource configurations against compliance rules and flags drift, such as an S3 bucket suddenly becoming public.
- Amazon CloudWatch centralizes metrics and logs, enabling alarms on suspicious thresholds and dashboards for operational visibility.
Centralize and Automate Response
In multi-account environments, use AWS Security Hub to aggregate findings from GuardDuty, Config, and Inspector into a single prioritized view, scored against frameworks like CIS AWS Foundations Benchmark. Then automate remediation. For example, an EventBridge rule can trigger a Lambda function to automatically quarantine a public S3 bucket or isolate a compromised EC2 instance the moment GuardDuty raises an alert—shrinking response time from hours to seconds.
Govern at Scale With Automation and Compliance
Manual security does not scale. As your AWS footprint grows across dozens of accounts and hundreds of resources, automation and guardrails become essential to maintaining a consistent security posture.
Use Organizations and Service Control Policies
AWS Organizations lets you centrally manage multiple accounts, while Service Control Policies (SCPs) set guardrails that no member account can exceed—even with admin privileges. Common SCP guardrails include denying the ability to disable CloudTrail, blocking deployment in unapproved regions, and preventing the deletion of security tooling. AWS Control Tower builds on this to provide a pre-configured, well-architected multi-account landing zone with security baked in.
Adopt Infrastructure as Code With Security Scanning
Defining infrastructure through code—using CloudFormation or Terraform—makes configurations repeatable, reviewable, and auditable. Integrate static analysis tools like cfn-nag, tfsec, or Checkov into your CI/CD pipeline to catch insecure configurations before deployment. This “shift-left”
💡 Enjoyed this article?
Subscribe for more expert insights delivered to your inbox.
Follow us or subscribe below — free, no spam.




