Skip to content
Free lab

RBAC / ABAC Access Lab

Over-access is rarely one dramatic grant — it is a role that is one tier too broad, a second duty that should never sit with the first, an entitlement nobody revoked after a transfer, or a rule that only a context attribute can enforce. Work a queue of access requests and call each one: approve it as least-privilege, or name the finding — an over-privileged role, a separation-of-duties toxic combination, privilege creep from a role change, or a requirement that needs ABAC because it turns on time, location, the resource owner or data classification. You are scored on catch rate against false positives — because blocking a clean grant (an AP clerk with no conflicting duty, a JIT-gated break-glass role) is its own failure. Clear the queue clean.

The real job. More noise, a tighter clock.

0sPro

Access-review queue

Review each entitlement request: approve if it is least-privilege, or name the finding. Read what the subject already holds and the stated condition.

#1

Priya Nair

Revenue Ops
job needsSales-analytics analyst (read-only reporting)
resourceBigQuery dataset analytics.sales_curated
requestingroles/bigquery.dataViewer on that one dataset
scopeProduction warehouse · aggregated sales data
already holdsLooker viewer

condition: Reads the curated sales dataset to build weekly dashboards. No special timing or location.

Verdict

#2

Marcus Hale

Customer Support
job needsSupport intern — reads customer tickets
resourceSalesforce org
requestingSystem Administrator profile
scopeProduction CRM · customer PII
already holds— none on record

condition: Needs to open and read support cases assigned to his queue.

Verdict

#3

Dana Okoro

Finance
job needsAccounts-payable clerk
resourceERP — procure-to-pay
requestingPayment Approver role
scopeProduction ERP · vendor payments
already holdsVendor Master Maintainer (can create/edit vendor bank details)

condition: Wants to approve outgoing payments to clear a backlog.

Verdict

#4

Field Services team (8 technicians)

Field Ops
job needsOn-site field technicians
resourceCustomer account portal
requestingCustomer Account Viewer
scopeProduction · customer PII
already holdsDispatch app

condition: A tech may view a customer account ONLY while physically on-site at that customer, and ONLY during the booked service window.

Verdict

#5

svc-nightly-export (service account)

Data Platform
job needsNightly job: copies one report file to S3
resourceAWS account
requestingAdministratorAccess (*:*)
scopeProduction AWS
already holds— none on record

condition: Writes a single CSV to s3://finance-exports each night.

Verdict

#6

Lena Fischer

Marketing
job needsMarketing content editor
resourceCMS — marketing site workspace
requestingEditor on the marketing workspace
scopeStaging + production marketing pages · public content
already holdsSSO

condition: Drafts and edits marketing pages; publishing to prod goes through the existing review workflow.

Verdict

#7

Sam Reyes

Marketing
job needsMarketing campaign manager
resourceERP — accounts payable
requestingNo new access requested — flagged in access recertification
scopeProduction ERP · vendor payments
already holdsERP "AP Clerk" role (from previous job) · Marketing CMS Editor · Ad-platform manager
transferFinance (AP), transferred to Marketing 8 months ago

condition: Moved from Finance to Marketing 8 months ago; the finance AP role was never removed.

Verdict

#8

Wei Zhang

Engineering
job needsBackend engineer
resourceCI/CD pipeline — payments service
requestingSole approver who can merge AND deploy to prod
scopeProduction · payments code path
already holdsWrite access to the payments repo (authors commits)

condition: Wants to self-approve and deploy his own changes to unblock releases.

Verdict

#9

Expense-approval workflow

Finance Systems
job needsManagers approve team expense reports
resourceExpense system
requestingApprover role for all managers
scopeProduction · reimbursements
already holdsManager SSO group

condition: A manager may approve a report only up to a spend limit that scales with their grade band (L5 ≤ $5k, L6 ≤ $25k, Director ≤ $100k).

Verdict

#10

Rosa Pardo (contractor)

Platform (vendor)
job needs5-day cluster migration task
resourceProduction Kubernetes cluster
requestingStanding cluster-admin
scopeProduction · all namespaces
already holdsVPN

condition: Needs broad cluster access for a one-week migration, then leaves.

Verdict

#11

Tom Becker

Finance
job needsNew accounts-payable clerk
resourceERP — accounts payable
requestingAP Clerk role (enter invoices)
scopeProduction ERP · vendor invoices
already holdsRead-only finance reporting

