Skip to content

SOC 2 Alignment

Rack Gateway provides security controls that align with SOC 2 Type II Trust Services Criteria. This guide maps gateway features to SOC 2 requirements.

SOC 2 is organized into five Trust Services Categories:

CategoryDescriptionGateway Support
Security (CC)Protection against unauthorized accessStrong
Availability (A)System availability as committedPartial
Processing Integrity (PI)Complete and accurate processingPartial
Confidentiality (C)Protection of confidential informationStrong
Privacy (P)Personal information protectionPartial
CriterionRequirementGateway Implementation
CC1.1Demonstrate commitment to integrity and ethicsDocumentation, access controls
CC1.2Board oversightAudit logs for review
CC1.3Establish structure and authorityRBAC role hierarchy
CC1.4Commitment to competenceN/A (organizational)
CC1.5AccountabilityUser attribution in audit logs
CriterionRequirementGateway Implementation
CC2.1Information qualityStructured audit logging
CC2.2Internal communicationSlack/email notifications
CC2.3External communicationN/A (organizational)
CriterionRequirementGateway Implementation
CC3.1Specify objectivesConfigurable security settings
CC3.2Identify risksRBAC denials logged
CC3.3Consider fraudFailed login and MFA alerts, automatic lock after repeated MFA failures, rate limit alerts
CC3.4Identify changesChange tracking in audit logs
CriterionRequirementGateway Implementation
CC5.1Select control activitiesRBAC, MFA, session management
CC5.2Select technology controlsOAuth, encryption, audit logging
CC5.3Deploy policiesConfigurable security policies
CriterionRequirementGateway ImplementationEvidence
CC6.1Logical access securityOAuth + MFA authenticationAuthentication logs
CC6.2User access provisioningRBAC role assignmentsUser/role records
CC6.3Access removalSession revocation, account lockRevocation logs
CC6.4Access reviewUser/token listing and auditAccess reports
CC6.5Restrict accessPrivate network deploymentNetwork configuration
CC6.6Manage credentialsToken hashing, rotationToken management
CC6.7Restrict privileged accessAdmin role restrictionsRBAC configuration
CC6.8Prevent malicious softwareN/A (organizational)-

Key Controls for CC6:

  1. Authentication (CC6.1)

    • Google OAuth 2.0 with PKCE
    • Domain restriction to organization
    • Session tokens with idle timeout
  2. Authorization (CC6.2)

    • Role-based access control
    • Four roles for people (viewer → admin) and a CI/CD role for API tokens
    • Per-permission MFA requirements
  3. De-provisioning (CC6.3)

    • Immediate session revocation
    • Account lock capability
    • API token deletion
  4. Review (CC6.4)

    • User list with roles
    • Active session visibility
    • API token inventory
CriterionRequirementGateway ImplementationEvidence
CC7.1Detect security eventsReal-time audit loggingAudit logs
CC7.2Monitor infrastructureCloudWatch logs, heartbeats, hourly audit verificationMetrics/alarms
CC7.3Evaluate eventsRBAC decision loggingDecision logs
CC7.4Respond to incidentsLock accounts, revoke sessionsIncident records
CC7.5Recover from incidentsSession revocation, re-authRecovery actions

Key Controls for CC7:

CriterionRequirementGateway Implementation
CC8.1Manage changesDeploy approval workflow

Deploy Approvals for Change Control:

  • CI/CD deployments require human approval
  • Only users with the approve permission (admins) can approve, with MFA on the request
  • Full audit trail of approvals
  • Optionally, a different approver: with deploy_approval_require_different_approver on, nobody can approve or extend a deploy they requested (they created the request, or own its API token), and each approval’s audit entry records that the rule applied

The setting is off by default. Turn it on if your controls require segregation of duties.

CriterionRequirementGateway Implementation
CC9.1Risk mitigationDefense in depth
CC9.2Consider vendorsN/A (self-hosted)
CriterionRequirementGateway Implementation
C1.1Identify confidential dataEnvironment variable protection
C1.2Dispose of confidential dataSession expiration + token revocation

Protection Mechanisms:

  • Env var values redacted from audit logs
  • Secret and protected environment variables
  • Token hashing (secrets never stored in plaintext)
  • HTTPS-only communication

Rack Gateway automatically generates evidence:

Evidence TypeSourceFrequency
Authentication logsAudit databasePer request
RBAC decisionsAudit databasePer request
User access recordsUsers tableOn change
Role assignmentsUsers tableOn change
Token inventoryAPI tokens tableOn change
Session recordsuser_sessions tableOn change
Configuration changesAudit databaseOn change
Terminal window
# User access for a date range (custom)
curl -b "session_token=TOKEN" \
"https://gateway.example.com/api/v1/audit-logs?range=custom&start=2024-01-01T00:00&end=2024-03-31T23:59"
# RBAC denials
curl -b "session_token=TOKEN" \
"https://gateway.example.com/api/v1/audit-logs?status=denied&range=30d"
# User list with roles
curl -b "session_token=TOKEN" \
"https://gateway.example.com/api/v1/users"
# API token inventory
curl -b "session_token=TOKEN" \
"https://gateway.example.com/api/v1/api-tokens"
ReportDescriptionQuery Period
User Access ReportAll users with rolesCurrent snapshot
Activity ReportActions by user90-day rolling
Denied Access ReportFailed authorization90-day rolling
Admin Activity ReportPrivileged operations90-day rolling
Token ReportAPI token inventoryCurrent snapshot
Session ReportActive sessionsCurrent snapshot
  • OAuth configured with Google Workspace
  • Domain restriction enabled
  • MFA required for all users (the default)
  • RBAC roles assigned appropriately
  • Session timeout configured (≤15 min recommended)
  • API tokens have appropriate roles
  • Unused tokens reviewed/removed
  • AUDIT_HMAC_SECRET and S3 anchors configured
  • Heartbeat monitors for uptime and audit verification
  • CloudWatch integration configured
  • Alerts for failed logins
  • Alerts for RBAC denials
  • Weekly log review process
  • Incident response runbook
  • Deploy approvals enabled
  • Different approver required (RGW_SETTING_DEPLOY_APPROVAL_REQUIRE_DIFFERENT_APPROVER=true)
  • CI/CD uses dedicated tokens
  • Change log maintained
  • Protected env vars configured
  • HTTPS enforced
  • Tokens not in source control
  • Secrets redacted in logs

Q: How are users authenticated? A: OAuth 2.0 (OpenID Connect) with Google Workspace, plus MFA, required for every user by default: TOTP, WebAuthn security keys or YubiKey OTP, with backup codes for recovery.

Q: How is access controlled? A: Role-based access control with five roles in a hierarchy. Each request is checked against the user’s role.

Q: How are privileged users managed? A: Admin role is restricted to few users. All admin actions are logged.

Q: How are access requests logged? A: All API requests are logged with user, action, resource, decision, and timestamp.

Q: How long are logs retained? A: Audit events are never deleted: the table is append-only. S3 anchors are locked for the bucket’s default Object Lock retention (400 days in the example Terraform).

Q: How are secrets protected in logs? A: Audit entries never record env var values unless an admin lists the key in the app’s audit_visible_env_vars, and never for secret or protected keys. Rack parameter changes record the parameter names only. See Secret Redaction.

Q: How is the audit log protected from tampering? A: Each event’s HMAC covers its fields and the previous event’s hash, and hourly anchors in an S3 Object Lock bucket record the chain head. The gateway verifies the chain and anchors every hour and alerts on any failure.