Back to Insights
WhitepaperSecurityPremium

The Complete AWS Security Checklist for 2024

A comprehensive security audit checklist covering IAM, network security, data protection, and compliance frameworks.

December 22, 202315 min readBy Sentasity Team

Executive Summary

AWS security isn't optional—it's essential. Data breaches, misconfigured resources, and compliance failures make headlines regularly. The consequences range from financial losses to regulatory penalties to irreparable reputation damage.

The good news: AWS provides comprehensive security tools and features. The challenge: knowing what to implement and in what order. This guide provides a systematic checklist covering the five pillars of AWS security.

Why This Checklist Matters

  • 82% of breaches involve the human element (Verizon DBIR 2023)
  • Average cost of a data breach: $4.45 million (IBM Security 2023)
  • 78% of organizations have experienced a cloud security incident in the past year
  • 60% of breaches involve unpatched vulnerabilities

How to Use This Checklist

This checklist is organized by security domain and priority:

  • Critical: Must implement immediately. Security fundamentals.
  • High: Should implement within 30 days. Important protections.
  • Medium: Implement within 90 days. Enhanced security.
  • Low: Implement as resources allow. Defense in depth.

We recommend working through this checklist systematically, validating each control, and documenting your security posture.


Chapter 1: Identity and Access Management

IAM is the foundation of AWS security. A misconfigured IAM policy can expose your entire environment.

Root Account Security

The root account has unlimited access to all resources. Protect it rigorously.

Critical Controls

  • Enable MFA on root account: Use a hardware MFA device, not virtual
  • Do not create access keys for root: Root should only be used via console
  • Secure root email: Use a distribution list, not individual email
  • Create admin IAM user: All daily work should use IAM users, not root

Verification

# Check if root has MFA enabled
aws iam get-account-summary | grep AccountMFAEnabled

IAM Users and Groups

Critical Controls

  • Require MFA for all users: Enforce via IAM policy or AWS Organizations SCP
  • Use groups for permissions: Never attach policies directly to users
  • Rotate access keys regularly: Every 90 days at minimum
  • Remove unused credentials: Audit and delete inactive access keys

High Priority Controls

  • Implement least privilege: Users should have only necessary permissions
  • Use IAM Access Analyzer: Identify overly permissive policies
  • Audit unused users: Remove accounts that haven't logged in

IAM Policy Best Practices

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:GetObject",
        "s3:ListBucket"
      ],
      "Resource": [
        "arn:aws:s3:::specific-bucket",
        "arn:aws:s3:::specific-bucket/*"
      ],
      "Condition": {
        "StringEquals": {
          "aws:PrincipalTag/Team": "data-team"
        }
      }
    }
  ]
}

IAM Roles

Critical Controls

  • Use roles instead of access keys: For applications and services
  • Configure trust relationships carefully: Limit who can assume roles
  • Use instance profiles for EC2: Never embed credentials in code

High Priority Controls

  • Implement service-linked roles: For AWS service access
  • Review cross-account access: Audit external principals in role trust policies
  • Set maximum session duration: Limit how long roles can be assumed

Password Policy

Critical Controls

  • Enforce strong passwords: Minimum 14 characters
  • Require password expiration: Every 90 days
  • Prevent password reuse: Remember at least 24 passwords

Chapter 2: Network Security

Network configuration controls the attack surface of your AWS environment.

VPC Security

Critical Controls

  • Use private subnets: Place sensitive resources in private subnets
  • Restrict public IP assignment: Only assign public IPs when necessary
  • Remove default VPC: Create custom VPCs with appropriate design

High Priority Controls

  • Enable VPC Flow Logs: Capture network traffic metadata
  • Use NAT Gateways: For private subnet internet access
  • Implement VPC Endpoints: Avoid internet traversal for AWS services

Security Groups

Critical Controls

  • Deny all by default: Security groups should start with no rules
  • No 0.0.0.0/0 on SSH/RDP: Restrict management access to known IPs
  • Audit regularly: Review and remove unused security groups

Security Group Best Practices

