SecurityIdentity

The access review nobody dreads

Most access reviews get rubber-stamped. Here's how to send reviewers a short, ranked list they can actually judge, and make the campaign remove access and prove it's gone.

Cohash Security Practice June 2026 updated October 2026 11 min read 7 chapters 3-question check
part 3 of 11 · Identity security, from the ground up
Every entitlement translated into business terms Auto-certified by policy unchanged and peer-aligned Ranked exceptions SoD conflicts first Revoke and verify proof logged with the decision

the ideaPolicy clears the boring access, so reviewers judge only the risky few.

after reading, you can
  • Work out why managers approve the whole list. Usually the campaign gave them nothing to judge with.
  • Rank the certification queue so humans see SoD conflicts, dormant access and peer outliers before anything else.
  • Set up revocations so deprovisioning happens automatically and the log proves the access is gone.

Every few months, managers get a list of who has access to what and are asked to confirm it. Most of them click approve on the whole thing. Send them a short, ranked list with reasons instead, and have the system remove whatever they reject.

in plain wordsPractice: worth fixing this quarter

An access review is a manager checking who still holds keys to what, and most of them sign without looking

Each person in your company holds dozens of permissions across email, finance, HR and customer systems. People change jobs and leave, but their permissions usually stay behind. So every quarter or half year, someone sends managers a list and asks them to confirm each person still needs each permission. That's an access review, also called a certification campaign. Auditors and standards expect it. The trouble is that the list is long and written in system codes nobody understands, so managers approve everything. The review gets done on paper, and the leftover access is still there.

think of it like this

Picture a building manager handing a tenant a list of four hundred key codes and asking which ones each staff member should keep. Nobody can tell what door "K-114" opens, so they sign the lot. A useful review hands over twelve keys with labels like "opens the safe, unused since spring" and changes the locks on any the tenant rejects.

who should care
  • Managers who sign off access reviews
  • Finance, HR and compliance leads
  • IT and identity teams running campaigns
  • Companies facing SOX or PCI DSS audits
  • Business owners who sign audit letters
chapter 01

Why it matters to you

Ask a manager to certify four hundred entitlements in a spreadsheet and you'll get four hundred approvals in eleven minutes. A review that approves everything verifies nothing, and a sterner reviewer won't change that. What helps is a smaller queue of riskier items, each one explained.

Auditors have noticed. They now routinely write up near-total approval with decisions made in seconds, since that's evidence the control exists only on paper. A finding like that lands on the CFO's desk and usually means a remediation plan, retesting and a harder audit next year.

400rows a manager can face in a flat spreadsheet review
12ranked, explained items a reviewer can actually judge
6 monthslongest gap PCI DSS v4.0.1 allows between reviews of in-scope user accounts

The business risk sits underneath the audit one. Access nobody removed is how a person who moved out of accounts payable can still pay a vendor, and how a leaver's account keeps working for months. If you take card payments, PCI DSS v4.0.1 requirement 7.2.4 wants every user account with access to your cardholder data systems reviewed at least once every six months, vendor accounts included. Management has to acknowledge the access is still appropriate, and anything that isn't has to be dealt with. A pile of blanket approvals doesn't meet that for long.

chapter 02

How a review that works actually runs

how it worksHow a review runs when it's built right. Most of it happens before anyone clicks.Most of the work happens before a reviewer sees anything, and the last step is the one auditors check.
  1. 01 Translate every entitlement

    Each permission gets a plain description, its last-used date and any conflicts. A manager can't judge a code they don't understand.

  2. 02 Auto-certify the boring access

    Standard access for the role that hasn't changed since last time gets certified by policy. Nobody has to look at it, and the reviewer's queue shrinks.

  3. 03 Rank the exceptions

    What's left gets sorted by risk, with fraud-enabling combinations on top. Each item says why it's there.

  4. 04 Reviewer decides

    The manager sees a dozen items with reasons and makes a real call on each. Keep or remove.

  5. 05 Remove and check

    Say a reviewer rejects an old admin right. The system removes it on the spot and then checks the app to make sure it's really gone, so nobody chases a ticket.

  6. 06 Keep the receipt

    Who decided, on what signals, and the closure check all sit together in the log. That's the evidence the auditor asks for.

