Skip to main content

SOC 2 Compliance Checklist — AWS

In the print dialog, choose Save as PDF as the destination.

Framework: AICPA Trust Services Criteria (TSC) 2017 with 2022 revised points of focus Scope: Security (mandatory) + Availability, Confidentiality (common add-ons) Status legend: [ ] Not started · [~] In progress · [x] Complete

Before engaging your auditor

Do not represent any control as implemented until you have collected and retained evidence. Auditors require logs, screenshots, policy documents, and configuration exports — not just running services.

Shared Responsibility

AWS's SOC 2 report covers the infrastructure layer (physical security, hypervisor, managed service platforms). Your SOC 2 report must cover your controls — IAM, logging, network, encryption, and processes running on top of AWS. Download AWS's SOC 2 report from AWS Artifact to use as vendor evidence.


CC1 — Control Environment

#ItemStatusOwner
1.1Document an Information Security Policy approved by management[ ]CISO / Compliance
1.2Define organizational roles and security responsibilities (RACI)[ ]CISO
1.3Establish a security awareness training program; track completion annually[ ]HR / Security
1.4Conduct background checks for employees with access to customer data[ ]HR
1.5Enable AWS Organizations with SCPs to enforce account-level guardrails[ ]Cloud Admin
1.6Download AWS SOC 2 report from AWS Artifact and retain as vendor evidence[ ]Compliance

Reference: AWS Artifact → · AWS Shared Responsibility Model →


CC2 — Communication and Information

#ItemStatusOwner
2.1Publish a customer-facing security page or Trust Center[ ]Security / Marketing
2.2Maintain an incident notification process (SLA for notifying customers)[ ]Security
2.3Enable CloudTrail in all regions as the primary audit information source[ ]Cloud Admin
2.4Document and communicate a security incident reporting channel internally[ ]Security

Reference: Logging & Monitoring →


CC3 — Risk Assessment

#ItemStatusOwner
3.1Conduct a formal risk assessment annually; document in a risk register[ ]Compliance
3.2Enable Amazon Inspector for continuous vulnerability scanning (EC2, Lambda, ECR)[ ]Security
3.3Enable AWS Security Hub and activate the FSBP and CIS AWS v3.0 standards[ ]Cloud Admin
3.4Review Security Hub findings monthly and track remediation[ ]Security
3.5Assess risks posed by third-party vendors and document mitigations[ ]Compliance

Reference: Amazon Inspector → · AWS Security Hub →


CC4 — Monitoring Activities

#ItemStatusOwner
4.1Enable AWS Config in all regions with a multi-region aggregator[ ]Cloud Admin
4.2Enable GuardDuty in all regions and accounts via AWS Organizations[ ]Cloud Admin
4.3Configure CloudWatch alarms for the 14 CIS benchmark monitoring controls[ ]Cloud Admin
4.4Conduct a penetration test at least annually; retain the report[ ]Security
4.5Perform quarterly access reviews; document and remediate excess permissions[ ]Security

Reference: Logging & Monitoring →


CC5 — Control Activities

#ItemStatusOwner
5.1Apply least-privilege IAM policies; no use of AdministratorAccess managed policy in production[ ]Cloud Admin
5.2Use IAM Identity Center for all human access; no long-lived IAM user credentials for engineers[ ]Cloud Admin
5.3Enforce segregation of duties — developers cannot directly deploy to production[ ]Engineering Lead
5.4Require pull-request reviews and CI pipeline success before production deployments[ ]Engineering Lead
5.5All infrastructure defined as code (CloudFormation, Terraform, CDK) with version control[ ]Cloud Admin

Reference: IAM & Access Control →


CC6 — Logical and Physical Access Controls

CC6.1 — Logical Access Security

#ItemStatusOwner
6.1.1Disable and remove root account access keys[ ]Cloud Admin
6.1.2Enable MFA on the root account[ ]Cloud Admin
6.1.3Enforce MFA for all IAM users with console access[ ]Cloud Admin
6.1.4Enable IAM account password policy (min 14 chars, complexity, 90-day rotation)[ ]Cloud Admin
6.1.5Enable KMS CMK rotation for all customer-managed keys[ ]Cloud Admin
6.1.6Enable S3 Block Public Access at the account level[ ]Cloud Admin
6.1.7Enable default EBS encryption for all volumes in all regions[ ]Cloud Admin

CC6.2 — New Access Provisioning

