SOC2

SOC 2 Access Review Process: Periodic User Access Certification

Maria Delgado had built the access review deck three times before her auditor ever opened it.

SOC 2 Access Review Process: Periodic User Access Certification
Loading advertisement...
67

Maria Delgado had built the access review deck three times before her auditor ever opened it. As Director of Security and Compliance at DataVantage Analytics — a 220-person customer-analytics SaaS platform processing behavioral data for retail chains — she'd assumed "we review access" was a sentence, not a program. Then Ashcroft & Vale LLP, the CPA firm running DataVantage's first SOC 2 Type II examination, requested evidence of quarterly user access reviews for the six-month observation period. Maria had one screenshot from March. Nothing from January, April, or June. A $2.4 million enterprise renewal with a national retail client was contractually contingent on a clean SOC 2 report landing before the customer's own audit committee met in eight weeks.

What followed was three weeks of scrambling: pulling user lists from Okta, AWS IAM, Salesforce, Snowflake, and a homegrown billing system; chasing eleven department managers for sign-off on people who had, in several cases, left the company months earlier; and discovering that a departed contractor still held standing production database access nobody had revoked. The auditor didn't just flag a missing control — she flagged a pattern, because access reviews are one of the most heavily sampled tests in any SOC 2 examination, and inconsistency is exactly what a CPA is trained to smell.

This article exists because Maria's scramble is astonishingly common, and it's almost entirely preventable with a repeatable process built before the audit clock starts, not during it.

Who this is for and what you'll walk away with

This is written for the people who actually run access reviews — security and IT leaders, GRC managers, and engineering managers at service organizations pursuing or maintaining a SOC 2 report — not for auditors explaining the standard from the outside. You'll walk away with a concrete review cadence you can defend to an auditor, a reviewer-role model that doesn't collapse under its own weight, a checklist of what "least privilege" actually means when you're staring at a spreadsheet of 400 users, and the exact evidence artifacts — signed reviews, tickets, exception logs — that turn a sampled test into a non-event. We'll also cover privileged access, orphaned and terminated accounts, remediation SLAs, and how to build a program that survives turnover on your own team, not just the next audit.

Why access reviews sit at the center of every SOC 2 audit

Access review evidence shows up in nearly every SOC 2 Type II fieldwork request list, and for good reason: it's the single control that proves — or disproves — that everything else you say about access control is actually true day to day, not just on paper. A well-written access provisioning policy means little if nobody checks, three months later, whether the access granted still matches the job the person holds. Auditors know that access sprawl is the default state of every growing organization; the review is the mechanism that fights entropy back.

Under the AICPA Trust Services Criteria, access reviews map most directly to the CC6 series — the logical and physical access controls that form the backbone of the Security (Common Criteria) category required in every SOC 2 report. Specifically:

  • CC6.1 requires the entity to implement logical access security software, infrastructure, and architecture over protected information assets to protect them from security events, which includes restricting access to authorized users and periodically evaluating that access remains appropriate.

  • CC6.2 requires that prior to issuing system credentials and granting access, the entity registers and authorizes new internal and external users, and that access is modified or removed when no longer required — the de-provisioning half of the equation, which a review is designed to catch when it fails.

  • CC6.3 requires the entity to authorize, modify, or remove access based on roles, responsibilities, or the system design, and to review such access on a periodic basis for appropriateness — the specific criterion most auditors cite by name when they request your access review evidence.

Together, CC6.1 through CC6.3 form what I think of as the access lifecycle triangle: grant appropriately, maintain appropriately, and periodically prove both. The review is the "prove it" leg, and it's the leg auditors sample hardest because it's cheap to test and highly diagnostic. Pull a population of reviews, sample a handful, and check whether the sign-off actually reflects reality — an auditor can do that in an afternoon and learn more about your control environment than a week of policy reading would tell them.

SOC 2 Criterion

What It Requires

How the Access Review Demonstrates It

CC6.1

Logical access restricted to authorized users; access evaluated against risk

Review confirms current access maps to an authorized, current business need

CC6.2

Registration/authorization prior to granting access; removal when no longer needed

Review is the periodic backstop that catches removals the JML process missed

CC6.3

Role-based access; periodic review for appropriateness

Review IS the literal control activity this criterion describes

CC7.2 (supporting)

Monitoring for anomalies including unauthorized access

Review findings often surface anomalies that feed into monitoring/incident processes

CC4.1 (supporting)

Ongoing evaluations to ascertain whether controls are present and functioning

The review program itself is evidence of an ongoing control evaluation

If you haven't already, it's worth reading how access controls and logical security are structured at DataVantage-style organizations before you build a review program on top of them — the review is only as good as the provisioning process feeding it.