Reviewers approve everything because the campaign gives them no basis to do anything else. A raw entitlementdefinitionOne permission in one system, like being able to post journal entries in the finance app. Someone who's been at a company a few years usually has dozens. name such as SAP_FI_GL_DISP_014 carries no meaning to the manager certifying it, so the rational move is bulk approval. Before any scoring, the campaign has to translate it into business terms, show when it was last used, and flag any collision with something else the person holds. If your identity data can't answer those questions, fix the data first. A certification built on entitlement sprawl and orphaned accounts just launders bad data into signed attestations.

chapter 03

What changes when you redesign the campaign

side by sideThe same quarterly review, run the old way and the way that holds up in an audit
Flat spreadsheet review
  • Four hundred rows of system codes per manager
  • Every row looks the same. After the first page, the manager stops reading and starts clicking.
  • Reviewers bulk-approve in minutes
  • A rejection opens a ticket and nobody checks it was done
  • Before the audit, someone hunts for screenshots
Risk-ranked review
  • Low-risk, unchanged access is certified by policy
  • Reviewers get about a dozen ranked items with plain reasons. They can actually judge each one.
  • Fraud-enabling combinations sit at the top. The manager deals with those while they're still paying attention.
  • When a manager rejects something, the access comes off and the system checks it's gone. The proof sits in the log next to the decision.
  • The audit evidence is an export of what the campaign already logged. Nobody has to prepare for it.

Most access in a healthy organization is boring: birthright entitlements, unchanged since the last campaign, matching the peer group. Certify it by policy and get it out of the human queue. What reaches a reviewer should be the exceptions, ranked. A reviewer facing twelve ranked items with plain-language reasons makes twelve real decisions. A reviewer facing four hundred flat rows makes one decision, four hundred times.

  1. Segregation of duties (SoD) conflicts first: the create-vendor-and-pay-vendor combinations that fraud audits exist for.
  2. Dormant access nobody has used in 90+ days.
  3. Peer-group outliers, people holding entitlements almost nobody in their role holds.
  4. Privileged accounts.
  5. Access that survived a recent transfer.

The SoD model underneath deserves real engineering, because role-level rules miss most real conflicts. "Accounts payable clerk cannot also be vendor admin" sounds rigorous until you find the conflict living inside one role, granted by two entitlements nobody mapped. Model the rules at entitlement level. Run them at request time so toxic combinations get refused before they exist, and again at certification so the ones that slipped through arrive at the top of the queue with the conflict spelled out.

The same event-driven thinking shrinks the campaigns themselves. When someone transfers between departments, kick off a targeted micro-certificationdefinitionA small review kicked off by an event, usually a transfer. One reviewer checks just the access the person kept, and does it that week instead of at quarter-end. of the access they kept: five items, one reviewer, this week. Waiting for quarter-end is how a finance analyst ends up still holding their old HR entitlements months later.

Any item a reviewer rubber-stamps is one the campaign should never have put in front of them.
cert-campaign.yaml (example)example output
# q3 certification: scoped by risk, not org chart
campaign: q3-user-access-review
auto_certify: low-risk · unchanged · peer-aligned  // 82% of items
queue[1]: sod_conflict → create_vendor + approve_payment
queue[2]: dormant_90d · peer_outlier · post_transfer
revoke_action: auto-deprovision + closure check
✓ median reviewer time: minutes
✓ evidence: logged with every decision
chapter 04

What to do now

What to do now, by who you are

Business ownerthis month
  • Ask your IT or identity lead for last cycle's approval rate and median decision time. If it's near 100% in a few seconds, you have a paper control.
  • Ask how many rejected items were confirmed removed in the target system, and not just ticketed. That's the number an auditor samples.
  • Pick one owner for the campaign design. Someone has to own the rules, or the spreadsheet comes back next quarter.
Compliance and auditthis quarter
  • Walk your auditors through the auto-certify rules before the next campaign so there are no surprises. Write down why each rule exists.
  • Write down your review frequency and scope, vendor accounts included. For systems in PCI scope, that's at least every six months.
  • Sample last cycle's revocations and check them in the target apps. Then you'll know the gap before the auditor does.
