First SOC 2 program
A credible starting point
Start with build, unit, dependency, secret, and static-analysis checks in the main pipeline, making results visible on each pull request.
Change Management
Automated build, unit/integration/smoke testing, dependency, secret, SAST, IaC, and container/image scanning are run before release where feasible.
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
Production candidates run the applicable functional and security checks, and failures block release unless a documented exception is approved.
First SOC 2 program
Start with build, unit, dependency, secret, and static-analysis checks in the main pipeline, making results visible on each pull request.
As the company scales
Add integration, smoke, infrastructure, image, and risk-specific test gates with centrally managed rules, exception expiry, and coverage reporting.
Map each application, infrastructure, image, and configuration path to the functional and security checks it needs before release.
You should end up with: Pipeline control matrix by change path
Configure required checks so failed, skipped, or missing results prevent the candidate revision from progressing.
You should end up with: Required-check and blocking-rule configuration
Record the failed check, risk, compensating action, approver, affected revision, and expiry before any bypass.
You should end up with: Time-bound scanning exception record
Keep test and scan summaries with commit, build, and release identifiers long enough to support period review.
You should end up with: Searchable results tied to deployed builds
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.
Records showing that an accountable person reviewed, approved, challenged, or accepted the work.
Confirm what the record proves
A failed, skipped, or unavailable check was assessed and approved with bounded scope, compensating work, and expiry.
Include this context
Exception ID
Include this context
Failed or skipped check
Include this context
Affected release
Include this context
Risk decision
Include this context
Approver
Include this context
Expiry and remediation
Weak evidence to avoid
A pipeline bypass comment saying 'urgent' without the failed check, risk owner, expiry, or follow-up.
Dated proof that the control actually ran, such as tickets, logs, settings, exports, reports, and test results.
Confirm what the record proves
The exact production candidate ran its required functional tests and the release decision reflects the result.
Include this context
Pipeline ID
Include this context
Commit or artifact
Include this context
Test suite
Include this context
Execution time
Include this context
Result
Include this context
Release environment
Weak evidence to avoid
A green pipeline badge without the tested revision, test names, detailed result, or release linkage.
Confirm what the record proves
Applicable security scanners evaluated the released code, dependencies, credentials, infrastructure, or images against defined gates.
Include this context
Scanner and rule set
Include this context
Commit or artifact
Include this context
Scope
Include this context
Execution time
Include this context
Findings by severity
Include this context
Gate result
Weak evidence to avoid
A periodic dashboard total that cannot show which scanners ran on the deployed revision or how findings affected release.
Type 1
Retain the required pipeline and scanner configuration plus one recent production release showing all applicable checks, results, and any exception on the selected date.
Type 2
For every production release attempt during the period, list each required functional and security check and its result, including failed, cancelled, skipped, rerun, emergency, and exception-approved paths.
Begin with production deployments, resolve each artifact to its pipeline, compare expected checks from pipeline configuration with actual jobs, and reconcile every missing or non-passing result to an approved exception or blocked release.
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.
Determine whether the control is designed to achieve this result: Production candidates run the applicable functional and security checks, and failures block release unless a documented exception is approved.
Compare the documented owner with the intended role (Head of Engineering / Platform Owner), then compare dated records with the stated cadence: Per change.
Begin with production deployments, resolve each artifact to its pipeline, compare expected checks from pipeline configuration with actual jobs, and reconcile every missing or non-passing result to an approved exception or blocked release.
Retain the required pipeline and scanner configuration plus one recent production release showing all applicable checks, results, and any exception on the selected date.
For every production release attempt during the period, list each required functional and security check and its result, including failed, cancelled, skipped, rerun, emergency, and exception-approved paths.
Records showing that an accountable person reviewed, approved, challenged, or accepted the work.
For each selected record, confirm it demonstrates A failed, skipped, or unavailable check was assessed and approved with bounded scope, compensating work, and expiry.
Dated proof that the control actually ran, such as tickets, logs, settings, exports, reports, and test results.
For each selected record, confirm it demonstrates The exact production candidate ran its required functional tests and the release decision reflects the result.
For each selected record, confirm it demonstrates Applicable security scanners evaluated the released code, dependencies, credentials, infrastructure, or images against defined gates.
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.
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.
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.