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.
part 3 of 11 · Identity security, from the ground upthe 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.
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.
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.
- 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
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.
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.
How a review that works actually runs
-
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.
-
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.
-
03 Rank the exceptions
What's left gets sorted by risk, with fraud-enabling combinations on top. Each item says why it's there.
-
04 Reviewer decides
The manager sees a dozen items with reasons and makes a real call on each. Keep or remove.
-
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.
-
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.
What changes when you redesign the campaign
- 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
- 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.
- Segregation of duties (SoD) conflicts first: the create-vendor-and-pay-vendor combinations that fraud audits exist for.
- Dormant access nobody has used in 90+ days.
- Peer-group outliers, people holding entitlements almost nobody in their role holds.
- Privileged accounts.
- 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.
# 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
What to do now
What to do now, by who you are
- 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.
- 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.
- 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.
- 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.
Harden so the next one hurts less
The durable fixes, in the order we'd do them
- 01Clean 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.
- 02Translate 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.
- 03Model 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.
- 04Block 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.
- 05Certify 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.
- 06Review 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.
- 07Close 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.
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.
- 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.
- 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.
- 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.
- 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.
- 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.
How this tends to play out
How this tends to play out
- 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.
- 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.
- 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.
What to take from this
- 01
Translate entitlements into business language before asking anyone to certify them. Bad data makes every attestation worthless.
- 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.
- 03
Run transfers through a small micro-certification the week they happen, instead of waiting for quarter-end.
- 04
Wire revocations to automatic deprovisioning with closure checks, so the campaign emits its own audit evidence.
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.
Three questions, about a minute
Pick an answer and we'll tell you if it's right, and why it is or isn't. The score stays in this browser.
-
Q1Your managers approve almost every line of a 400-row review in minutes. What would you change first?
show the answer
D. Shrink the queue to ranked, explained exceptions The post treats rubber-stamping as a design flaw. Reviewers bulk-approve because a raw list gives them no basis to decide, so the fix is a smaller, riskier, better-explained queue.
-
Q2A finance analyst moves to HR halfway through the quarter. What should happen to the finance access they still have?
show the answer
B. Run a small review of the access they kept, this week. Event-driven thinking. When someone transfers, that should trigger a targeted micro-certification of the access they kept, with a few items and one reviewer, instead of waiting for quarter-end.
-
Q3A reviewer rejects some access, and the campaign just opens a ticket. What's wrong with stopping there?
show the answer
C. Nothing confirms the access was actually removed Auditors trace certified revocations to the target systems and find the access still alive. The campaign has to deprovision automatically, check the access is gone and log that proof next to the decision.