SOC 2 Control Implementation Guide

Change Management

Peer Review and Approval for SOC 2

Production-bound code, configuration, detection logic, infrastructure, and AI/LLM workflow changes require peer review and authorized approval before deployment.

Use this guide to put the control into operation, decide what records to retain, and check that an auditor can trace the evidence back to the work your team performed.

Maintained by GreenHat Security · Reviewed August 21, 2026

What this control should accomplish

Production-bound code and configuration receive an independent technical review and authorized approval before release.

First SOC 2 program

A credible starting point

Protect the production branch, require one qualified reviewer who is not the author, and retain the pull-request approval with the deployed commit.

As the company scales

Make it repeatable

Use risk-based review rules, code-owner approvals, separation for sensitive components, and monitoring for bypasses or administrator overrides.

How to implement Peer Review and Approval

  1. 1

    Set review boundaries

    List the repositories, configuration stores, infrastructure code, detection rules, and workflow definitions that can affect production.

    You should end up with: Production-change repository and asset scope

  2. 2

    Configure independent approval

    Require a reviewer other than the author and define which roles may approve sensitive or high-risk changes.

    You should end up with: Branch and approval rule configuration

  3. 3

    Preserve review context

    Keep review comments, resolved findings, approval identity, commit hash, and any renewed approval after material edits.

    You should end up with: Review record tied to the released revision

  4. 4

    Monitor bypasses

    Review merges, direct pushes, override events, and emergency paths for exceptions to the standard workflow.

    You should end up with: Bypass and exception review log

Evidence to keep, and what it should prove

Build the evidence set in three layers: what defines the control, who approved or reviewed it, and what proves it operated. Collect operating records when the work happens so they remain dated, attributable, correctly scoped, and traceable to the underlying activity.

Before sharing, remove unrelated personal or customer data, never expose passwords, tokens, or secret values, preserve enough source context to authenticate the record, and use the secure exchange approved for the engagement.

Approval / review evidence

Records showing that an accountable person reviewed, approved, challenged, or accepted the work.

Pull request approvals

  • Confirm what the record proves

    An authorized reviewer approved the exact production-bound revision before it was merged or released.

  • Include this context

    Pull-request ID

  • Include this context

    Reviewed commit

  • Include this context

    Reviewer identity

  • Include this context

    Approval time

  • Include this context

    Merge time

  • Include this context

    Branch

Weak evidence to avoid

An approval badge captured after later commits were added, with no evidence that the final revision was reviewed.

code reviews

  • Confirm what the record proves

    A qualified peer examined the change and recorded comments, resolutions, or a clear approval decision.

  • Include this context

    Review ID

  • Include this context

    Reviewer

  • Include this context

    Files or revision reviewed

  • Include this context

    Review comments

  • Include this context

    Resolution status

  • Include this context

    Decision time

Weak evidence to avoid

A chat message saying 'looks good' that cannot be tied to the code revision or reviewer authority.

infrastructure/security approvals

  • Confirm what the record proves

    Sensitive infrastructure or security changes received review from the designated technical authority before release.

  • Include this context

    Change ID

  • Include this context

    Affected resource

  • Include this context

    Risk or security impact

  • Include this context

    Authorized approver

  • Include this context

    Decision

  • Include this context

    Decision time

Weak evidence to avoid

A generic team approval with no resource, risk analysis, named approver, or pre-deployment timestamp.

change approvals

  • Confirm what the record proves

    The production change had an authorized go or no-go decision covering its scope and planned release.

  • Include this context

    Ticket ID

  • Include this context

    Change scope

  • Include this context

    Approver

  • Include this context

    Approval status

  • Include this context

    Approval time

  • Include this context

    Conditions or exception

Weak evidence to avoid

A ticket moved to approved by the author without a recorded independent decision.

Which records should you prepare for the audit?

Type 1

Evidence at the as-of date

Retain branch and approval rules plus one recent deployed revision showing independent review and authorized approval were effective on the selected date.