IT and identity teamthis quarter
  • Add plain descriptions and owners to your riskiest entitlements first. Start with finance and admin rights, where a wrong approval costs most.
  • Feed last-login data into the campaign so dormant access shows up. Without it, nobody can tell used from forgotten.
  • Wire revocations to automatic deprovisioning with a closure check. A ticket alone doesn't count.
  • Have every transfer kick off a small review of the access the mover kept. Five items this week beats finding them at quarter-end.
Reviewers and managerseach campaign
  • Reject anything you can't explain. If nobody can tell you what it does, the person probably doesn't need it.
  • Read the reason on every flagged item before you decide. Ranked items are there because something about them looks wrong.
chapter 05

Harden so the next one hurts less

The durable fixes, in the order we'd do them

  1. 01
    Clean the identity data

    Find orphaned accounts with no owner, and link every account to a person in your HR system. Sprawl and orphans are what make reviews meaningless, so they go first.

  2. 02
    Translate entitlements into business language

    Write a sentence for each risky entitlement that a manager can actually read, and name an owner and a risk rating. Right now SAP_FI_GL_DISP_014 tells a reviewer nothing.

  3. 03
    Model SoD at entitlement level

    Write the toxic combinations as pairs of entitlements, not pairs of roles. The conflict often sits inside one role, built from two entitlements nobody mapped.

  4. 04
    Block conflicts at request time

    Run the same SoD rules when someone asks for access. A conflict refused at the request never needs a reviewer to catch it later.

  5. 05
    Certify the boring access by policy

    Let policy certify access that's standard for the role and hasn't changed since last time, and log which rule did it. Reviewers then only see what's left over.

  6. 06
    Review on events, too

    Transfers, role changes and long leave should each start a micro-certification. Small reviews close to the event beat one huge review months later.

  7. 07
    Close the loop on every revocation

    Push removals straight to the target apps, check the access is gone and log that check next to the decision. Then rerun the check later to prove it stayed gone.

A revocation decision that ends in a ticket is a wish. Auditors have learned to sample for exactly this gap, tracing certified revocations to target systems where the access is still alive. So the campaign has to drive deprovisioning automatically and then check the access is actually gone, with the confirmation logged next to the decision. People call that closed-loop remediationdefinitionRemoving access automatically, then checking the target system to make sure it's really gone. The check gets logged, so you can show an auditor without digging..

Do it and the evidence auditors want comes for free. You already know who reviewed what on which signals and what was revoked, and you can prove it stayed revoked. In our identity governance engagements the audit conversation shrinks to an export, because the campaign has been emitting its own proof all along. Nobody books a preparation meeting or goes hunting for screenshots. The review nobody dreads is the one that documents itself.

chapter 06

If it goes wrong

If the auditor writes up your access review

A finding usually says the reviews were rubber-stamped, or that rejected access was never removed. Don't answer it by re-running the same spreadsheet faster. Work through these phases in order.

  1. 01Containfirst week
    • Pull the access the finding names and check it in the target systems today. If rejected access is still live, remove it and log the check.
    • Look for SoD conflicts on finance and admin rights first. Those are the ones that can turn into real losses.
  2. 02Investigatefirst month
    • Pull last cycle's approval rates and decision times per reviewer. That shows whether the problem is a few managers or the whole design.
    • Trace a sample of revocations from decision to target app. Count how many were ticketed and never done.
    • List entitlements with no description or owner. They're usually where the bulk approvals came from.
  3. 03Fix the designthis quarter
    • Walk the auditors through the auto-certify rules, then rank what's left by risk.
    • Wire revocations to automatic removal with a closure check before the next campaign starts. Otherwise the auditor's next sample finds the same live access.
  4. 04Re-run and provenext cycle
    • Run a smaller, ranked campaign and export the log of who decided what, on which signals.
    • Show the auditor the closure checks for every revocation, plus a later recheck that the access stayed gone.
  5. 05Report and learnafter the cycle
    • Brief the audit committee or owners on what changed and what the new numbers look like.
    • Do the same for the other apps in scope, so the next finding doesn't come from a system you skipped.

The same phases work for a failed rollout of the new design. If reviewers complain the ranked queue flags the wrong things, pause auto-certification for that app, fix the rule and rerun just that slice. Don't fall back to the full spreadsheet for everyone, because that's the finding you started with.

chapter 07

How this tends to play out

How this tends to play out

