What it is
A free access review desk in your browser. It reads simple role lists or CSV exports and turns them into one matrix, a route finder and a ranked list of risks.
Access review map
Paste your roles and what each one may do, then who holds which role. Permission Map resolves every grant with deny over allow, draws the access matrix, traces the route from a person to any resource and flags the combinations that cause incidents.
A free access review desk in your browser. It reads simple role lists or CSV exports and turns them into one matrix, a route finder and a ranked list of risks.
Founders preparing a security questionnaire, admins cleaning up roles, engineering leads before an audit and anyone asked who can delete customer data.
Access truth is scattered across an identity provider, spreadsheets and old tickets. Nobody sees that one person can both create and approve a payment until it happens.
Everything is parsed and resolved in this tab. Nothing you paste is uploaded or stored.
Paste your roles, or load the demo company to see every kind of risk.
Your lists never leave this page. The report contains role names, resources and findings only.
Combined checks look at people when you add the people list, and at single roles when you do not.
The same person can create and approve, or request and release, on one resource. Most fraud and many outages start here.
A role with *:* can do anything, including things that do not exist yet. Keep it to as few people as possible.
Whoever can assign roles or edit permissions can grant themselves anything else, so their real access is everything.
Deleting or editing logs lets someone hide what they did. Audit logs should be append only.
resource:* on secrets, payments or personal data quietly includes every future action too.
Bulk export or download of customer data is the most common path to a reportable data leak.
A role both allows and denies the same action. Deny wins, so the allow is dead weight and confuses reviewers.
A deny line that blocks nothing because no allow ever reached it. Harmless, but it hides real intent.
The same grant appears twice. Clean lists are easier to review.
Someone is assigned a role that has no grants. Usually a typo, sometimes a role deleted in one system only.
A role with grants that nobody holds. Old roles get reassigned by mistake later.
Mix them freely. Names are not case sensitive and spaces become underscores.
support: tickets:*, customers:read, !customers:deleteRole, colon, then grants separated by commas. resource.action works too.
role,resource,action,effect
ops,servers,restart,allowComma, semicolon or tab. The effect column is optional and defaults to allow.
deniz: finance_clerk, finance_leadPerson, colon, roles. Or two columns, person and role, one row per assignment.
Export them from your admin panel or write them by hand. Use * for every resource or every action.
Optional but powerful. Risks that come from holding two roles at once only show up with people.
High risks first. Each one names the person, the roles and the exact lines that cause it.
Switch between roles and people, then ask who can do one specific action and follow each route.
Download the matrix CSV and copy the report with its SHA 256 into your access review ticket.
Yes, if you can get it into rows of role, resource and action. Most admin panels export CSV that fits after removing extra columns.
That is how almost every access system works. A single deny blocks the action no matter how many roles allow it.
No. It only reads what you paste. Enforcement stays in your real access control.
Split the role, remove one of the two roles from the person, or add an explicit deny and note who approved the exception.