# Find security groups with unrestricted access
aws ec2 describe-security-groups \
  --filters Name=ip-permission.cidr,Values='0.0.0.0/0' \
  --query 'SecurityGroups[*].[GroupId,GroupName]'

Network ACLs

High Priority Controls

  • Implement network ACLs: Additional layer beyond security groups
  • Deny known bad actors: Block known malicious IP ranges
  • Log denied traffic: For security analysis

Web Application Security

Critical Controls

  • Enable AWS WAF: Protect web applications from common exploits
  • Configure rate limiting: Prevent denial of service
  • Block SQL injection: Enable WAF rules for common attacks

High Priority Controls

  • Enable AWS Shield: DDoS protection (Standard is free)
  • Use CloudFront: Add CDN layer with security benefits
  • Configure HTTPS only: Redirect all HTTP to HTTPS

Chapter 3: Data Protection

Protecting data at rest and in transit is essential for confidentiality and compliance.

Encryption at Rest

Critical Controls

  • Enable default EBS encryption: Account-level setting
  • Enable S3 default encryption: Per-bucket setting
  • Encrypt RDS instances: Enable at creation

High Priority Controls

  • Use KMS customer managed keys: For audit trail and control
  • Enable key rotation: Automatic annual rotation
  • Restrict key access: Limit who can use encryption keys

Encryption in Transit

Critical Controls

  • Enforce HTTPS: Via bucket policies, ALB settings
  • Use TLS 1.2+: Disable older TLS versions
  • Certificate management: Use ACM for automatic renewal

S3 HTTPS Enforcement

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "EnforceHTTPS",
      "Effect": "Deny",
      "Principal": "*",
      "Action": "s3:*",
      "Resource": "arn:aws:s3:::bucket-name/*",
      "Condition": {
        "Bool": {
          "aws:SecureTransport": "false"
        }
      }
    }
  ]
}

S3 Security

Critical Controls

  • Block public access: Account and bucket level
  • Enable versioning: For data recovery
  • Configure access logging: For audit trail

High Priority Controls

  • Disable ACLs: Use IAM policies only
  • Enable Object Lock: For compliance data
  • Review bucket policies: Check for overly permissive principals

Data Classification

Medium Priority Controls

  • Implement data classification: Tag resources by sensitivity
  • Use Macie for S3: Automatic PII detection
  • Separate sensitive data: Use dedicated accounts for regulated data

Chapter 4: Logging and Monitoring

You can't detect what you don't monitor. Comprehensive logging is essential for security operations.

CloudTrail

Critical Controls

  • Enable CloudTrail: In all regions
  • Configure multi-region trail: Single trail captures all regions
  • Enable log file validation: Detect tampering
  • Store logs in separate account: Prevent deletion by attackers

High Priority Controls

  • Enable data events: For S3 and Lambda activity
  • Configure CloudWatch integration: For alerting
  • Set retention policy: 1 year minimum recommended

CloudWatch

Critical Controls

  • Create security alarms: Root login, unauthorized API calls
  • Configure log retention: Don't let logs expire too quickly
  • Centralize log groups: Use consistent naming

Essential CloudWatch Alarms

AlarmMetric Filter
Root account usage{ $.userIdentity.type = "Root" }
Console login without MFA{ $.eventName = "ConsoleLogin" && $.additionalEventData.MFAUsed != "Yes" }
IAM policy changes{ ($.eventName=DeleteGroupPolicy) || ($.eventName=DeleteRolePolicy) }
Security group changes{ ($.eventName = AuthorizeSecurityGroupIngress) || ... }

GuardDuty

Critical Controls

  • Enable GuardDuty: In all regions and accounts
  • Configure alert notifications: SNS topic to security team
  • Review findings regularly: Triage and respond to alerts

High Priority Controls

  • Enable malware protection: For EC2 and S3
  • Configure trusted IP lists: Reduce false positives
  • Integrate with Security Hub: Centralized security view

Security Hub

High Priority Controls

  • Enable Security Hub: Aggregated security findings
  • Enable standards: CIS, AWS Foundational, PCI DSS
  • Configure findings export: To SIEM or ticketing system

Chapter 5: Compliance and Governance

