Complete SOC2 Type II cloud hosting requirements checklist. Audit-ready infrastructure for AWS, Azure & GCP. Stop compliance failures.
In 2023, a Series B SaaS company lost a $2M enterprise contract because their SOC2 Type II audit showed credential exposure in a misconfigured S3 bucket. The software was bulletproof. The cloud infrastructure wasn't.
SOC2 Type II has become the de facto security baseline for B2B procurement. Yet cloud hosting requirements remain misunderstood by engineering teams that have never faced an auditor's microscope. The result: compliance failures that cost revenue, delay deals, and expose organizations to risk that spreadsheets can't capture.
After implementing SOC2 compliance programs at three different SaaS companies across AWS, Azure, and GCP, I've seen the same patterns cause the same failures. This guide documents what you actually need in your cloud infrastructure to pass an audit—and keep passing it.
The Compliance Gap: Why Cloud Infrastructure Fails SOC2
The traditional SOC2 playbook assumed static data centers. You had defined network perimeters, hardware you could touch, and quarterly vulnerability scans. Cloud infrastructure shatters every assumption.
The shared responsibility model creates invisible gaps.** AWS maintains SOC2 Type II certification for their underlying infrastructure. Azure publishes Trust Center documentation. GCP provides compliance reports via their Security Command Center. None of this means your workload is compliant. When auditors review your SOC2 Type II report, they're evaluating YOUR controls implemented ON that infrastructure, not the provider's controls.
A 2024 Gartner survey found that through 2025, 99% of cloud security failures will be customer misconfigurations, not provider failures. The provider's certification doesn't protect you from your own IAM policy that grants S3 bucket access to the world.
Distributed architecture multiplies complexity exponentially. In a data center, you might have three environments. In AWS, you likely have production accounts, staging accounts, development accounts, and sandbox projects—each with dozens of services and hundreds of resources. SOC2 requires you to demonstrate control effectiveness across ALL of them.
Speed is the enemy of compliance. Your development team can provision a new RDS instance in 47 seconds via Terraform. Your compliance team, still using monthly review cycles, has no idea it exists until the audit. This velocity mismatch is where drift happens.
The 12-month observation period creates planning traps. SOC2 Type II requires evidence of control effectiveness over a minimum 12-month period. Organizations that discover compliance requirements mid-growth often find themselves waiting months before they can even begin the audit process. Auditors from firms like Deloitte and PwB report that companies consistently underestimate this lead time by 3-6 months.
Cloud Infrastructure Controls: The Technical Foundation
SOC2 Trust Service Criteria map directly to cloud infrastructure configurations. Here's what auditors actually examine:
Identity and Access Management
Access controls are where most SOC2 findings originate. Cloud providers provide the building blocks, but your implementation determines compliance.
AWS IAM as an example:
# terraform/modules/iam-compliant/main.tf
resource "aws_iam_policy" "mfa_required" {
name = "mfa-required-policy"
description = "Enforce MFA for all interactive console sessions"
policy = jsonencode({
Version = "2012-10-17"
Statement = [{
Effect = "Deny"
NotAction = "iam:CreateVirtualMFADevice"
Resource = "*"
Condition = {
Bool = {
"aws:MultiFactorAuthPresent" = "false"
}
}
}]
})
}
Enforce MFA across all IAM users. Disable root account access via SCPs in AWS Organizations. Implement temporary credentials via AWS STS for all programmatic access. Regular access reviews must be automated—manually reviewing 500+ IAM users quarterly doesn't scale and creates audit gaps.
Encryption Controls
SOC2 requires encryption at rest and in transit. The standard doesn't mandate specific algorithms, but auditors expect AES-256 for data at rest and TLS 1.2+ for data in transit.
For AWS environments, your baseline configuration should include:
- S3 buckets with default encryption enabled (SSE-S3 or SSE-KMS)
- RDS instances with encryption at rest using AWS-managed KMS keys
- CloudTrail logs encrypted by default
- EBS volumes using encryption by default (available since 2023)
Azure requires similar controls via Azure Disk Encryption or encryption at host level. GCP offers default encryption on all Persistent Disks. The key requirement: demonstrate that encryption is ENFORCED, not optional.
Network Segmentation and Isolation
Trust Service Criteria require logical security controls. In cloud environments, this means:
| Cloud Service | Network Isolation Mechanism | SOC2 Evidence Type |
|---|---|---|
| AWS | VPC with private subnets, security groups, NACLs | VPC architecture diagram, security group rules documentation |
| Azure | VNet with subnets, NSGs, Azure Firewall | VNet topology, NSG rule exports |
| GCP | VPC with firewall rules, Shared VPC | VPC network diagram, firewall rule exports |
Production workloads must reside in private subnets with no direct internet access. Database access should flow through bastion hosts or private links. Web-facing services use Application Load Balancers behind WAF rules. Every routing decision is auditable.
Audit Logging Requirements
This is where most organizations discover they have gaps. SOC2 requires comprehensive audit trails that are:
- Immutable — logs cannot be modified or deleted
- Complete — all significant events captured
- Accessible — readable for audit purposes
- Retained — maintained for the audit period (typically 12 months)
# AWS CloudTrail configuration for SOC2 compliance
aws cloudtrail create-trail \
--name soc2-audit-trail \
--s3-bucket-name audit-logs-2025 \
--is-multi-region-trail \
--include-global-service-events \
--enable-log-file-validation \
--is-organization-trail
# Enable S3 Object Lock for immutability
aws s3api put-object-lock-configuration \
--bucket audit-logs-2025 \
--object-lock-configuration '{
"ObjectLockMode": "Governance",
"ObjectLockEnabled": "Enabled"
}'
CloudTrail provides the foundation. You need log aggregation into a SIEM or log analysis service. AWS CloudWatch Logs, Azure Monitor, and GCP Cloud Logging provide query capabilities. For evidence collection, you'll want these logs centralized—not scattered across 47 service-specific stores.
SOC2 Compliance Architecture for Cloud: Implementation Patterns
Infrastructure as Code for Compliance Evidence
Terraform has become the standard for cloud infrastructure definition in enterprise environments. When implemented correctly, it provides the most auditable evidence of security control implementation.
Why IaC works for SOC2:
- Every resource is defined in version-controlled code
- Pull request history serves as change documentation
- Terraform state captures the actual configuration
- Plan outputs document intended vs. actual changes
Your Terraform module structure should reflect SOC2 control domains:
modules/
├── access-management/
│ ├── iam-policies/
│ ├── mfa-enforcement/
│ └── access-reviews/
├── encryption/
│ ├── kms-keys/
│ ├── s3-encryption/
│ └── rds-encryption/
├── network-isolation/
│ ├── vpc/
│ ├── security-groups/
│ └── logging-endpoints/
└── audit-logging/
├── cloudtrail/
├── config-rules/
└── log-aggregation/
Each module should have embedded compliance documentation. Your outputs.tf should include compliance metadata: which SOC2 criteria the resource satisfies, who owns the control, and when it was last reviewed.
Cloud Security Posture Management
Manual configuration reviews don't scale across dynamic cloud environments. CSPM tools provide continuous monitoring against security benchmarks including SOC2 criteria.
AWS Security Hub provides baseline security checks aligned with AWS best practices. It won't cover your application logic, but it catches infrastructure misconfigurations. Azure Security Center and GCP Security Command Center offer equivalent capabilities for their respective platforms.
For organizations managing multi-cloud environments, tools like Prowler, CloudGuard, or Spectral provide unified visibility. Drata integrates with these CSPM tools to automatically ingest security findings and convert them into compliance evidence—a significant advantage over manual spreadsheet-based tracking that remains common in organizations without dedicated compliance automation.
Evidence Collection and Continuous Monitoring
SOC2 Type II requires continuous evidence generation, not point-in-time documentation. Your architecture must support this.
The monitoring stack for SOC2 compliance:
- Configuration monitoring — AWS Config, Azure Policy, or GCP Config
- Vulnerability management — Native scanning integrated with CI/CD
- Access analytics — CloudTrail analysis, SIEM integration
- Compliance dashboard — Real-time control status visualization
# AWS Config managed rules for SOC2 evidence
aws configserver put-config-rule --config-rule '{
"ConfigRuleName": "iam-user-mfa-enabled",
"Source": {
"Owner": "AWS",
"SourceIdentifier": "IAM_USER_MFA_ENABLED"
},
"MaximumExecutionFrequency": "TwentyFour_Hours"
}'
aws configserver put-config-rule --config-rule '{
"ConfigRuleName": "s3-bucket-public-read-prohibited",
"Source": {
"Owner": "AWS",
"SourceIdentifier": "S3_BUCKET_PUBLIC_READ_PROHIBITED"
},
"MaximumExecutionFrequency": "One_Hour"
}'
Common SOC2 Cloud Implementation Mistakes
Mistake 1: Treating SOC2 as a Project, Not a Program
Organizations often approach SOC2 as a one-time certification effort. They scramble for the audit, get certified, and then let controls drift. SOC2 Type II requires continuous control effectiveness—your audit in 18 months will examine controls maintained over the intervening period.
The solution: Build compliance into operational workflows. Weekly evidence reviews. Monthly control testing. Annual comprehensive assessment before audit season.
Mistake 2: Evidence Collection as a Manual Process
I've seen compliance teams spend 3 months manually collecting evidence for an audit that should have taken 2 weeks. They export CloudTrail logs to spreadsheets. They screenshot IAM policies. They build documentation in Confluence page after Confluence page.
This approach fails at scale and produces inconsistent evidence. Organizations running multiple AWS accounts with 50+ controls discover that manual processes can't keep pace with the change velocity of cloud infrastructure.
Tools like Drata automate evidence collection by continuously polling cloud configuration APIs, storing results with timestamps, and generating audit-ready documentation on demand. The shift from monthly manual reviews to continuous automated monitoring is the difference between scrambling before audits and maintaining perpetual audit readiness.
Mistake 3: Neglecting the Shared Responsibility Model
Many organizations assume their cloud provider's compliance certifications transfer to their workloads. They don't review what falls on their side of the shared responsibility boundary.
AWS's SOC2 certification covers physical data centers, hypervisor isolation, and foundational services. It doesn't cover your IAM policies, your encryption configuration, or your network segmentation. Your auditors are examining your implementations, not AWS's infrastructure.
Mistake 4: Inconsistent Controls Across Environments
Development and staging environments often receive less security attention than production. Auditors expect consistency. A control that exists in production but is absent in staging is a finding.
Terraform modules solve this elegantly. Define your security baseline once, deploy across all environments, and enforce consistency through code review. Drift from your security baseline should trigger automated alerts and block deployments.
Mistake 5: Ignoring Change Management Documentation
SOC2 requires documentation of changes to the system. In cloud environments with hundreds of weekly deployments, manual change documentation doesn't work.
Your IaC pipeline should capture: who approved the change, what changed, when it deployed, and why. Git history provides this for code. AWS CodeDeploy and similar tools provide deployment history. This change documentation is evidence that your change management control operates effectively.
Recommendations for SOC2-Compliant Cloud Architecture
Build Security Controls Into Your IaC Pipeline
Every Terraform module should include security controls as code. Your CI/CD pipeline should enforce policy checks before deployment. Resources that don't meet encryption standards, that have overly permissive IAM policies, or that lack required tags should fail the pipeline.
OPA (Open Policy Agent) integrates with Terraform to enforce custom policies. Sentinel policies in Terraform Cloud provide enterprise-grade policy enforcement. Use them.
Implement Continuous Compliance Monitoring
Weekly manual reviews of cloud configurations are insufficient for dynamic environments. Deploy monitoring that alerts on configuration drift within hours, not weeks. AWS Config rules, Azure Policy, and GCP Config can evaluate resources continuously and trigger automated remediation for common misconfigurations.
Centralize Audit Logging
Aggregate logs from all cloud accounts into a centralized SIEM or log analytics service. Configure strict retention policies matching your audit period. Enable immutability through S3 Object Lock or equivalent mechanisms in Azure and GCP.
CloudTrail is necessary but not sufficient. You need application-level logging, database access logs, and API call analysis that goes beyond what CloudTrail captures by default.
Design for Evidence Collection
Every cloud resource you create should generate compliance evidence automatically. RDS instances should log access patterns. S3 buckets should emit events to CloudTrail. IAM policy changes should trigger change management tickets.
Build this evidence generation into your Terraform modules. Add outputs that document which SOC2 criteria each resource satisfies. Automate the evidence collection pipeline so that when auditors request documentation, you generate it from your monitoring infrastructure, not from manual screenshots.
Establish Clear Control Ownership
Each SOC2 control needs a defined owner: name, role, contact information, and review schedule. For cloud infrastructure, this typically means mapping controls to teams—IAM policies owned by Platform Engineering, network segmentation owned by Network Security, audit logging owned by the SOC team.
Document control testing procedures. When you test MFA enforcement monthly, document how you test it, what evidence you collect, and where that evidence is stored. This testing documentation is as important as the control itself for SOC2 evidence.
Plan for the 12-Month Observation Period
Start your compliance program 12-18 months before you need the SOC2 report. Use this time to implement controls, establish monitoring, and collect baseline evidence. Don't attempt to compress the observation period—auditors will notice gaps.
For organizations with existing SOC2 Type I certifications, the path to Type II is shorter, but the monitoring infrastructure must be in place from day one of the Type I period.
SOC2 Type II compliance for cloud infrastructure is achievable—but it requires architectural decisions made upfront, not compliance activities patched on afterward. Build security controls into your infrastructure definition. Monitor continuously. Generate evidence automatically. The organizations that pass SOC2 audits consistently aren't those with more auditors or better luck. They're the ones that built compliance into their cloud architecture from the beginning.
For a deeper dive into automating compliance evidence collection and continuous control monitoring, explore how platforms like Drata integrate with your existing cloud infrastructure to maintain audit-ready postures year-round.
Comments