Imagine the Auditor's Email
It's 9:42 on a Tuesday. You're sipping coffee, and the subject line reads: "Access Review - Evidence Needed by Friday." Your stomach drops. You know what's coming: a request for the list of who has admin rights to the finance system, proof that terminated employees were deprovisioned, and a summary of your multi-factor authentication rollout. You open the attachment and see a spreadsheet with 40 rows, each asking for a policy name, a control number, and a 'tick here if compliant' box. This is the moment when your access control program stops being an abstract ideal and becomes a deliverable. If you've been treating logging and access reviews as an afterthought, you're about to learn the hard way that compliance isn't about what you do—it's about what you can prove you did.
Here's the blunt truth: most organizations don't have an access control problem. They have an evidence problem. The controls are often in place—MFA is enabled, roles exist, policies are written—but the audit trail is a swamp of disconnected logs, stale spreadsheets, and 'we'll fix it next quarter' decisions. I'm going to walk you through a realistic scenario, step by step, and show you exactly how to turn your access control evidence from a liability into an asset. By the end, you'll know the one move that will save your next audit.
Step One: Know What the Auditor Actually Wants
Auditors are not your enemy. They're looking for a few specific things, and they're usually transparent about them. In the federal world, OMB M-22-09 pushed agencies toward zero trust and required phishing-resistant MFA by the end of fiscal year 2024—a deadline that private sector auditors have started borrowing. But for most commercial audits, the core asks come down to three things: authentication that proves who you are, authorization that limits what you can do, and evidence that you've enforced the principle of least privilege.
Let's start with authentication. Your auditor will ask: "How do you know your users are who they say they are?" They want to see that you've moved beyond single passwords. NIST SP 800-63B is the gold standard here. It defines three categories of authentication factors: something you know (password), something you have (a one-time password device), and something you are (biometrics). The recommendation for most systems handling personal, financial, or operational data is Authenticator Assurance Level 2 (AAL2), which requires multi-factor authentication using two different factors. If you're not at AAL2, you're going to have a hard conversation.
Then there's authorization. Your auditor will ask: "How do you decide what each user can do?" They'll want to see that you've assigned permissions to roles, not to individuals, because that's the scalable, auditable way. The ANSI INCITS 359 RBAC standard defines Core RBAC as the mandatory minimum—user-role and permission-role assignments. If you're still handing out individual permissions ad hoc, you're not ready.
Step Two: Audit Your Own Authentication and Authorization
Now let's get concrete. Imagine you're the IT security manager for a mid-sized company with 500 employees. You use Active Directory for authentication, a mix of SaaS apps for HR and finance, and a few on-prem servers. The auditor has asked for a list of all users with administrative access, along with evidence that each admin uses MFA.
Your first move is to pull a report from your identity provider. If you're using single sign-on (SSO), this is easier—CISA highlights that SSO reduces password fatigue and reuse, but more importantly for you, it gives you a central place to see who authenticated and when. But here's the catch: SSO alone doesn't prove MFA. You need to check the authentication event logs for the MFA factor.
Now, let's talk about the NIST PAM guidance. Privileged accounts are the 'keys to the kingdom'—if an auditor sees that your domain admins use only a password, they'll flag it immediately. NIST recommends credential vaulting, just-in-time access, and MFA for privileged sessions. So, walk through your admin accounts: Are they in a vault? Do they require MFA? Is there a session recording? If not, you have a gap that will show up in the report.
Here's a quick tip: Don't wait for the auditor to ask for this evidence. Run a self-audit quarterly, and keep the reports in a folder labeled 'Access Reviews' with the date. When the auditor asks, you'll have a clean, dated trail.
Step Three: Prove Least Privilege with a Role-Mining Exercise
The auditor will also want to see that you're not over-provisioning access. The principle of least privilege—giving users only the minimum access needed—is a cornerstone of access control (Tenable). But how do you prove it? You can't just say, "We follow least privilege." You need to show it.
Here's a realistic exercise: Export all user permissions from your systems. For AWS, this is straightforward—AWS IAM denies access by default, and an explicit Deny overrides any Allow. That's a good start, but you need to check that your policies actually grant only what's needed. For on-prem, you might be dealing with ACLs in Windows or Unix.
Now, group your users by role. For each role, list the permissions. Then ask: Does anyone in this role have permissions that don't match the role? If you find a finance intern with admin rights to the server, that's a red flag. Create a report that shows the role, the permissions, and the number of users in each role. This is your evidence of least privilege.
But here's the nuance: least privilege isn't static. People change roles, projects end, and permissions linger. That's why separation of duties matters—NIST SP 800-53 calls it a security principle that divides critical functions among different staff so no single individual can perpetrate fraud. Your auditor will look for this, especially in financial systems. So, document that your accounts payable person can't also approve payments.
Step Four: Make Your Logs Tell a Story
Now, the heart of the evidence: logs. Auditors don't want raw logs—they want a narrative. They want to see that you can answer, 'Who accessed what, when, and why was that allowed?'
Let's say you have a user who left the company two months ago. Did you deprovision their account? If you can't prove it, the auditor will assume you didn't. So, you need a process: when someone leaves, you disable their account immediately and then, after a grace period, delete it. You need a log of that action.
For authentication logs, you should have entries for every login attempt, including success and failure. For authorization, you need logs that show the policy decision—was the access allowed or denied? In a zero trust architecture, this is done by a Policy Decision Point (PDP) and Policy Enforcement Point (PEP), as defined in NIST SP 800-207. Even if you're not fully zero trust, you can adopt the concept: every access request should be evaluated and logged.
Here's where the pain comes in: logs are scattered across systems. Your firewall logs, your OS logs, your cloud provider logs—they all have different formats. The auditor won't accept a 10,000-line text dump. You need to aggregate and correlate. That might mean a SIEM tool, but at minimum, you should have a script that pulls the relevant events and puts them in a readable format.
One thing that will trip you up: OAuth 2.0 and OpenID Connect tokens. If you use modern APIs, you're likely using JWTs. A JWT is a compact, self-contained token with a header, payload, and signature (RFC 7519). The signature proves it wasn't tampered with. But an access token alone doesn't prove identity—it's an authorization token, not authentication. So when you log access, you need to capture both the ID token (proof of authentication) and the access token (what was authorized). Don't let the auditor catch you conflating the two.
Step Five: Turn Evidence into a Repeatable Review Process
The final step is to institutionalize this. You don't want to be scrambling next year. Create a quarterly access review cycle:
- Run an automated report of all users and their permissions.
- Compare against a role matrix (who should have what).
- Flag anomalies—users with excessive permissions, inactive accounts, missing MFA.
- Document the remediation actions taken.
- Store all reports with a timestamp.
This is also where you can leverage RBAC to your advantage. The NIST RBAC standard defines static separation of duty—a user can't be assigned to conflicting roles. That's a great audit control. If you have that in place, you can point to it as evidence of preventive control.
Bottom Line
The single best move you can make for your next audit is to stop treating access control evidence as a retrospective chore and start building it into your operations. Run a self-audit this week, identify your privileged accounts, ensure MFA is on, and document your least privilege role assignments. That one folder of dated reports will turn a stressful audit into a straightforward conversation. You'll thank yourself when the auditor smiles and says, 'This is the cleanest evidence I've seen all year.'
Sources
- Tenable - https://www.tenable.com/cybersecurity-guide/learn/key-iam-components
- NIST SP 800-63B - https://pages.nist.gov/800-63-3/sp800-63b.html
- NIST SP 800-207 - https://csrc.nist.gov/pubs/sp/800/207/final
- OMB M-22-09 - https://www.whitehouse.gov/wp-content/uploads/2022/01/M-22-09.pdf
- NIST PAM - https://www.nccoe.nist.gov/financial-services/privileged-account-management
- NIST RBAC (INCITS 359) - https://csrc.nist.gov/projects/role-based-access-control
Comments (0)
Please sign in to post a comment.
Don't have an account? Create one
No comments yet. Be the first to comment!