Verified by Garnet Grid

SOC 2 Compliance: Engineering Team Handbook

What engineers need to know about SOC 2 compliance. Covers Trust Service Criteria, evidence collection, access controls, change management, incident response, and audit preparation.

SOC 2 isn’t a feature — it’s a business requirement. If you sell B2B SaaS, enterprise customers will ask for your SOC 2 report before signing. The average enterprise sales cycle stalls 3-6 months without SOC 2 attestation. This guide translates SOC 2 requirements into engineering tasks so your team knows exactly what to build, document, and maintain, and how to gather evidence without disrupting development velocity.

The key insight for engineers: SOC 2 doesn’t prescribe specific technologies — it prescribes outcomes. You can use any tool or framework as long as you can prove the control exists, operates effectively, and is continuously monitored.


SOC 2 Trust Service Criteria

CriteriaFocusEngineering ImpactTypical Controls
Security (required)Protection against unauthorized accessIAM, encryption, network controlsFirewalls, MFA, encryption at rest/transit
AvailabilitySystem uptime and performanceSLAs, monitoring, DR planningUptime SLAs, failover, monitoring
ConfidentialityData protectionEncryption at rest/transit, access controlsData classification, DLP, key management
Processing IntegrityAccurate, complete processingValidation, error handling, audit trailsInput validation, reconciliation, logging
PrivacyPII handlingConsent, data minimization, retentionPrivacy policy, consent management, anonymization

Most companies start with Security + Availability. Add Confidentiality if you handle sensitive data. Add Processing Integrity if you process financial transactions. Add Privacy if you’re subject to GDPR or CCPA.

SOC 2 Type I vs Type II

AspectType IType II
What it provesControls exist as of a specific dateControls operate effectively over 3-12 months
Timeline1-2 months6-12 months (observation period)
Customer perception”They have controls""Their controls actually work”
Recommended forFirst-time compliance, quick winsMature organizations, enterprise sales
Cost$15K-$30K$30K-$80K

Access Control

Principle of Least Privilege

# Infrastructure as Code: Role definitions
roles:
  developer:
    permissions:
      - read:production-logs
      - write:development-environment
      - deploy:staging
    denied:
      - write:production-database
      - access:customer-pii
      
  senior_engineer:
    inherits: developer
    permissions:
      - deploy:production  # Via CI/CD only, not direct access
      - read:production-database  # Read-only, audited
      
  admin:
    inherits: senior_engineer
    permissions:
      - manage:iam-roles
      - access:break-glass  # Emergency access, requires justification

Access Reviews

# Quarterly access review automation
def generate_access_review():
    report = {
        "review_period": "Q1 2026",
        "reviewer": "Engineering Manager",
        "due_date": "2026-04-15",
        "users": []
    }
    
    for user in get_all_users():
        report["users"].append({
            "name": user.name,
            "role": user.role,
            "last_login": user.last_login,
            "permissions": user.permissions,
            "status": "active" if user.last_login > thirty_days_ago else "review-needed",
            "action_required": "confirm" if user.active else "revoke"
        })
    
    return report

Access Control Evidence Checklist

ControlEvidence RequiredCollection Method
MFA enabled for all usersMFA enrollment reportIdP export (quarterly)
Least privilege enforcedRole assignment listIAM policy export
Access reviews completedSigned review reportsQuarterly review documents
Offboarded users deprovisionedTermination checklist + timestampHR workflow integration
Break-glass access loggedEmergency access audit trailCloudTrail/Activity Log
SSH keys rotatedKey age reportAutomated scanning

Change Management

Required Process

1. Developer creates PR with changes
2. Automated tests run (unit, integration, security)
3. Peer review + approval (minimum 1 reviewer)
4. CI/CD deploys to staging
5. QA validation in staging
6. Production deployment via CI/CD (no manual deployments)
7. Post-deployment monitoring (15 min window)

Evidence Collection

# GitHub Actions: SOC 2 evidence collection
- name: Log deployment evidence
  run: |
    echo '{
      "change_id": "${{ github.sha }}",
      "pr_number": "${{ github.event.pull_request.number }}",
      "author": "${{ github.actor }}",
      "reviewer": "${{ github.event.review.user.login }}",
      "tests_passed": true,
      "deployed_at": "'$(date -u +%Y-%m-%dT%H:%M:%SZ)'",
      "environment": "production"
    }' >> $GITHUB_STEP_SUMMARY

Change Management Evidence

ControlWhat Auditors CheckWhat You Need
All changes have PRsNo direct commits to mainBranch protection rules screenshot
Changes are reviewedPR has at least 1 approvalPR approval logs (GitHub/GitLab API)
Changes are testedCI pipeline passes before mergeCI/CD execution history
No manual production deploysAll production changes go through CI/CDDeployment logs with pipeline links
Emergency changes documentedHotfix process with post-mortemEmergency change log with justification

Encryption

LayerRequirementImplementationEvidence
In transitTLS 1.2+ everywhereEnforce HTTPS, HSTS headersSSL Labs scan report
At rest (database)AES-256 encryptionAWS RDS encryption, Azure TDECloud provider encryption status
At rest (storage)AES-256 encryptionS3 SSE, Azure Blob encryptionBucket/container encryption policy
SecretsEncrypted, rotatableAWS Secrets Manager, HashiCorp VaultSecrets rotation log
BackupsEncryptedEncrypted snapshots with separate keyBackup encryption configuration
Key managementKeys rotated annuallyKMS with automatic rotationRotation schedule + evidence

