DEV Community

matthew dibiaso
matthew dibiaso

Posted on

Level Up Your AWS Security: A Detailed Prioritized Checklist from the Trenches

Level Up Your AWS Security: A Detailed Prioritized Checklist from the Trenches

When I approach a new organization, there are key areas I focus on when conducting a security audit. AWS security is a complex, ever-evolving landscape, and my goal is to break it down into a structured, actionable process.

Disclaimer: Security is a journey. Adapt this checklist to your needs and keep refining it!

The Easy Wins: Foundational Security

Stage 1: Know Your Territory (Inventory)

  • Identify all AWS accounts and their points of contact. Use AWS Organizations for a consolidated view. Maintain a spreadsheet or wiki mapping accounts to business units, owners, and contact info.
  • Integrate AWS accounts into AWS Organizations. Centralized management and policy enforcement are key.
  • Ensure all account root emails are on distribution lists. Redundancy and shared responsibility are crucial.
  • Opt-out of AI services using your data. Review AWS service terms and opt-out if you have privacy concerns.
  • Dedicate an AWS account solely for Security operations. Isolation enhances security.
  • Create budget alarms. Unexpected costs can be a red flag. Set alerts for budget thresholds.
  • Enable Service Control Policies (SCPs) via AWS Organizations. SCPs act as guardrails, preventing policy violations across accounts. Start with basic policies and refine as needed.
  • Categorize AWS accounts (production, development, sandbox, etc.). Apply different security policies based on data sensitivity and account purpose.

Stage 2: Back It Up!

  • Create regular backups with AWS Backup and S3 replication policies.
  • Define backup schedules and retention policies aligned with your RTO and RPO.
  • Use cross-region replication for resilience and test your backups regularly.

Stage 3: See and Respond (Visibility and Initial Remediation)

  • Enable CloudTrail in all accounts, sending logs to a dedicated S3 bucket in your Security account.
  • Activate GuardDuty in all accounts, forwarding findings to your Security account.
  • Enable IAM Access Analyzer for policy analysis and resource access visibility.
  • Turn off S3 Public Block Access at the account and bucket level.
  • Develop an account initialization script and a standardized account creation process.
  • Enable VPC Flow Logs for all VPCs to gain insights into network traffic.

Stage 4: Early Warning System (Detection)

  • Document your security guidelines.
  • Send alerts to a ticketing system (e.g., CloudWatch Events to SNS to email/Slack).
  • Enable investigation capabilities for your logs.
  • Consider enabling other logging sources (AWS Config, AWS WAF, load balancers, etc.).

Stage 5: Lock Down Access (Secure IAM)

  • Implement SSO for centralized identity management.
  • Remove all IAM users (except break-glass accounts). Use IAM roles instead.
  • Regularly audit and remove unused IAM roles and policies.
  • Enforce MFA for all IAM users and roles with console access.
  • Plan your account connectivity strategy.
  • Implement pre-commit hooks for secret detection.

Stage 6: Shrink the Target (Reduce Attack Surface)

  • Avoid publicly accessible EC2 instances and S3 buckets.
  • Enforce IMDSv2 on all EC2 instances.

Stage 7: Repeatability and Accountability (Reproducibility and Ownership)

  • Apply a comprehensive tagging strategy.

Stage 8: Advanced Detection (Enhance Detection and Least Privilege Refinement)

  • Deploy honeytokens.

Stage 9: Secure the Pipes (Secure Network Communications)

  • Restrict egress network traffic using security groups and Network ACLs.
  • Enforce encryption for all data in transit using TLS/SSL.

Stage 10: Be Prepared (Incident Preparation)

  • Limit the blast radius of incidents.
  • Practice incident response with simulations and tabletop exercises.
  • Establish and maintain a detailed, up-to-date incident response plan.
  • Use AWS Trusted Advisor for best practice checks during incidents.

Moderate Measures: Stepping Up Your Game

Stage 1: Inventory - Continuous Compliance

  • Conduct regular audits of AWS accounts.

Stage 2: Backups - Resilience and Recovery

  • Test recovery procedures regularly.
  • Implement cross-region replication for critical backups.
  • Use AWS Backup Vault Lock to enforce retention policies.

Stage 3: Visibility and Initial Remediation - Proactive Monitoring

  • Centralize logging using AWS CloudWatch Logs.
  • Set up AWS Config rules to monitor compliance and configuration drift.

Stage 4: Enhanced Detection - Security Information Management

  • Perform regular vulnerability scanning using AWS Inspector.
  • Integrate AWS Security Hub to aggregate and prioritize security findings.

Stage 5: Secure IAM Access - Refinement

  • Regularly review and tighten IAM access policies.
  • Use IAM Access Analyzer to identify overly permissive access.

Stage 6: Reduce Attack Surface - Proactive Defense

  • Implement AWS WAF.
  • Regularly review and update security group rules.

Stage 7: Reproducibility and Ownership - Automation and Control

  • Control AMI and package sourcing.
  • Maintain version control for all infrastructure code.

Stage 8: Enhance Detection and Least Privilege Refinement - Real-Time Security

  • Implement real-time monitoring.
  • Implement automated remediation for common security issues.

Stage 9: Secure Network Communications - Advanced Networking

  • Move all non-public network resources into private subnets.
  • Use AWS PrivateLink to securely connect services.

Stage 10: Incident Preparation - Practice Makes Perfect

  • Conduct tabletop exercises.
  • Maintain a forensic data collection plan.

Complex Challenges: Expert Level Security

Stage 1: Visibility and Initial Remediation - Deep Dive

  • Create IAM roles in each account that grant read-only access from the Security account.
  • Run a one-time scanning tool for tactical remediation of identified vulnerabilities.

Stage 2: Detection - Advanced Threat Hunting

  • Implement automated alert correlation.
  • Use Amazon Detective for deeper investigation.

Stage 3: Secure IAM Access - Surgical Precision

  • Reduce service role privileges to the absolute minimum necessary.

Stage 4: Reduce Attack Surface - Fortress Mode

  • Enable AWS Shield Advanced for DDoS protection.
  • Implement comprehensive SCPs to enforce security policies.

Stage 5: Reproducibility and Ownership - Infrastructure as Code Excellence

  • Use Infrastructure as Code (IaC).
  • Implement CI/CD pipelines for infrastructure deployment.
  • Conduct regular code reviews with a security focus.

Stage 6: Enhance Detection and Least Privilege Refinement - Continuous Improvement

  • Continuously refine IAM policies based on access patterns.
  • Conduct regular threat hunting exercises.
  • Implement anomaly detection.

Stage 7: Secure Network Communications - Network Segmentation and Control

  • Implement VPN or Direct Connect for secure hybrid cloud connectivity.
  • Regularly review and audit VPC Peering and Transit Gateway configurations.
  • Implement VPC inspection.

Stage 8: Incident Preparation - Ready for Anything

  • Establish a dedicated incident response team.
  • Use AWS Config rules for automated detection and alerting on compliance violations.

Sentry image

Hands-on debugging session: instrument, monitor, and fix

Join Lazar for a hands-on session where you’ll build it, break it, debug it, and fix it. You’ll set up Sentry, track errors, use Session Replay and Tracing, and leverage some good ol’ AI to find and fix issues fast.

RSVP here →

Top comments (0)

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay