Cloud FinOps & Infrastructure ScalingPlaybook3 min readUpdated September 2026

Setting Up Role-Based Access Control Without Overbuilding It

Role-based access control goes wrong in two opposite directions: either everyone gets admin because defining roles felt like overhead, or someone builds an elaborate permission system for a five-person team that spends more time maintaining the roles than the roles ever save in risk.

Here's a version that scales with you instead of ahead of you.

Vendors Covered in this Article

Disclosure: We may earn a commission if you buy through some links on this page. It doesn't change what we recommend.

Start from the roles people actually do, not a generic template

Write down the handful of jobs people on your team actually perform: who needs to deploy code, who needs to see customer data, who needs to touch billing, who only needs to view dashboards. Build roles around those real jobs, not around a generic admin, editor, viewer template that doesn't map to how your team actually works.

A role that matches a real job is easy to assign correctly. A generic one forces every new hire's access to be a judgment call, which is exactly how permissions creep starts.

Separate roles from permissions before you write a single policy

A permission is a specific action on a specific resource, like reading a particular database table or deploying to a particular environment. A role is a named bundle of permissions that maps to a real job. Define the permissions list first, then build roles on top of it, rather than granting access resource by resource as requests come in.

This separation is what makes access reviews fast later. Reviewing whether the support role should include a permission is a five-minute conversation. Reviewing every individual person's accumulated access, one grant at a time, is not.

Handle exceptions as a deliberate process, not an ad hoc grant

Contractors, on-call engineers, and anyone needing temporary elevated access are the most common source of permission creep, because the access gets granted quickly during a real need and then never revoked once the need passes. Build a specific process for temporary access, with an expiration date attached at the time it's granted, not a follow-up reminder someone has to remember to send.

On-call access is worth treating the same way: broader permissions during an active incident, automatically reverted once the incident closes, rather than a standing grant that sits open between incidents.

Review access on a schedule, not only when someone leaves

Offboarding review catches people who've left. It doesn't catch someone who changed roles internally and kept the old access, or a role that quietly accumulated an extra permission over a year of one-off requests. Put a recurring review on the calendar, even quarterly, that checks whether each role's permissions still match what that job actually needs.

This is usually the review step that gets skipped first when things get busy, and it's also the one most likely to catch a real, quiet gap before an audit or an incident does.

Where RBAC setups overcomplicate themselves

A few patterns turn a reasonable system into one nobody maintains:

  • Too many narrow roles, so assigning access becomes its own puzzle
  • Roles named after specific people instead of jobs, which stops making sense the moment that person changes teams
  • No process for retiring a role once the job it represented no longer exists
  • Permissions granted directly to individuals "just this once," bypassing the role system entirely

A system with ten clear roles that people actually use beats one with forty precise roles that only the person who built it understands.

What changes once you're managing access across several systems

Early on, access control usually means one or two systems: your cloud provider and maybe a shared database. Once you're managing roles across a cloud provider, an internal admin tool, a customer support platform, and a handful of SaaS tools, keeping them consistent by hand gets genuinely hard, because a role that means one thing in one system doesn't automatically mean the same thing in another.

This is usually the point where teams look at a central identity provider that can push role assignments out to multiple systems at once, rather than managing each system's access separately. It's a bigger project than the roles work itself, so it's worth doing once the number of systems, not just the number of people, has grown enough to justify it.

Executive Capability Standard

What Good Looks Like

Good here means every permission traces back to a role that maps to a real job, every temporary grant has an expiration attached when it's created, and access gets reviewed on a schedule, not only when someone leaves.

Building The Capability (5-Stage Skill Ladder)

1. Learn:List the real jobs on your team and the specific permissions each one actually needs to do that job.
2. Do Manually:Build your roles from that list and reassign your team's current access to match, cleaning up anything granted ad hoc.
3. Delegate:Give one person ownership of the quarterly access review and the authority to question a grant that doesn't fit its role.
4. Automate:Set temporary access to expire automatically rather than relying on someone remembering to revoke it.
5. Buy:Bring in an identity and access management specialist once you're managing roles across several systems and the manual process is falling behind.

How to Get Started

Disclosure: We may earn a commission if you buy through some links on this page. It doesn't change what we recommend.

Vanta

Vanta is worth adding once you need to show a customer or auditor real evidence that access reviews happen on a schedule, not just that a policy document says they should.

Visit Vanta→

Frequently Asked Questions

How many roles should a small team actually have?

Usually somewhere between five and ten covers a small company's real jobs: engineering, support, finance, and a couple of admin tiers. If you're defining more than that early on, check whether you're modeling individual people's needs instead of actual job functions.

Should founders have permanent admin access to everything?

It's common in practice, but worth treating deliberately rather than by default. At minimum, keep a record of who holds standing elevated access and why, so it shows up in your own access reviews the same way anyone else's access does.

What's the fastest way to find permission creep in an existing system?

Pull a full export of who has access to what, sort by permission rather than by person, and look for anyone whose access doesn't obviously match their current role. The people who've been at the company longest, or changed roles internally, are the most likely to show up here.

About the numbers

This guide doesn't quote a sourced benchmark. Figures in it are estimates or general guidance, so check them against your own numbers.

Related Guides