#ItemStatusOwner
6.2.1Use IAM Identity Center (SSO) for all engineer and operator access[ ]Cloud Admin
6.2.2Document a formal access request and approval process[ ]Security
6.2.3Grant access via IAM roles only; no inline policies on users[ ]Cloud Admin

CC6.3 — Access Removal

#ItemStatusOwner
6.3.1Deprovision IAM Identity Center access within 24 hours of termination[ ]HR / Cloud Admin
6.3.2Rotate or disable IAM access keys within 24 hours of employee departure[ ]Cloud Admin
6.3.3Flag credentials unused for 90+ days via AWS Config rule iam-user-unused-credentials-check[ ]Cloud Admin
6.3.4Rotate IAM access keys at least every 90 days via Config rule access-keys-rotated[ ]Cloud Admin

CC6.6 — Network Controls

#ItemStatusOwner
6.6.1Delete or avoid using the default VPC in all regions[ ]Cloud Admin
6.6.2Deploy production workloads in private subnets; public subnets for load balancers only[ ]Cloud Admin
6.6.3No security group allows unrestricted inbound access (0.0.0.0/0) on admin ports (22, 3389)[ ]Cloud Admin
6.6.4Enable VPC Flow Logs for all VPCs; send to CloudWatch Logs or S3[ ]Cloud Admin
6.6.5Deploy AWS WAF on all public-facing load balancers and CloudFront distributions[ ]Cloud Admin

CC6.7 — Data Transmission Controls

#ItemStatusOwner
6.7.1Enforce TLS 1.2+ on all public endpoints; disable older protocols[ ]Cloud Admin
6.7.2Enable S3 bucket policies to deny non-HTTPS requests (aws:SecureTransport)[ ]Cloud Admin
6.7.3Store all secrets in AWS Secrets Manager or SSM Parameter Store (SecureString); never in code[ ]Engineering
6.7.4Enable Secrets Manager automatic rotation for all secrets[ ]Cloud Admin

Reference: Network Security → · Encryption →


CC7 — System Operations

#ItemStatusOwner
7.1Enable multi-region CloudTrail trail with log file validation[ ]Cloud Admin
7.2Send CloudTrail logs to a dedicated, access-restricted S3 bucket[ ]Cloud Admin
7.3Enable CloudTrail S3 and Lambda data events for high-sensitivity accounts[ ]Cloud Admin
7.4Enable GuardDuty in all regions; configure SNS alerting for HIGH findings[ ]Cloud Admin
7.5Enable Amazon Macie on S3 buckets containing sensitive or customer data[ ]Cloud Admin
7.6Enable Amazon Inspector on all EC2 instances, Lambda functions, and ECR repositories[ ]Cloud Admin
7.7Document and test an incident response runbook; review quarterly[ ]Security
7.8Configure EventBridge rules to route GuardDuty HIGH/CRITICAL findings to a ticketing system[ ]Cloud Admin

Reference: Logging & Monitoring → · Incident Response →


CC8 — Change Management

#ItemStatusOwner
8.1All production infrastructure changes made via IaC (no manual console changes)[ ]Cloud Admin
8.2Require peer review (pull request) for all IaC changes[ ]Engineering Lead
8.3CI/CD pipeline runs security scans (SAST, dependency scan) before deployment[ ]Engineering
8.4Enable AWS Config drift detection; alert on configuration drift from baselines[ ]Cloud Admin
8.5Maintain a change log; document major infrastructure changes with rationale[ ]Cloud Admin
8.6Test deployments in a staging environment before production[ ]Engineering

CC9 — Risk Mitigation

#ItemStatusOwner
9.1Maintain a vendor inventory; assess each vendor's SOC 2 / ISO 27001 status annually[ ]Compliance
9.2Obtain AWS SOC 2 report annually from AWS Artifact as evidence of infrastructure vendor controls[ ]Compliance
9.3Enable AWS Backup with cross-region replication for all critical data stores[ ]Cloud Admin
9.4Document and test BCP/DRP; verify RTO and RPO targets can be met[ ]Cloud Admin
9.5Use AWS Resilience Hub to assess application resilience against defined RPO/RTO[ ]Cloud Admin

Reference: AWS Artifact → · AWS Backup →


AWS Audit Manager

AWS Audit Manager has a pre-built SOC 2 (SSAE-18) framework that automatically maps evidence from Config rules, CloudTrail, and Security Hub findings to each TSC criterion. Enable it to automate evidence collection for your audit.

Reference: AWS Audit Manager SOC 2 Framework →