What an access review actually is (and isn't)

An access review — sometimes called a user access certification, an entitlement review, or a recertification — is a point-in-time, documented process where someone with the authority and context to judge appropriateness looks at who has access to what, and either affirms it, flags it for change, or flags it for removal. It is not the same thing as continuous monitoring, and I've watched more than one audit stumble because a company conflated the two.

Continuous monitoring — automated alerts on privilege escalation, unusual login patterns, or configuration drift — is valuable and increasingly expected, but it answers a different question: "did something unusual just happen?" An access review answers a slower, more deliberate question: "looking at the full population of access right now, is each grant still justified?" You need both. A SIEM alert won't tell you that Derek in finance still has admin rights to a system he moved off of eight months ago because nothing "anomalous" happened — the access was simply never revoked, and it will sit there quietly until either an attacker finds it or a reviewer does.

The distinction matters for evidence, too. Auditors want to see the deliberate, periodic, human judgment call — a reviewer's signature or system-recorded approval — not just a log stream. A review is inherently a point-in-time attestation with a named accountable person behind it, which is precisely why CC6.3 language uses "periodic" and not "continuous."

The JML lifecycle: where the review fits

Every access review program sits inside the broader joiner-mover-leaver (JML) lifecycle, and understanding that placement is what keeps a review program from becoming redundant busywork or, worse, a false sense of security layered on top of a broken provisioning process.

  • Joiner: a new hire or contractor is granted access based on role, typically through a request/approval workflow tied to HR onboarding.

  • Mover: an existing person changes role, team, or manager, and their access should change to match — this is the stage most organizations handle worst, because moves rarely trigger an automatic access review the way terminations (usually) do.

  • Leaver: a person's employment or engagement ends, and access should be revoked, ideally same-day or within a contractually defined window.

The access review is the safety net underneath all three stages. Joiners get reviewed to confirm the initial grant was appropriate and nothing extra slipped in during onboarding. Movers get reviewed because role changes are the single biggest source of privilege creep — someone accumulates access from their old role plus their new one, and nobody ever prunes the old permissions. Leavers get reviewed because de-provisioning failures — the "orphaned account" problem — are the single most common access-related exception auditors write up.

JML Stage

Primary Control

Where Reviews Add Value

Typical Failure Mode

Joiner

Access request + approval workflow

Confirms initial grant matches role, catches over-provisioning at onboarding

New hire granted admin "to be safe"

Mover

Role change / transfer workflow

Catches accumulated (stacked) access from old + new roles

Old team's access never removed after transfer

Leaver

Termination / off-boarding workflow

Catches accounts not disabled on schedule, orphaned credentials

Contractor access outlives the contract

Defining "least privilege" in a way a reviewer can actually apply

Least privilege is one of those principles everyone nods along to and almost nobody operationalizes. Telling a reviewer to "check that access follows least privilege" without more context produces inconsistent, low-value reviews — the manager either rubber-stamps everything or second-guesses things they don't understand well enough to judge. A usable least-privilege check breaks into three concrete questions:

  1. Is the access tied to a current, documented job function? Not "did this person once need this," but "does the role they hold today require it."

  2. Is the level of access the minimum required for that function? Read-only versus write versus admin/delete — reviewers should be forced to pick the narrowest tier that still lets the person do their job.

  3. Is there a legitimate, time-bound reason for any exception? Sometimes broader access is genuinely needed temporarily (an incident, a migration project); the review should catch whether that temporary grant has an expiration and whether it was actually removed when the reason ended.

"The single biggest thing I coach clients on is stop asking reviewers 'does this look okay.' Ask them 'would you personally sign your name to this being the minimum access this person needs to do their job today.' Framing it as a personal certification, not a vibe check, changes the quality of what comes back." — Priya Chandrasekaran, CPA, Audit Partner, Ashcroft & Vale LLP

I ask clients to give reviewers a one-page reference card at review time — role definitions mapped to expected access tiers — because a manager reviewing twelve direct reports' entitlements once a quarter simply won't remember what "Snowflake Analyst" role is supposed to include versus "Snowflake Admin." Memory is not a control. A reference artifact is.

Least-Privilege Check

Reviewer Question

Red Flag

Business justification

Does this role still require this system?

Access to a system unrelated to current job function

Privilege tier

Is this the minimum tier (read/write/admin) for the role?

Broad or admin access where read-only would suffice

Time-bound exceptions

Was temporary elevated access removed on schedule?

Expired "temporary" access still active months later

Segregation of duties

Does this combination of access create a conflict?

Same person can both create and approve payments

Group/role membership

Is access granted via role, or as a one-off exception?

Individual grants outside the standard role model, undocumented

Segregation of duties deserves its own callout inside least-privilege review: a person holding conflicting entitlements — say, the ability to both provision vendor payments and approve them — is a distinct risk category from simple over-provisioning, and reviewers need to be prompted to look for it explicitly rather than assume the access-tier question covers it.

How often: setting a defensible review cadence

"How often should we review access" is the question I get asked most, and the honest answer is: it depends on risk, but quarterly is the de facto standard that both satisfies most auditors and remains operationally sustainable. I've seen companies try semiannual reviews to save reviewer time and get hit with a qualified opinion because six months is long enough for a meaningful population of leavers and movers to accumulate unnoticed. I've also seen companies attempt monthly reviews for every system and burn out their managers so badly that review quality collapsed — people started clicking "approve all" just to get the email out of their inbox.

The right answer is tiered by risk, not one blanket cadence for everything you own.

System Risk Tier

Example Systems

Recommended Review Cadence

Rationale

Tier 1 — Critical/Privileged

Production databases, cloud root/IAM admin, source code repos, IGA/identity platform itself

Quarterly, plus continuous monitoring for changes

Highest blast radius if access is wrong

Tier 2 — Sensitive Business Systems

CRM, billing/finance systems, HR/payroll, customer support tooling with PII access

Quarterly

Contains regulated or customer data, moderate blast radius

Tier 3 — Standard Business Applications

Internal wikis, project trackers, non-sensitive SaaS tools

Semiannual

Lower risk, still needs periodic hygiene

Tier 4 — Privileged/Admin Accounts (cross-cutting)

Domain admins, break-glass accounts, service account owners

Quarterly, some organizations monthly

Compromise or misuse has organization-wide impact

DataVantage settled on quarterly reviews for anything touching customer data or infrastructure, and semiannual for low-risk internal tools — a defensible middle ground that Ashcroft & Vale accepted without pushback once Maria could explain the risk-tiering logic, not just the calendar.

One nuance worth flagging: your review cadence needs to be consistent enough, across the full audit period, that an auditor sampling any given quarter finds the same rigor. A Type II examination typically covers three to twelve months, so if your period is six months and your cadence is quarterly, the auditor expects to see two completed review cycles with evidence for both — not one thorough review and one rushed afterthought.

Who reviews: building a reviewer model that scales

The most common structural mistake I see is routing every access review through a central IT or security team. It feels efficient — one team, one process — but it fails the appropriateness test, because IT knows what access exists, not whether it's still needed for a given person's job. The people who can actually judge appropriateness are the ones closest to the work: direct managers, system/application owners, and — for the most sensitive tiers — a second layer of security or compliance oversight.

I use a three-tier reviewer model with almost every client:

  • Line manager review — the person's direct manager confirms the person still needs access to a given system for their current role. This is the primary appropriateness check and should cover the majority of standard user access.

  • System/application owner review — the person accountable for a specific system (e.g., the Snowflake data platform owner, the payroll system owner) reviews the full access list for that system, catching things a line manager might miss, like a person from a different team who was granted access for a project that ended.

  • Security/GRC oversight review — a security or compliance function reviews privileged and administrative access specifically, and spot-checks the overall program for completeness — did every in-scope system actually get reviewed, did every reviewer actually respond.

Role

Responsibility

Reviews

Reports To

Line Manager

Confirm direct reports' access matches current role

Standard user access for their team

Department Head

System/Application Owner

Own the full access list for a specific system

All users with access to that system

IT/Engineering Leadership

Security/GRC Lead

Oversee program completeness; own privileged access review

Privileged/admin accounts across all Tier 1 systems

CISO or Compliance Officer

IT Operations

Execute remediation (disable, downgrade, remove access)

N/A — executes decisions, doesn't judge appropriateness

IT Manager

Executive Sponsor

Own the program at a governance level; escalation point

N/A — accountable for the program existing and running

CEO/COO

A simple RACI clarifies who's Accountable versus who's Responsible, which matters enormously once an auditor asks "who approved this specific review" and you need a name, not a department.

Activity

Line Manager

System Owner

Security/GRC

IT Ops

Executive Sponsor

Initiate review cycle

Informed

Informed

Responsible

Informed

Accountable

Review individual user access

Responsible

Consulted

Informed

Informed

—

Review full system access list

Consulted

Responsible

Informed

Informed

—

Review privileged/admin access

Consulted

Consulted

Responsible/Accountable

Informed

—

Remediate flagged access

Informed

Informed

Consulted

Responsible

—

Sign off on cycle completion

—

—

Responsible

—

Accountable

"We used to route everything to IT because it was the path of least resistance. The audit exception that changed our minds was a contractor with standing access to a system his own manager didn't even know he still had — IT saw the account, not the context. Now the manager signs first, always." — Derek Osei, IT Manager, DataVantage Analytics

Defining the systems in scope for review

An access review is only as complete as its inventory. I ask every client to build — and keep current — a system-of-record list of everything that holds access to be reviewed, because "we reviewed access" means nothing if half the SaaS estate never made it onto the list. This inventory should live alongside, and ideally be generated from, the same asset inventory that supports your broader logical security program.

At minimum, your in-scope list should capture:

  • Cloud infrastructure and IAM (AWS, Azure, GCP root/console access, IAM roles and policies)

  • Production databases and data warehouses (direct SQL access, not just application-layer access)

  • Source code repositories and CI/CD pipelines

  • The identity provider itself (SSO/SSO admin console, directory services)

  • Core business applications: CRM, ERP/finance, HR/payroll, ticketing/support platforms

  • Customer-facing production application admin panels

  • Physical access systems where they gate access to sensitive facilities (data centers, offices with server rooms)

  • Third-party and vendor access to your systems (contractors, MSPs, integration partners)

System Category

Examples

Primary Data at Risk

Review Owner

Cloud/Infrastructure IAM

AWS IAM, Azure AD, GCP IAM

Entire production environment

Infrastructure/Platform lead

Data platforms

Snowflake, Redshift, production DBs

Customer/business data

Data platform owner

Identity provider

Okta, Azure AD, Google Workspace

Access to everything downstream

Security/IT

Source control & CI/CD

GitHub, GitLab, Jenkins

Source code, secrets, deployment pipeline

Engineering lead

Finance/HR systems

NetSuite, Workday, ADP

Financial data, PII, payroll

Finance/HR system owner

CRM/support platforms

Salesforce, Zendesk

Customer PII, contracts

Sales/Support ops lead

Physical access

Badge systems, server room access

Physical facility security

Facilities/Security

A system falls out of scope only if it genuinely holds no sensitive data and no path to sensitive systems — and even then, I log the exclusion decision explicitly rather than let it fall through silently, because an auditor who finds an unreviewed system you didn't disclose will ask why it's missing from the population.

Privileged access: the higher bar

Privileged accounts — domain admins, cloud root users, database superusers, break-glass emergency accounts, and anyone with the ability to modify security controls or access broad swaths of data — deserve a materially higher bar than standard user access, and auditors treat them that way. A single compromised or inappropriate standard user account is bad; a single compromised privileged account can be catastrophic, which is why privileged access management exists as its own discipline.

For privileged access reviews specifically, I add checks that go beyond the standard least-privilege questions:

Privileged Access Check

What to Verify

Why It Matters

Named accounts, not shared credentials

Every privileged action is traceable to an individual, not a shared login

Shared accounts destroy accountability and audit trail

MFA enforced

Multi-factor authentication is mandatory for every privileged account, no exceptions

Privileged accounts are the highest-value phishing/credential-stuffing target

Justification on file

A documented business reason exists for each person holding privileged access

Prevents "just in case" admin sprawl

Session logging/monitoring

Privileged sessions are logged and, ideally, monitored or recorded

Enables after-the-fact investigation and deters misuse

Break-glass account control

Emergency-access accounts are sealed/vaulted, alert on use, and are reviewed after every use

These accounts bypass normal controls by design and need compensating oversight

Time-bound elevation

Where possible, privileged access is granted just-in-time rather than standing

Reduces the window an attacker or insider has to exploit the privilege

Vendor/third-party privileged access

Any MSP, contractor, or vendor with elevated access is reviewed with the same rigor as employees

Third-party privileged access is a common blind spot

I recommend a dedicated privileged access review, run by security/GRC rather than delegated purely to line managers, on the same quarterly cadence as your Tier 1 systems, with results reported directly to whoever owns the risk register or steering committee. This is also where multi-factor authentication enforcement gets verified as a standing control, not just assumed.

"Auditors will ask for your privileged user list before they ask for almost anything else. If you can produce it in under five minutes, with MFA status and last-review date attached, you've already told them something important about how seriously you take this control." — James Whitfield, CISO, Larkspur Health Tech

Orphaned and terminated accounts: the auditor's favorite finding

If there's one exception type that shows up in more SOC 2 management letters than any other, it's the orphaned account — access that should have been revoked but wasn't, usually tied to someone who left the organization, changed roles, or was a contractor whose engagement ended. It's the finding auditors go looking for first, because it's the single clearest signal of a broken de-provisioning process, and it directly evidences a CC6.2 gap.

The reason it happens so consistently isn't laziness — it's process fragmentation. Termination is initiated in an HR system. IT off-boarding is a separate ticket, sometimes triggered manually by a manager who forgets, sometimes triggered automatically by an HR-to-IT integration that doesn't cover every system. Contractors often aren't in the HR system at all, so their termination has no automated trigger whatsoever — someone has to remember to tell IT the engagement ended.

Account Type

Typical Trigger for Removal

Common Failure Point

Recommended SLA

Full-time employee (voluntary exit)

HR termination record + manager notice

Manual off-boarding ticket delayed or missed

Same day to 24 hours

Full-time employee (involuntary exit)

HR termination record, often immediate

Access not disabled before/at notification

Immediate (same-day, prior to notification where risk warrants)

Contractor/vendor

Contract end date, often not in HR system

No automated trigger; relies on manager memory

Same day to 48 hours, tracked against contract end date

Service/system account

Rarely tied to a person leaving

Owner leaves company, account becomes "unowned"

Reviewed quarterly regardless of personnel changes

Third-party integration access

Vendor relationship ends

Access outlives the commercial relationship

Same day as vendor offboarding

A quarterly access review acts as the compensating control that catches whatever the real-time off-boarding process misses — but it should never be your only control for terminations. I push every client toward an automated HR-to-IT-to-identity-provider integration that disables access same-day, with the quarterly review functioning purely as a verification layer, not the primary de-provisioning mechanism. Waiting three months to discover a terminated employee still has VPN access is not a control failure an auditor will accept as "well, we caught it at review."

The review itself should always include an explicit reconciliation step: pull the full HR termination list for the period, cross-reference it against active accounts in every in-scope system, and document zero exceptions or document the exception and its remediation. This single reconciliation is, in my experience, the piece of evidence auditors ask for most specifically by name.

Orphaned Account Review Step

Purpose

Pull full HR termination/contract-end list for the period

Establishes the population to check against

Cross-reference against active directory/IdP accounts

Identifies accounts that should have been disabled

Cross-reference against each in-scope system's user list directly

Catches local accounts not tied to SSO

Document zero-finding or log each exception with remediation date

Creates the evidence artifact auditors sample

Escalate systemic gaps (e.g., contractor accounts consistently missed) to process owner

Fixes the root cause, not just the instance

The step-by-step review workflow

A review that isn't structured as a repeatable workflow degrades every cycle — someone forgets a system, a reviewer doesn't respond, and by the third quarter nobody remembers what "done" looked like the first time. I walk clients through a seven-step workflow that's deliberately boring, because boring is repeatable.

  1. Scope confirmation. Confirm the current in-scope system list is accurate before pulling any data — new systems added since the last cycle need to be added to the review population.

  2. Population pull. Export the current user/access list for every in-scope system, including role, access level/tier, last login date, and account status.

  3. Reviewer assignment. Route each population to the correct reviewer (line manager, system owner, security/GRC for privileged) with a defined due date.

  4. Reviewer decision. For each entry, the reviewer marks: retain as-is, modify (specify the change), or remove. This decision must be recorded, not verbal.

  5. Remediation execution. IT operations executes every "modify" or "remove" decision, and records completion — including the date the change was actually made, not just requested.

  6. Verification/closure. Security/GRC confirms every remediation item was actually completed, closes the cycle, and reconciles against the HR termination list.

  7. Evidence archival. All review artifacts — population exports, reviewer sign-offs, remediation tickets, closure confirmation — are archived in a consistent, retrievable format tied to the review period.

I recommend giving reviewers no more than ten business days to respond, with an automated reminder at day five and an escalation to their manager's manager at day nine if the review is still outstanding. Non-response is itself a finding waiting to happen — an auditor sampling a review cycle where three reviewers never responded, and nobody escalated, will read that as a control that exists on paper but doesn't operate.

Manual spreadsheets versus automated identity governance tools

Every organization starts access reviews with spreadsheets, and there's nothing wrong with that at a smaller scale — DataVantage ran its first two cycles on shared spreadsheets with locked columns and a defined naming convention, and it worked, if painfully. The question is when the manual approach stops scaling, and the honest threshold I use with clients is somewhere around 150–200 employees across more than a handful of systems, or sooner if turnover is high.

Dimension

Manual (Spreadsheet/Email)

Automated (IGA/Access Review Platform)

Setup effort

Low — start today with existing tools

Moderate to high — integration and configuration work upfront

Ongoing effort per cycle

High — manual exports, manual routing, manual chasing

Low — automated population pulls, routing, reminders

Auditability of evidence

Manual — screenshots, saved emails, exported sheets

Strong — system-generated audit trail with timestamps

Scalability

Breaks down past a few hundred users/handful of systems

Scales to thousands of users across dozens of systems

Consistency across cycles

Depends heavily on the individual running it

Enforced by the platform's workflow

Cost

Near-zero direct cost, high hidden labor cost

Licensing cost, lower labor cost over time

Best fit

Early-stage companies, first 1–2 audit cycles

Growing/scaling companies, multiple SOC 2 cycles, complex tech stacks

Purpose-built identity governance and administration (IGA) tools — and increasingly, access-review modules bolted onto broader GRC platforms — automate the population pull, route reviews to the correct owner based on org-chart data, chase non-responders automatically, and produce a clean, timestamped audit trail without anyone manually screenshotting an inbox. Fenwick Cloud Solutions, a 340-person infrastructure-monitoring vendor, moved from spreadsheets to an automated platform between their first and second SOC 2 Type II cycles and cut review-cycle labor from roughly 120 person-hours per quarter to about 18, almost entirely by eliminating manual chasing and manual evidence collection.

"The spreadsheet era wasn't the problem — the problem was that every quarter, someone had to remember the entire process from scratch. Automating it didn't just save time, it made the fourth cycle as rigorous as the first, which is the thing auditors actually care about." — Sana Okafor, GRC Lead, Fenwick Cloud Solutions

Whichever approach you use, the underlying discipline — clear scope, clear ownership, recorded decisions, closed-loop remediation — matters more than the tooling. A poorly configured automated tool that nobody understands produces worse evidence than a disciplined spreadsheet process.

Writing the access review policy: what auditors expect on paper

Every piece of evidence we've discussed so far proves the control operated. Auditors separately want a written policy or procedure proving the control was designed deliberately — a document they can read during planning, before fieldwork even starts, that tells them what to expect when they later sample your evidence. Organizations that skip this step often run a perfectly good review process informally, then struggle when an auditor asks for "the policy" and gets a shrug instead of a document.

A usable access review policy doesn't need to be long — I've seen effective versions run two to three pages — but it needs to answer a specific set of questions unambiguously, so that a new hire in your security team could pick it up and run the next cycle correctly without institutional memory.

Policy Element

What It Must State

Why Auditors Check It

Purpose and scope

Why the review exists; which systems and populations it covers

Confirms your evidence should match a defined, bounded population

Review cadence

Frequency per risk tier (e.g., quarterly for Tier 1–2, semiannual for Tier 3)

Sets the expectation against which consistency is tested

Reviewer roles and authority

Who reviews what, and who has final sign-off authority

Confirms appropriateness judgment sits with someone qualified to make it

Review criteria

What "appropriate access" means (least privilege, role mapping, SoD)

Gives reviewers — and auditors — a consistent standard to apply

Escalation and non-response handling

What happens if a reviewer misses the deadline

Shows the control has teeth, not just a polite request

Remediation SLA

Timeframes for fixing findings by severity

Ties directly to the evidence you'll produce for remediation testing

Evidence retention

Where evidence lives, how long it's retained, who can access it

Confirms evidence will actually exist when the auditor asks for it

Policy ownership and review cycle

Who owns the policy itself, and how often it's revisited

Prevents the policy from going stale relative to how the program actually runs

The policy and the practice need to match exactly — this is one of the more common, and entirely self-inflicted, exception types I see. A policy that promises monthly reviews of privileged access, written two years ago by someone who's since left, while the actual program runs quarterly, is worse than having no written policy at all, because it hands the auditor a documented control failure rather than an undocumented-but-functioning one. I recommend reviewing the policy itself at least annually — ideally as part of the Q4 program retrospective described earlier — specifically checking that every cadence, role, and SLA it describes still matches reality.

Remediation: closing the loop on findings

A review that surfaces findings but never closes them is arguably worse than no review at all, because it creates a paper trail proving you knew about a problem and didn't fix it. Remediation needs its own defined SLA, tracked separately from the review itself, with severity-based urgency.

Finding Severity

Example

Remediation SLA

Owner

Critical

Orphaned privileged/admin account still active

24–48 hours

Security/GRC + IT Ops

High

Terminated employee with any active access

24–48 hours

IT Ops

Medium

Over-provisioned standard access (wrong tier, unused for 90+ days)

5–10 business days

IT Ops, per manager decision

Low

Minor role-mapping inconsistency, no active risk

Next standard change cycle

System owner

Process

Reviewer non-response / incomplete review

Escalate immediately, close before cycle sign-off

Security/GRC

Every remediation item needs a ticket — in whatever system you already use for IT work, this doesn't need a dedicated tool — with a clear before/after state, the date the change was requested, and the date it was actually completed. That gap between "requested" and "completed" is exactly what an auditor will test when they sample a finding: did the fix actually happen, and did it happen inside the SLA you claim to follow.

I also push clients to run a lightweight root cause analysis on any finding that recurs across cycles. A single orphaned contractor account is a one-off; three consecutive quarters of orphaned contractor accounts is a broken process (probably: contractors aren't being tracked in the same off-boarding trigger as employees), and the fix belongs at the process level, not the individual-ticket level.

Remediation Evidence Element

Why an Auditor Wants It

Ticket ID linked to the specific review finding

Traceability between finding and fix

Date finding was identified

Establishes the clock for SLA measurement

Date remediation was completed

Proves the fix happened, not just was requested

Screenshot or system log confirming access change

Independent confirmation beyond the ticket status field

Sign-off from Security/GRC that remediation is verified

Closes the loop with named accountability

Evidence: what auditors actually want to see

This is the section I'd bookmark if I were you. Access review evidence gets sampled in nearly every SOC 2 Type II engagement, and the difference between a smooth walkthrough and a stressful one comes down almost entirely to whether your audit evidence is organized before the auditor asks, not assembled in a panic after.

Evidence Artifact

What It Proves

Format

Review population export

The full scope of what was reviewed, timestamped

Exported list, dated, per system per cycle

Reviewer sign-off

A named individual made a documented decision

Signed form, e-signature, or system-recorded approval with timestamp

Exception log

Findings were identified, not swept under the rug

Spreadsheet or tool-generated report listing every flagged item

Remediation tickets

Findings were actually fixed, with dates

Ticket system export showing status, dates, and resolution

Reconciliation against HR termination list

Terminated employees were specifically checked, not assumed clean

Documented cross-reference with zero-finding confirmation or exceptions logged

Cycle closure sign-off

The review cycle formally completed, owned by someone accountable

Signed closure memo or system record from Security/GRC

Privileged access attestation

Elevated access received the higher-scrutiny review it requires

Separate signed artifact specific to Tier 1/privileged population

The most common evidence mistake is treating the review as an event rather than a record. An email thread where a manager replies "looks fine" is weak evidence — it doesn't show the population reviewed, doesn't show a per-entry decision, and disappears into an inbox nobody archives systematically. A structured artifact — even a well-organized spreadsheet with locked review columns and timestamps — beats a clean-looking but unstructured email chain every time an auditor tests it.

I recommend a consistent evidence folder structure per review cycle: one folder per quarter, with subfolders for population exports, reviewer sign-offs, exception logs, and remediation tickets, named consistently enough that an auditor (or a new hire on your team) could navigate it without a guided tour. This maps directly to how control testing works during fieldwork — auditors request a PBC list item, and the faster and more completely you can produce it, the less follow-up scrutiny the item attracts.

How auditors sample and test your access review control

Understanding the mechanics of how your auditor actually tests this control changes how you build the program, so it's worth walking through what happens on the other side of the table. For a Type II examination, the auditor is testing operating effectiveness over the full audit period — which, for a control that runs quarterly, typically means a population of two to four review cycles, depending on the length of your observation window.

The auditor will generally:

  1. Request the full population of review cycles conducted during the period — every system, every cycle, no cherry-picking which cycles to disclose.

  2. Select a sample — often not every cycle, and rarely every system within a cycle, using an audit sampling approach appropriate to the size of the population.

  3. For each sampled item, request the underlying evidence: the population export, the reviewer's actual decision, and (critically) proof of remediation for anything flagged.

  4. Often perform a re-performance test — independently checking, for a sampled user, whether their actual current access matches what the review said should exist.

  5. Cross-reference your review population against the HR termination list independently, specifically hunting for anyone terminated during the period who still shows up with active access after the point they should have been removed.

Test Type

What the Auditor Does

What You Need Ready

Inquiry

Asks process owners to describe the review process

A documented policy/procedure that matches what actually happens

Observation

Watches a review cycle happen, or reviews a recorded walkthrough

A live, demonstrable process, not just a document

Inspection

Examines review artifacts: exports, sign-offs, tickets

Organized, dated, complete evidence per cycle

Re-performance

Independently verifies a sampled user's actual current access

Access data that matches what your review evidence claims

A test of one generally isn't sufficient for a control designed to run quarterly across a multi-month period — the auditor expects to see the control operate consistently across the whole window, which is precisely why a single well-documented cycle followed by three sloppy ones is a worse outcome than four moderately good cycles. Consistency beats a single standout performance every time in a Type II report.

Common exceptions and the patterns behind them

I've now sat through enough SOC 2 fieldwork debriefs to recognize the same handful of access review exceptions recurring across almost every organization, regardless of industry. Recognizing the pattern in advance lets you pressure-test your own program before the auditor does it for you.

Common Exception

Root Cause

Fix

Terminated employee retains active access past termination date

HR-to-IT off-boarding trigger is manual or incomplete

Automate HR-to-IdP integration; use review as verification, not primary control

Contractor access outlives contract end date

Contractors aren't tracked in the same system as employees

Maintain a separate contractor access register with contract end dates

Reviewer doesn't respond within the cycle

No escalation path or consequence for non-response

Build automated reminders + manager escalation into the workflow

"Approve all" rubber-stamping with no evidence of actual judgment

Review burden too high, reviewer not equipped to judge appropriateness

Provide role-to-access reference cards; right-size review scope per reviewer

Privileged access reviewed with the same rigor as standard access (or not separately at all)

No distinct privileged access review process

Stand up a dedicated, security-owned privileged access review

Access review evidence exists but isn't tied to a specific, dated population

Review conducted informally (email, verbal) without structured artifact

Use a structured export + sign-off format every cycle

Findings identified but remediation never confirmed as completed

No remediation SLA or closed-loop tracking

Track every finding to a ticket with a completion date and verification step

System missing from review scope entirely

Asset inventory not kept current; shadow IT

Maintain a living in-scope system list, reconciled at least annually

Two of these deserve extra emphasis because they're deceptively easy to miss. First, rubber-stamping is invisible from the outside — the review "happened," a name is attached, but the actual judgment never occurred. Auditors catch this through re-performance testing: if they independently check a sampled user's access and find something a diligent reviewer clearly should have flagged, the sign-off itself becomes suspect. Second, missing systems are a scope problem, not an execution problem — no amount of rigor applied to the systems you did review compensates for a system that was never in the population to begin with.

Access reviews and ISO 27001: a complementary discipline

Many organizations pursuing SOC 2 are also working toward, or already hold, ISO 27001 certification, and access reviews are one of the cleanest points of overlap between the two frameworks — which matters enormously if you're trying to avoid building two parallel evidence trails for what is, functionally, the same control. ISO/IEC 27001:2022 Annex A control 5.18 (Access rights) explicitly requires that access rights be provisioned, reviewed, and adjusted or removed following any change in role or employment status, and control 8.2 (Privileged access rights) requires the allocation and use of privileged access to be restricted, formally managed, and reviewed on a defined basis — language that maps almost directly onto what CC6.3 expects from a SOC 2 access review, even though the two standards test it differently.

The main structural difference is in how each framework verifies the control. ISO 27001 treats access rights review as a certifiable requirement checked by an internal auditor and then a certification body auditor against your documented Statement of Applicability and internal audit records. SOC 2 tests the same underlying activity empirically, cycle by cycle, through sampling and re-performance during fieldwork. In practice, that means the same underlying evidence — population exports, reviewer sign-offs, exception logs, remediation tickets — can satisfy both, provided the review's frequency, scope, and documentation are consistent enough to survive an ISO 27001 surveillance audit and a SOC 2 Type II sample in the same year.

If your organization is running ISO 27001 and SOC 2 together, I'd treat the access review program as one of the first controls you consolidate rather than duplicate — maintaining two separate review cadences, two separate reviewer models, and two separate evidence folders for the same underlying activity is one of the most common (and most avoidable) sources of audit fatigue I see in dual-framework organizations. Teams mapping the overlap in more depth sometimes reference a full ISO 27001, SOC 2, and NIST CSF crosswalk to keep control language and evidence definitions aligned across all three frameworks rather than drifting into inconsistent wording that confuses reviewers and auditors alike.

Metrics and KPIs that prove your program is maturing

A single clean audit cycle tells an auditor your control worked once. A trend line of metrics, tracked cycle over cycle, tells your leadership team — and, indirectly, your auditor — that the program is actually maturing rather than just repeating the same effort with the same results. I encourage every client to track a small set of metrics on a standing dashboard, reviewed at least quarterly alongside the review cycle itself.

Metric

Definition

Healthy Target

Why It Matters

Reviewer response rate

% of assigned reviewers who complete their review by the due date

95%+ without escalation

Low response rates are themselves a control-operation risk

Exception rate

% of reviewed access grants flagged for modification or removal

Declining over successive cycles

A falling rate shows provisioning discipline is improving, not just review discipline

Time to remediate (critical/high)

Days from finding identified to fix confirmed complete

Under 48 hours for critical/high

Direct evidence for the remediation SLA an auditor will test

Repeat exception rate

% of findings that are the same root cause as a prior cycle

Trending toward zero

Recurring findings signal a process gap, not a one-off mistake

Privileged account MFA coverage

% of privileged/admin accounts with MFA enforced

100%

A binary, high-visibility indicator auditors specifically check

Termination-to-removal lag

Average days between termination date and access removal, per HR reconciliation

Same day to 1 business day

Directly measures the CC6.2 de-provisioning control, independent of the review cadence

Presenting this dashboard to an audit committee or leadership team does double duty: it keeps the program visible and funded internally, and it gives your auditor a second, independent data source — beyond the individual cycle artifacts — that corroborates the control is operating consistently rather than being reconstructed just before fieldwork.

Case study: DataVantage Analytics rebuilds its program mid-audit

Returning to Maria's story: after the initial gap was flagged, DataVantage had eight weeks to build a credible program, retroactively document what evidence could be reconstructed for the earlier part of the observation period, and demonstrate at least one full, rigorous cycle going forward before the report could be finalized.

The team's approach:

  • Week 1–2: Built the risk-tiered system inventory (11 in-scope systems identified, two previously untracked SaaS tools added), defined the three-tier reviewer model, and created role-to-access reference cards for the eight most common job functions.

  • Week 3: Ran a full population pull across all 11 systems (approximately 380 total access grants across 220 employees and 14 active contractors), and discovered the orphaned contractor with production database access during the population pull itself — before any reviewer even saw it, because the population export was cross-referenced against the contractor register as a first-pass sanity check.

  • Week 4–5: Routed reviews to 19 line managers and 6 system owners with a seven-business-day deadline and automated reminders; achieved 100% reviewer response by day nine after one escalation.

  • Week 6: Remediated 34 findings — 21 medium-severity over-provisioning cases, 9 stale access grants tied to prior role changes, 3 accounts needing MFA enforcement, and the 1 critical orphaned contractor account, closed within 36 hours of discovery.

  • Week 7–8: Documented the full cycle as formal evidence, reconciled against the HR termination list (zero additional exceptions found), and ran a second, lighter-weight cycle to demonstrate the process repeating.

The second cycle, run six weeks after the first, surfaced only 2 findings — both minor role-mapping issues remediated within 48 hours. Ashcroft & Vale accepted the two-cycle evidence, noted the initial-period gap as a corrected deficiency rather than a current material weakness, and DataVantage received its report in time for the retailer's audit committee meeting, preserving the $2.4 million renewal.

"What saved us wasn't perfection — it was showing a control that clearly worked the second time because we'd fixed the actual process, not just produced better paperwork. The auditor could see the exception count drop from 34 to 2 and that told its own story." — Maria Delgado, Director of Security and Compliance, DataVantage Analytics

Case study: a missed privileged account at Northbridge Payments

Northbridge Payments, a payment-orchestration platform serving mid-market e-commerce merchants, had a mature quarterly access review program running for over a year when its dedicated privileged access review — introduced specifically because a prior audit had flagged the absence of one — caught something the standard-user review cycle had missed for two consecutive quarters: a departed infrastructure contractor whose personal AWS IAM user, created outside the standard onboarding process for an urgent migration project eight months earlier, still held broad EC2 and RDS permissions.

The account had never appeared in the standard-user population pull because it was tied to a project-specific IAM user rather than the company's SSO-federated access, meaning it fell outside the normal review's data source entirely. It surfaced only because the newly introduced privileged access review specifically cross-referenced all IAM users against the company's active personnel and contractor registers, not just SSO-linked identities.

  • Time between contractor's engagement end and account creation being flagged: approximately 8 months.

  • Remediation: account disabled within 4 hours of discovery, followed by a full IAM audit that identified two additional non-SSO-linked service accounts requiring cleanup.

  • Process fix: all future project-specific IAM users required to be provisioned through the standard identity provider federation, eliminating the blind spot going forward.

"The lesson wasn't that our review process failed — it's that our review process was only ever looking at the front door. This account came in through a side door we didn't know we had. Every organization has at least one side door; the privileged review's job is to go find it." — Tom Reilly, VP Engineering, Northbridge Payments

This is precisely why I recommend privileged access reviews be scoped explicitly to include all forms of elevated access — including non-SSO-federated accounts, service accounts, and cloud-native IAM users — rather than inheriting the scope of the standard user review by default.

Building a sustainable annual review calendar

Access reviews fail long-term not because the process is hard, but because it's easy to let slip when nobody owns the calendar. I recommend building a fixed annual calendar, published at the start of the fiscal year, so review cycles aren't negotiated fresh each quarter around whoever's busy.

Quarter

Primary Activities

Owner

Q1

Full standard access review cycle (all Tier 1–3 systems); privileged access review; annual in-scope system inventory refresh

Security/GRC leads coordination

Q2

Full standard access review cycle; privileged access review; mid-year policy/reference card refresh if roles changed

Security/GRC leads coordination

Q3

Full standard access review cycle; privileged access review; internal audit spot-check of Q1/Q2 evidence completeness

Internal audit or GRC

Q4

Full standard access review cycle; privileged access review; annual program retrospective and process improvements for next year

Security/GRC + Executive Sponsor

Building the retrospective into Q4 matters more than it sounds — this is where you review the exception patterns from the whole year, decide whether cadence or scope needs to change, and update the role-to-access reference cards before the new year's first cycle. Programs that skip this step tend to fossilize, applying a reference card that's two years out of date to a role that's since changed significantly.

I also recommend tying your review calendar explicitly to your broader internal audit program cadence, so the two functions aren't independently discovering the same gaps months apart. If internal audit already spot-checks access review evidence in Q3, that's a second layer of assurance before your external SOC 2 fieldwork even begins.

Common pitfalls that undermine an otherwise solid program

Even organizations with a well-designed process on paper trip over a handful of recurring operational pitfalls. Worth a deliberate gut-check against each one before your next cycle.

Pitfall

Symptom

Prevention

Review fatigue

Response times creep later each cycle; sign-offs get terser

Right-size scope per reviewer; don't over-include low-risk systems in every cycle

No accountable owner for the program itself

Cycles happen "when someone remembers" rather than on schedule

Name a single accountable owner (typically Security/GRC lead) in the policy

Evidence scattered across email and personal drives

Fieldwork prep turns into a scramble every audit

Centralized, consistent evidence folder structure per cycle

Reference materials not updated as roles evolve

Reviewers approve access that made sense a year ago but not today

Refresh role-to-access mapping at least annually, or after major reorgs

Treating the review as the only de-provisioning control

Terminated accounts linger for weeks before the next cycle catches them

Real-time HR-to-IT-to-IdP integration as the primary control; review as verification

Privileged access folded into the standard review with no extra scrutiny

Elevated access reviewed with the same shallow pass as a read-only ticketing account

Dedicated, security-owned privileged access review process

No feedback loop from findings to root cause

Same exception type recurs every quarter

Root cause analysis on repeat findings, fix at the process level

Access reviews as a business advantage, not just an audit checkbox

It's tempting to treat access reviews as pure audit overhead — a quarterly tax you pay to keep the SOC 2 report clean. I'd push back on that framing, because in my experience the organizations that get the most value from this control are the ones that stop thinking of it as compliance theater and start thinking of it as operational hygiene that happens to also satisfy an auditor.

A disciplined access review program catches privileged access management gaps before they become breach headlines, not just before they become audit findings. It shrinks your attack surface continuously rather than in periodic bursts, because the discipline of asking "does this access still make sense" quarter after quarter naturally prunes the accumulated cruft every growing organization generates. And it becomes a genuine sales asset — when a prospect's security team asks how you manage access to systems holding their data, "here's our quarterly review process, here's our privileged access controls, here's our SOC 2 report demonstrating it operates" is a materially stronger answer than a policy document nobody's tested against reality.

The organizations I've watched turn this control into a competitive advantage share one habit: they treat the review findings, in aggregate, as a management metric worth tracking over time — exception counts trending down, remediation SLAs trending faster, reviewer response rates trending toward 100%. That trend line, more than any single clean cycle, is what tells both your leadership team and your auditor that the control is maturing, not just surviving.

If your organization is building or rebuilding this program, start with the risk-tiered system inventory and the three-tier reviewer model — those two artifacts alone resolve most of the structural gaps I see. Our SOC 2 Control Matrix and RACI Template gives you a starting framework for exactly that reviewer mapping, and our SOC 2 Readiness Checklist will help you confirm access reviews sit correctly alongside every other CC6-series control before your next audit window opens. For teams still deciding how to scope the full program, PentesterWorld's SOC 2 Gap Analysis Tool can benchmark your current access review maturity against what a Type II examination will actually test — a far cheaper way to find your gaps than Maria's eight-week scramble was.

PentesterWorld can help you build this before your auditor finds the gap

Whether you're standing up your first access review cycle or hardening a program that's survived a few audits with scars, PentesterWorld's compliance and security engineering team has helped organizations across SaaS, fintech, and healthcare technology design access review programs that hold up under sampling — not just look good in a policy binder. If you'd rather not learn your program's weaknesses the way Maria did, reach out to PentesterWorld to talk through where your current access controls, review cadence, and evidence practices stand against what CC6.1 through CC6.3 actually require.

Frequently asked questions

How often does SOC 2 require access reviews?

SOC 2 itself doesn't mandate a specific number — CC6.3 requires access to be reviewed "on a periodic basis," and it's on the service organization to define and consistently execute that cadence. Quarterly has become the de facto industry standard for sensitive and privileged systems because it balances audit defensibility with operational sustainability; semiannual can work for genuinely low-risk systems, but auditors will want to see the risk-based rationale for any cadence looser than quarterly on anything touching customer data.

Who should own the access review program?

Ultimate accountability should sit with a named individual — typically a security or GRC lead — even though execution is distributed across line managers and system owners. Auditors specifically look for a single accountable owner because a program "everyone" owns tends, in practice, to belong to no one.

Do contractors and third parties need to go through the same review process?

Yes, and this is one of the most commonly missed scope gaps. Contractor and vendor access should be included in every review cycle with the same rigor as employee access, tracked against contract end dates specifically, since contractors often fall outside standard HR termination triggers.

What's the difference between an access review and a recertification?

In practice, the terms are used interchangeably in most SOC 2 contexts — "recertification" simply emphasizes the re-attestation aspect, that someone is actively re-confirming (certifying) access is still appropriate, rather than passively acknowledging a report. Some organizations use "recertification" specifically for the formal, signed sign-off step within a broader access review cycle.

How do we handle service accounts and non-human identities in the review?

Service accounts need an assigned human owner even though no individual "uses" them day to day — that owner is responsible for confirming, at each review cycle, that the account is still needed, still scoped correctly, and that its credentials are managed appropriately (rotation, vaulting). Orphaned service accounts, where the original owner has left the company, are a common and high-risk finding.

What happens if an access review finds something during the audit period itself?

Findings during the observation period are normal and, counterintuitively, often help your case — they demonstrate the control is actually operating, not just existing on paper. What matters to the auditor is whether the finding was identified, tracked to remediation, and closed within a reasonable timeframe, all with evidence. A zero-finding review across an entire audit period can actually raise auditor skepticism if your environment is large or complex enough that zero findings seems implausible.

Can we automate the entire access review process?

You can automate most of the mechanics — population pulls, routing, reminders, evidence archival — but the appropriateness judgment itself should remain a deliberate human decision, at least for anything beyond the most trivial, rules-based access. Full automation of the decision (not just the workflow) works for narrow cases like automatically flagging accounts with zero logins in 90 days, but a human still needs to own the "is this still appropriate" call for anything nuanced.

How does this connect to our overall control testing during the audit?

Your auditor will test the access review control the same way they test other controls, through inquiry, observation, inspection of evidence, and often re-performance — worth reading how control testing generally works so you understand what "sampled and tested" looks like from the auditor's side before fieldwork starts.

67

About the author

Cybersecurity Expert

Satish Kumar writes about cybersecurity, offensive security, and practical defense strategies on PentesterWorld.

Related Articles

Comments (0)

No comments yet. Be the first to share your thoughts!