Type 2

Evidence across the review period

List every production deployment during the period, resolve each deployed commit to its pull request and approval history, and include direct pushes, administrator overrides, emergency merges, failed releases, and approval invalidations after later commits.

Completeness check

Begin with deployment history, map each revision back to a reviewed pull request and ticket, and reconcile unmatched revisions against direct-push, override, and emergency audit events.

Build the record set from

  • Production deployment platform
  • Source control audit log
  • Pull-request system
  • Change ticketing
  • Repository settings

Keep these fields for each record

  • Deployment ID
  • Deployed commit
  • Pull-request ID
  • Author
  • Reviewer
  • Approval timestamp
  • Merge timestamp
  • Override or emergency flag
  • Result

How an auditor may test this control

Use this checklist to prepare for procedures an auditor may perform. The exact steps and sample selection depend on your engagement scope and the service auditor's professional judgment.

  • Confirm the intended control outcome

    Determine whether the control is designed to achieve this result: Production-bound code and configuration receive an independent technical review and authorized approval before release.

  • Confirm ownership and operating cadence

    Compare the documented owner with the intended role (Head of Engineering / Platform Owner), then compare dated records with the stated cadence: Per change.

  • Establish the complete audit record set

    Begin with deployment history, map each revision back to a reviewed pull request and ticket, and reconcile unmatched revisions against direct-push, override, and emergency audit events.

  • Prepare the as-of-date evidence for a Type 1 engagement

    Retain branch and approval rules plus one recent deployed revision showing independent review and authorized approval were effective on the selected date.

  • Prepare period evidence for a Type 2 engagement

    List every production deployment during the period, resolve each deployed commit to its pull request and approval history, and include direct pushes, administrator overrides, emergency merges, failed releases, and approval invalidations after later commits.

  • Inspect the approval / review evidence

    Records showing that an accountable person reviewed, approved, challenged, or accepted the work.

    • Inspect Pull request approvals

      For each selected record, confirm it demonstrates An authorized reviewer approved the exact production-bound revision before it was merged or released.

      • Pull-request ID
      • Reviewed commit
      • Reviewer identity
      • Approval time
      • Merge time
      • Branch
    • Inspect code reviews

      For each selected record, confirm it demonstrates A qualified peer examined the change and recorded comments, resolutions, or a clear approval decision.

      • Review ID
      • Reviewer
      • Files or revision reviewed
      • Review comments
      • Resolution status
      • Decision time
    • Inspect infrastructure/security approvals

      For each selected record, confirm it demonstrates Sensitive infrastructure or security changes received review from the designated technical authority before release.

      • Change ID
      • Affected resource
      • Risk or security impact
      • Authorized approver
      • Decision
      • Decision time
    • Inspect change approvals

      For each selected record, confirm it demonstrates The production change had an authorized go or no-go decision covering its scope and planned release.

      • Ticket ID
      • Change scope
      • Approver
      • Approval status
      • Approval time
      • Conditions or exception
  • Trace the control from design to operation

    Use the categories that apply to this control: connect any policy or design artifact to its approval or review record, then trace a selected operating record through execution, result, and any exception or remediation.

Common implementation and evidence gaps

  • The author can approve or merge a change without independent review.
  • Approval applies to an older commit and is not renewed after material edits.
  • Infrastructure and production configuration changes bypass source-control review.
  • Administrator overrides are possible but never reviewed.

Before you call this control ready

  • Do protected branches reject an unapproved pull request?
  • Can approvers be tied to authorized roles and current team membership?
  • Does the released commit match the revision that received approval?
  • Are override and direct-change events visible and investigated?

Trust Services Criteria references

These identifiers help you navigate related Trust Services Criteria. They do not reproduce the criteria or prove that this control fully addresses them in your environment.

  • CC8.1

Confirm final scope, mappings, and testing expectations with your service auditor. SOC 2® is an AICPA trademark; GreenHat Security is not affiliated with or endorsed by AICPA.