01 Clerk's role two hidden… 02 Create vendor 03 SoD rule entitlement level 04 Approvepayment
scenario 01High risk
A mid-size manufacturer with an SAP finance team
the setup
Managers get a spreadsheet of SAP entitlement codes every quarter. Approval rates sit near 100%, and one role quietly lets a clerk both create vendors and approve payments.
what happens
The conflict lives inside one role, so the role-level SoD rule never catches it. The clerk's access gets approved quarter after quarter, and the auditor finds it before anyone inside does.
what to do
Model the SoD rules at entitlement level and run them at request time. Put the conflict at the top of the next review with the reason spelled out.
01 Reviewerrejects 02 Ticket opened nobody checks it 03 Access stilllive 04 Audit sample finding raised
scenario 02High risk
A regional bank where revocations end in tickets
the setup
Reviewers do reject access, and each rejection opens a ticket for the app team. Nobody checks the tickets against the apps afterwards.
what happens
The auditor samples certified revocations and traces them to the target systems. Several are still live, and the bank gets a finding even though reviewers did their part.
what to do
Wire revocations to automatic deprovisioning, check each one is gone and log the check next to the decision. Rerun the check later to prove it stayed gone.
01 Transfer toHR 02 Kept financeaccess 03 Micro-review five items, this… 04 Months ofexposure
scenario 03Medium risk
A growing company where people move teams often
the setup
A finance analyst moves to HR mid-quarter. The next access review isn't until quarter-end, and the old finance access goes with them.
what happens
For weeks the analyst holds both finance and HR access. Nothing bad has to happen for it to matter, because the next review will show a peer-group outlier nobody can explain.
what to do
Have the transfer kick off a micro-certification of the access they kept: five items, one reviewer, this week. Remove anything the new manager can't justify.

We design and run these campaigns as part of our identity and access management work. That usually starts with cleaning the identity data and writing the SoD rules at entitlement level, then wiring revocations to automatic removal. If you want to know where your current reviews would fail an audit sample, start with an assessment.

key takeaways

What to take from this

  1. 01

    Translate entitlements into business language before asking anyone to certify them. Bad data makes every attestation worthless.

  2. 02

    Let policy auto-certify low-risk access that hasn't changed, and send just the ranked exceptions to humans. Those are SoD conflicts, dormancy and peer outliers.

  3. 03

    Run transfers through a small micro-certification the week they happen, instead of waiting for quarter-end.

  4. 04

    Wire revocations to automatic deprovisioning with closure checks, so the campaign emits its own audit evidence.

fact-checked October 2026 against vendor and official documentation · where to go next
  1. IAM practice
  2. Book a 30-minute working session with a senior engineer
01What is an access review, in plain terms?

It's a regular check where managers confirm that each person on their team still needs each permission they hold. People move jobs and leave, and their access tends to stay behind. The review is how you catch that before an auditor or an attacker does.

02Our managers approve every line and they're done in a few minutes. Is that a problem?

Yes. Auditors now write up near-total approval with decisions made in seconds as a control that exists only on paper. It also means leftover access nobody needs is still out there. Shrink the queue so managers can actually judge what's in it.

03How often do we have to review access?

It depends on what you're audited against. If you take card payments, PCI DSS v4.0.1 requirement 7.2.4 asks for a review of all user accounts in scope for PCI (those that can reach cardholder data systems), vendor accounts included, at least once every six months. Many companies review quarterly for finance and admin access and add small reviews whenever someone changes jobs.

04Can we let the system approve the low-risk access on its own?

Yes, for access that's standard for the role and hasn't changed since the last review. Certify it by policy, log which rule did it, and talk the rules through with your auditors first. Someone in management still signs off the whole population, including what the policy certified, so the rule itself is part of what gets reviewed. People still look at the exceptions: SoD conflicts, dormant access, privileged accounts and outliers.

05What does an auditor actually check?

Mostly whether the review covered everyone it should, whether reviewers really looked, and whether rejected access was really removed. They judge the looking from approval rates and decision times, and test removal by tracing a sample of revocations to the target systems. A closure check logged next to each decision answers that last one.

next step

Tell us what you're running. We'll tell you what we'd do first.

A 30-minute working session with a senior engineer. No slides.

useful to bring
  • The platform and the version you're on
  • Where you need to get to, and by when
  • What's custom: rules, plugins, integrations
  • Any audit finding or deadline driving it