Logging & Monitoring

What to Log

EventLog?RetentionWhy Auditors Care
Authentication (success/fail)Yes1 yearDetect unauthorized access attempts
Authorization failuresYes1 yearDetect privilege escalation attempts
Data access (PII reads)Yes1 yearTrack who accessed sensitive data
Configuration changesYes3 yearsUnauthorized system modifications
DeploymentsYes3 yearsChange management evidence
System errorsYes1 yearAvailability monitoring evidence
User CRUD operationsYes1 yearAccount lifecycle tracking
Admin actionsYes3 yearsPrivileged access monitoring

Alerting Requirements

alerts:
  - name: "Multiple failed logins"
    condition: "failed_logins > 5 in 5 minutes for same user"
    severity: high
    action: "Lock account, notify security"
    soc2_control: "CC6.1 - Logical Access Security"
    
  - name: "Unusual data access"
    condition: "PII queries > 100 in 1 hour by single user"
    severity: medium
    action: "Alert security team for review"
    soc2_control: "CC6.3 - Restricts Logical Access"
    
  - name: "Production deployment outside hours"
    condition: "deploy to production outside 9AM-5PM ET weekdays"
    severity: low
    action: "Log and review in weekly security standup"
    soc2_control: "CC8.1 - Change Management"

Log Integrity

RequirementImplementationWhy
Logs cannot be modifiedWrite-once storage (S3 Object Lock, CloudWatch)Tamper-proof audit trail
Logs cannot be deleted (within retention)Retention policies + access controlsPreservation for auditors
Log access is itself loggedCloudTrail on log bucket accessWho’s looking at the logs?
Time synchronizationNTP configured on all serversCorrelate events across systems

Incident Response

┌──────────────┐
│  Detection   │ Automated monitoring, customer report, security scan
└──────┬───────┘

┌──────────────┐
│   Triage     │ Severity classification (P1-P4), assign incident commander
└──────┬───────┘

┌──────────────┐
│ Containment  │ Isolate affected systems, preserve evidence
└──────┬───────┘

┌──────────────┐
│ Remediation  │ Fix root cause, patch vulnerability
└──────┬───────┘

┌──────────────┐
│  Recovery    │ Restore services, verify fix
└──────┬───────┘

┌──────────────┐
│  Postmortem  │ Document timeline, root cause, prevention measures
└──────────────┘

Incident Severity Matrix

SeverityDefinitionResponse TimeNotification
P1 - CriticalData breach, service down, security compromise15 minutesExecutive team + legal + customers
P2 - HighPartial outage, degraded performance, near-miss1 hourEngineering leadership
P3 - MediumNon-critical vulnerability, minor data issue4 hoursSecurity team
P4 - LowInformational finding, policy deviationNext business dayTeam lead

Vendor Management

SOC 2 requires you to assess the security of vendors that handle your data.

Vendor TierCriteriaAssessment Required
CriticalProcesses/stores customer dataSOC 2 report review + security questionnaire annually
HighInfrastructure provider (AWS, GCP)SOC 2/3 report review annually
MediumSaaS tools with company dataSecurity questionnaire + policy review
LowNo access to sensitive dataVendor register entry only

Audit Preparation Timeline

Months BeforeAction
6 monthsSelect auditor, review scope, gap assessment
4 monthsImplement missing controls, document policies
2 monthsInternal readiness review, test evidence collection
1 monthFreeze major changes, finalize documentation
Audit period3-6 month observation window
Post-auditReceive report, remediate findings, share with customers

Checklist

  • Trust Service Criteria scope defined (Security + which others?)
  • Type I vs Type II decision made with timeline
  • Access control with least privilege + quarterly reviews
  • MFA enforced for all production access
  • Offboarding process deprovisioning within 24 hours
  • All changes go through PR review + CI/CD (no manual deploys)
  • All data encrypted at rest and in transit (AES-256, TLS 1.2+)
  • Secrets rotated on schedule with automated rotation where possible
  • Centralized logging with 1-year retention (tamper-proof)
  • Alerting on security-relevant events with documented response
  • Incident response plan documented, tested, and rehearsed
  • Vendor security assessments completed for critical/high vendors
  • Background checks for employees with production access
  • Evidence collection automated (not manual screenshots)
  • Auditor selected and engagement letter signed

:::note[Source] This guide is derived from operational intelligence at Garnet Grid Consulting. For compliance consulting, visit garnetgrid.com. :::

Jakub Dimitri Rezayev
Jakub Dimitri Rezayev
Founder & Chief Architect • Garnet Grid Consulting

Jakub holds an M.S. in Customer Intelligence & Analytics and a B.S. in Finance & Computer Science from Pace University. With deep expertise spanning D365 F&O, Azure, Power BI, and AI/ML systems, he architects enterprise solutions that bridge legacy systems and modern technology — and has led multi-million dollar ERP implementations for Fortune 500 supply chains.

View Full Profile →