condition: Enters and codes supplier invoices as part of the AP function.

Verdict

#12

Clinical records access

Clinical IT
job needsPhysicians open patient charts
resourceEHR — patient charts
requesting"Physician" role with read/write to charts
scopeProduction · PHI (regulated)
already holdsHospital SSO · Clinician badge

condition: A physician may open a chart ONLY for a patient on whose care team they are listed (and break-glass for emergencies, fully logged).

Verdict

Catch rate vs. false positives

Review each grant, then grade. So far 0/12 called, 0/9 risks caught, 0 false positive(s).

How it is scored

Catch rate = risky grants given the exact right finding (over-privileged, SoD, privilege creep, or needs-ABAC).

A false positive (blocking a clean least-privilege grant) takes an extra hygiene bite — an access review that denies legitimate work drives teams to shadow IT.

Harder tiers add subtler grants and deliberate traps (an AP clerk with no conflicting duty, a static role that does not need ABAC, a high-privilege role already gated by JIT/PIM).

Live arena

4 active
adversary kill-chain1/4
grc-analyst-dana11%
iam-reviewer-you (you)0%
iam-lead-rao0%
platform-sec-kim0%

adversary staging…

TL;DR

What this lab is

  • A free, browser-based access-review lab: work a queue of ~18 entitlement requests and call each one — approve as least-privilege, or name the specific IAM finding.
  • Findings seeded across the queue: over-privileged roles (Owner/Administrator/*:* when a scoped role suffices), separation-of-duties toxic combinations (vendor-master + payment-approver, author + sole deploy approver, IAM-admin + audit-log-admin), privilege creep (stale entitlements left after a transfer or promotion), and requirements that genuinely need ABAC (time, location, resource owner, data classification).
  • You are graded on catch rate weighed against false positives — blocking a clean, least-privilege grant takes an extra hygiene penalty, because an access review that denies legitimate work drives teams to shadow IT.
  • Difficulty tiers add subtler grants and deliberate traps: an AP clerk who holds no conflicting duty, a static read-only role that does NOT need ABAC, and a high-privilege break-glass role already gated by just-in-time (PIM) elevation.
  • Every grant is static and deterministic, and after grading each one shows why the right call is right — real least-privilege, SoD and RBAC-vs-ABAC reasoning.

Frequently asked questions

What is the RBAC / ABAC Access Lab?

A free, in-browser exercise where you work a queue of access-grant requests — who the subject is, what the job needs, the role or permission being requested, the resource and scope, what the subject already holds, and the stated access condition — and give each one a verdict: approve (least privilege), over-privileged, separation-of-duties violation, privilege creep, or needs-ABAC. You are scored on how many risky grants you catch with the exact right finding versus how many clean, least-privilege grants you wrongly block.

What is the difference between RBAC and ABAC here?

Role-based access control (RBAC) grants permissions through static roles — right when access depends only on the job function and a fixed resource. Attribute-based access control (ABAC) decides each request from attributes of the subject, resource, action and environment — time of day, location, device posture, data classification, or whether the subject is the resource owner / on its care team. The lab teaches when a requirement truly needs ABAC (a per-request condition a role cannot express, where RBAC would force role explosion) versus when reaching for ABAC just adds a policy engine for nothing.

What is a separation-of-duties (SoD) violation?

A toxic combination: one person holding two duties that must be segregated so no single identity can commit and conceal a harmful action. Classic pairs are maintaining the vendor master and approving its payments, authoring code and being the sole approver who can also deploy it to production, and administering identities while also administering the audit logs. The fix is to split the duties across people or add an independent approval step — not simply to shrink the role.

Who is it for?

IAM, platform and security engineers who grant and review entitlements, GRC and audit teams running access recertification, and anyone prepping for a security or cloud interview who wants to feel why project Owner for one bucket, AdministratorAccess on a service account, a maker-who-is-also-checker, a leaver’s un-revoked prod access, or a region-and-time rule crammed into a static role are findings — and why an AP clerk with no conflicting duty or a JIT-gated break-glass role is not.

🎉 New here? Use code WELCOME10 for 10% off any plan at checkout
RBAC / ABAC Access Lab — Free Least-Privilege & SoD Trainer · PlayCISO