Meeting compliance requirements requires systematic controls and documentation.

AWS Organizations

High Priority Controls

  • Enable Organizations: Centralized account management
  • Implement SCPs: Service control policies for guardrails
  • Separate workloads: Use dedicated accounts for production

Example SCP: Deny Dangerous Actions

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "DenyLeaveOrganization",
      "Effect": "Deny",
      "Action": "organizations:LeaveOrganization",
      "Resource": "*"
    },
    {
      "Sid": "DenyCloudTrailDisable",
      "Effect": "Deny",
      "Action": [
        "cloudtrail:StopLogging",
        "cloudtrail:DeleteTrail"
      ],
      "Resource": "*"
    }
  ]
}

Config

High Priority Controls

  • Enable Config: Resource configuration tracking
  • Configure rules: Detect non-compliant resources
  • Enable remediation: Auto-fix common issues

Essential Config Rules

  • s3-bucket-public-read-prohibited
  • ec2-instance-managed-by-systems-manager
  • encrypted-volumes
  • rds-storage-encrypted
  • root-account-mfa-enabled

Compliance Frameworks

Framework-Specific Controls

FrameworkKey Requirements
SOC 2Access controls, monitoring, encryption
HIPAAPHI protection, access logging, encryption
PCI DSSNetwork segmentation, encryption, access controls
GDPRData protection, consent, right to erasure

The Complete Checklist

Critical (Implement Immediately)

Identity and Access

  • MFA on root account
  • No root access keys
  • MFA required for all users
  • Admin IAM user created

Network

  • Private subnets for sensitive resources
  • No 0.0.0.0/0 on SSH/RDP
  • Security groups audited
  • AWS WAF enabled

Data

  • Default encryption enabled (EBS, S3, RDS)
  • HTTPS enforced
  • S3 public access blocked

Monitoring

  • CloudTrail enabled (all regions)
  • GuardDuty enabled
  • Root login alerts configured

High Priority (30 Days)

Identity and Access

  • Least privilege policies
  • Access key rotation policy
  • IAM Access Analyzer enabled
  • Service-linked roles used

Network

  • VPC Flow Logs enabled
  • VPC Endpoints configured
  • Network ACLs implemented

Data

  • KMS customer managed keys
  • Key rotation enabled
  • S3 versioning enabled

Monitoring

  • CloudWatch alarms configured
  • Security Hub enabled
  • Log retention set

Governance

  • Organizations enabled
  • SCPs configured
  • Config rules enabled

Medium Priority (90 Days)

  • Password policy enforced
  • NAT Gateways for private access
  • Object Lock for compliance data
  • Macie for PII detection
  • Config remediation enabled
  • Comprehensive Config rules

Low Priority (Ongoing)

  • Penetration testing schedule
  • Security awareness training
  • Disaster recovery testing
  • Third-party security audit
  • Bug bounty program

Conclusion

Security is not a one-time project but an ongoing practice. This checklist provides a foundation, but effective security requires:

  • Regular audits: Review controls quarterly at minimum
  • Continuous monitoring: Detect and respond to threats in real-time
  • Team training: Security awareness for all team members
  • Incident response: Documented procedures for security events

Getting Started

  1. Assess current state: Work through this checklist, documenting gaps
  2. Prioritize by risk: Address critical items first
  3. Implement systematically: One control at a time, validated
  4. Monitor continuously: Detection is as important as prevention

Security and Cost Optimization

Security and cost optimization are complementary. Our scanner identifies both security misconfigurations and cost waste:

  • Public S3 buckets (security risk AND compliance risk)
  • Unused security groups (clutter AND audit complexity)
  • Unencrypted volumes (security gap AND compliance violation)

About Sentasity

Sentasity helps growing companies secure and optimize their AWS environments. Our scanner covers security findings alongside cost optimization, giving you a complete picture of your AWS posture.

Start your free scan to assess your security and cost optimization opportunities.

Learn about Managed Billing for ongoing monitoring and support.

Tags

WhitepaperSecurityAWSComplianceBest Practices

Ready to Optimize Your AWS Costs?

Start with a free scan to see what you could save.