Skip to main content

Your 5-Minute Authorization Audit: A Greenstreet Checklist for Tightening Access

Access creep is one of the most common yet overlooked security risks in growing organizations. This practical guide from Greenstreet provides a structured 5-minute authorization audit checklist that busy teams can use to identify and tighten excessive permissions, dormant accounts, and role-based access control gaps. We walk through the core concepts of least privilege, compare three common authorization models (RBAC, ABAC, and ReBAC) with a detailed pros-and-cons table, and offer a step-by-step

Introduction: Why Your Access Permissions Are Probably Overgrown

If you manage a system with more than a handful of users, access creep has already happened. It is not a matter of if, but how much. In a typical project we observe, teams grant broad permissions during onboarding, reorganizations, or incident response, but rarely revoke them when roles change or projects end. Over six months, a developer might accumulate access to five different databases, three production environments, and a handful of administrative consoles—none of which they still need for their current work. This is not malicious; it is a natural byproduct of busy teams prioritizing feature delivery over access hygiene. However, the cumulative risk is significant. Every extra permission is a potential entry point for an attacker, a vector for insider misuse, or a compliance gap waiting to be flagged during an audit. The core pain point is simple: you know you should audit access, but you do not have two hours to dedicate to a full review. That is where this 5-minute authorization audit checklist comes in. Designed for the reality of modern engineering and operations teams, this guide gives you a structured, repeatable process to identify the most dangerous permission gaps quickly. We focus on high-impact checks that catch the worst offenders—stale service accounts, over-provisioned roles, and unnoticed privilege escalation paths. By the end of this article, you will have a concrete checklist you can run in under ten minutes, along with the reasoning behind each step so you understand why it matters. Let us begin with the foundational concepts that underpin every authorization decision.

Core Concepts: The Principle of Least Privilege and Why It Works

Authorization is not just about who can access what; it is about ensuring that every user, service, or system has exactly the permissions needed to perform its function—no more, no less. This is the principle of least privilege (PoLP), a cornerstone of modern security architecture. The reason PoLP works is not just philosophical; it is practical. When an attacker compromises a user account, the blast radius is limited to that user's permissions. If a developer only has read access to a staging database, a compromised credential cannot delete production tables. Similarly, if a service account can only write to a specific queue, it cannot read sensitive customer data from an unrelated bucket. The challenge is that least privilege is often seen as a destination rather than a continuous process. Teams design initial roles carefully, but over time, permissions drift as exceptions are made for urgent tasks, new integrations are added without review, and temporary access becomes permanent. One team I read about discovered that a single "admin" role had been assigned to over 40 users in a system with only 5 actual administrators. The rest were developers, QA engineers, and even a former intern whose account had never been disabled. This is not an isolated story. Many industry surveys suggest that the average organization has 30-50% more privileged accounts than it actually needs. Understanding why this happens is key to fixing it. Authorization audits fail because they are perceived as cumbersome, manual, and time-consuming. But a focused, 5-minute checklist can catch the worst issues without requiring a full-scale review. The trick is to target the highest-risk areas: dormant accounts, over-provisioned roles, and missing separation of duties. In the sections that follow, we will break down each of these areas with concrete steps and explain the mechanisms behind them. By the end of this guide, you will not just have a checklist—you will understand the logic that makes each check effective.

Why Least Privilege Reduces Risk Beyond Compliance

Compliance frameworks like SOC 2, ISO 27001, and GDPR all require some form of access control, but the principle of least privilege goes beyond checking a box. It reduces the likelihood of accidental data exposure, limits the impact of phishing attacks, and makes incident response easier by narrowing the scope of compromise. For example, when a service account with read-only access to one database is compromised, the forensic investigation is straightforward. When a service account with full administrative access across multiple systems is compromised, the investigation can take weeks. The difference is not just in the permissions themselves, but in how you design roles and audit them regularly.

Common Mistakes That Undermine Least Privilege

Three mistakes appear repeatedly in authorization reviews. First, teams create too many custom roles instead of using built-in role templates, leading to configuration drift. Second, they grant "admin" access as a shortcut during incidents and never revoke it. Third, they overlook service accounts, which often have the broadest permissions because they are created for integrations and then forgotten. Each of these mistakes is easy to make and just as easy to catch with a structured audit. The checklist we provide targets these specific failure modes.

Comparing Authorization Models: RBAC, ABAC, and ReBAC

Before diving into the audit checklist, it helps to understand the authorization models you are likely auditing. The three most common approaches are Role-Based Access Control (RBAC), Attribute-Based Access Control (ABAC), and Relationship-Based Access Control (ReBAC). Each has strengths and weaknesses, and your audit approach should account for which model your system uses. RBAC is the most widely adopted, especially in enterprise applications. Permissions are grouped into roles (e.g., "Editor", "Admin", "Viewer"), and users are assigned roles. It is simple to understand and manage, but can become rigid as the number of roles grows. ABAC evaluates attributes such as user department, resource sensitivity, time of day, and location to make access decisions. This is more flexible but harder to configure and audit because permissions are dynamic. ReBAC, often used in social platforms and collaborative tools, bases access on relationships between entities (e.g., a user can edit a document if they are the owner or a collaborator). It models real-world permissions well but can be complex to implement and audit manually. The table below compares these three models across key dimensions relevant to an authorization audit.

ModelStrengthsWeaknessesBest ForAudit Complexity
RBACSimple to understand; easy to audit role assignments; widely supportedRole explosion over time; difficult to handle fine-grained exceptionsEnterprise apps with stable roles; compliance-driven environmentsLow to Medium
ABACHighly flexible; dynamic policies based on context; granular controlComplex policy configuration; harder to predict access outcomes; audit logs can be largeCloud infrastructure; multi-tenant SaaS; regulated industriesHigh
ReBACModels real-world relationships naturally; supports delegation and sharingLess mature tooling; can be tricky to audit relationship chainsCollaboration tools; social networks; document managementMedium to High

For most teams, RBAC is the starting point. If your system uses RBAC, the audit focuses on role assignments and role definitions. For ABAC, you need to review policy conditions and evaluate whether attributes are still accurate (e.g., is the "department" attribute still correct for a user who moved teams last month?). ReBAC audits require examining relationship graphs to ensure that indirect access paths do not grant unintended permissions. In the checklist that follows, we provide general steps that apply to any model, with specific notes for each type. Now, let us move to the practical part: the 5-minute audit itself.

Step-by-Step Guide: Your 5-Minute Authorization Audit Checklist

This checklist is designed to be run in under ten minutes, focusing on the highest-risk areas. You will need access to your identity provider (IdP) or directory service (e.g., Okta, Azure AD, Google Workspace), your cloud provider's IAM console (e.g., AWS IAM, GCP IAM, Azure RBAC), and any application-level permission management interface. If you have a security information and event management (SIEM) tool or access review platform, that can help, but it is not required. The goal is to identify the most dangerous permission gaps quickly, not to perform a comprehensive review. Run this checklist weekly or bi-weekly for maximum effectiveness.

Step 1: Identify Dormant Accounts (2 minutes)

Navigate to your IdP or IAM console and list all users who have not logged in for 90 days or more. Many platforms provide a "last login" filter. Dormant accounts are a top attack vector because they are often forgotten but still hold permissions. If you find any, disable them immediately. Do not delete yet—keep them in a disabled state for a retention period (commonly 30-90 days) in case the user returns or the account is needed for a legal hold. Document the number of accounts disabled and the permissions they held. In one anonymized scenario, a team discovered that a service account created for a proof-of-concept project three years ago still had write access to a production database. The account had never been used after the first month. Disabling it eliminated a significant risk in under two minutes.

Step 2: Review Service Account Permissions (1.5 minutes)

Service accounts are often the most over-provisioned entities in any system. List all service accounts (or non-human identities) and check their permissions. Look for accounts with broad wildcard permissions (e.g., "*" on resources), administrative roles, or access to sensitive data stores. Ask: does this account need full access, or can it be scoped to specific actions and resources? Many teams find that service accounts originally created with full access can be restricted to read-only or specific API calls. If you are unsure about a service account's purpose, check the creation date, the creator, and any documentation. If none exists, consider disabling it temporarily and monitoring for alerts. This step alone can reduce your attack surface significantly.

Step 3: Check Role Hierarchy and Inheritance (1 minute)

In RBAC systems, roles can inherit permissions from parent roles. This is convenient but can lead to unintended privilege escalation. For example, a "Viewer" role might inherit from a "User" role, which itself inherits from an "Editor" role if the hierarchy is misconfigured. Review your role hierarchy and ensure that inheritance only flows logically. Check that no role has more permissions than intended. In ABAC systems, review policy conditions to ensure that attributes like "department" or "location" are correctly mapped. A common mistake is that a policy grants access to "all resources tagged as internal" without excluding sensitive sub-resources. This step catches configuration errors that are hard to spot in day-to-day operations.

Step 4: Audit Privileged Access Grants (1 minute)

Focus on users who hold administrative or highly privileged roles (e.g., "Admin", "Super Admin", "Owner", "System Administrator"). Verify that each person still requires that level of access. Many teams grant admin access during onboarding as a default, but never review it. Look for users who have admin access to multiple systems—a practice often called "super admin accumulation." If you find any, downgrade their role to the minimum needed for their current responsibilities. This step is especially important after organizational changes like team restructuring, acquisitions, or departures. Document the changes and schedule a follow-up review in 30 days.

Step 5: Verify Separation of Duties (1 minute)

Separation of duties (SoD) means that no single user should have conflicting permissions that could allow them to perform unauthorized actions. For example, a user who can approve purchase orders should not also be able to create vendors. In a technical context, a developer should not have the ability to both write code and deploy it to production without a review. Check for users who have permissions that could be combined to bypass controls. Common SoD violations include users with both read and write access to financial data, or users who can create new users and also assign roles. If you find any conflicts, either remove one permission or implement an approval workflow. SoD is a critical control for compliance with standards like SOX and PCI DSS, but it also reduces the risk of internal fraud and errors.

Step 6: Review Permission Inheritance on Shared Resources (30 seconds)

In cloud environments, resources like S3 buckets, Azure storage accounts, or GCP Cloud Storage can inherit permissions from parent projects or organizations. Check that no sensitive resource is publicly accessible or accessible to a wider group than intended. Use tools like AWS Trusted Advisor or GCP Security Command Center to identify public buckets quickly. Even if a resource is not public, check that it is not inherited by a group that includes too many users. This step is fast but catches some of the most dangerous misconfigurations, such as an S3 bucket with customer data accidentally exposed to the entire organization.

Step 7: Document and Schedule Follow-Ups (30 seconds)

After running the checklist, document what you found: number of dormant accounts disabled, service accounts restricted, roles downgraded, and SoD violations corrected. Set a calendar reminder for your next audit in one week (or two weeks, depending on your risk tolerance). If you use an access review tool, create a recurring review template based on this checklist. Documentation ensures that the audit is not a one-off effort but becomes part of your regular security hygiene. Over time, you will notice trends—certain teams consistently over-provision access, or certain systems accumulate service accounts faster than others. Use this data to improve your onboarding and offboarding processes.

Real-World Scenarios: What the Audit Catches

Theoretical checklists are useful, but seeing how they apply to real situations makes the value concrete. Below are three anonymized, composite scenarios drawn from patterns we see across teams of different sizes and industries. Each scenario illustrates a common authorization gap and how the 5-minute audit would catch it.

Scenario 1: The Dormant Service Account with Production Access

A mid-sized SaaS company had a service account created two years ago for a data pipeline integration with a third-party analytics tool. The integration was decommissioned after six months, but the service account was never disabled. It still had full read and write access to the production database. During a routine security scan, an engineer noticed the account was still active. Running the 5-minute audit checklist, the team identified the account in Step 1 (dormant accounts) and Step 2 (service account permissions). They disabled the account and restricted the database permissions for all remaining service accounts. The risk was eliminated in under five minutes. This scenario is common because service accounts are often created with broad permissions and then forgotten after the project ends.

Scenario 2: The Over-Provisioned Developer Role

A growing e-commerce startup used a single "Developer" role for all engineering staff. Over time, the role accumulated permissions as different teams requested access for new features. By the time the startup had 30 engineers, the Developer role included permissions to delete production databases, modify IAM policies, and access all customer data. The 5-minute audit in Step 3 (role hierarchy and inheritance) and Step 4 (privileged access grants) revealed that 28 out of 30 developers had far more access than they needed. The team split the role into "Developer-ReadOnly", "Developer-Standard", and "Developer-Admin" with clear boundaries. They also implemented a process where admin-level access required manager approval and a time-bound justification. This reduced the attack surface dramatically and made future audits simpler.

Scenario 3: The Separation of Duties Gap in Finance Systems

A financial services company had a user who was both a system administrator and a financial report approver. While neither permission alone was problematic, the combination meant the user could modify transaction data and then approve the altered reports. This is a classic SoD violation. The 5-minute audit in Step 5 (separation of duties) flagged this because the user held roles in two different systems that, when combined, created a conflict. The team removed the user from one of the roles and implemented a policy that no single person could hold both permissions. This scenario highlights why cross-system visibility is important—SoD violations often span multiple applications. The audit caught it because the checklist prompts you to look for conflicting permissions across all systems you manage.

Common Questions and Answers About Authorization Audits

Teams often have similar questions when first implementing a regular authorization audit. Below are answers to the most common concerns, based on patterns we see across organizations.

How often should I run this audit?

For most teams, running the 5-minute checklist weekly is sufficient. High-risk environments (e.g., fintech, healthcare, or organizations handling sensitive data) may benefit from daily automated checks. The key is consistency—a weekly review catches issues before they become systemic. If you find that your audits consistently reveal zero issues, you can extend the interval to bi-weekly. Conversely, if you find multiple issues each week, consider adding additional checks or automating parts of the process.

What if I don't have access to an IdP or IAM console?

If you cannot access the identity provider or cloud IAM console, you are not the right person to run this audit. Escalate to the team member who has those permissions. In many organizations, the security or infrastructure team holds these credentials. If you are a developer or team lead, request read-only access to the IAM console for audit purposes, or ask the security team to run the checklist and share results. The audit is most effective when performed by someone with visibility into all permission sources.

Should I delete dormant accounts or just disable them?

Always disable first, then delete after a retention period. Disabling prevents access while preserving the account in case it is needed for forensic analysis, legal hold, or if the account belongs to a returning employee. A common retention period is 30-90 days, depending on your compliance requirements. After the retention period, you can safely delete the account. Document the deletion date and reason in your access log.

How do I handle service accounts that are still in use but over-provisioned?

This is a delicate balance. Disabling an active service account can break integrations. Instead, create a new service account with least privilege permissions, test it in a staging environment, then migrate the integration to use the new account. Once confirmed working, disable the old account. This approach ensures no downtime while reducing risk. Document the migration steps and schedule a follow-up to ensure the old account is eventually deleted.

What tooling can help automate this audit?

Several tools can automate parts of this checklist. Cloud providers offer native tools like AWS IAM Access Analyzer, GCP Recommender, and Azure AD Access Reviews. Third-party tools include Okta's access certification, SailPoint, and One Identity. Open-source options like OPA (Open Policy Agent) can enforce policies, but they require more setup. For a quick start, use your cloud provider's built-in tools combined with a manual checklist. Automation is great, but it is not a substitute for human judgment—especially when evaluating whether a permission is truly needed.

Conclusion: From Audit to Habit

Authorization audits do not have to be daunting. By focusing on the highest-risk areas—dormant accounts, over-provisioned service accounts, role hierarchy errors, privileged access grants, and separation of duties violations—you can significantly reduce your attack surface in under ten minutes per week. The key is consistency. A single audit catches immediate issues, but regular audits build a culture of least privilege. Over time, you will notice patterns: certain teams consistently over-provision access, certain systems accumulate service accounts faster than others, and certain roles drift from their original design. Use these patterns to improve your onboarding and offboarding processes, role definitions, and permission request workflows. The checklist we provided is a starting point, not a final destination. Adapt it to your organization's size, risk profile, and technology stack. If you are in a regulated industry, align the checklist with your compliance requirements. If you are a small startup, focus on the steps that address your biggest risks. The important thing is to start. Run the checklist today, document your findings, and schedule your next review. Over time, this 5-minute habit will become second nature, and your authorization posture will improve as a result. Remember, access is not a one-time decision—it is a continuous practice.

About the Author

This article was prepared by the editorial team for this publication. We focus on practical explanations and update articles when major practices change.

Last reviewed: May 2026

Share this article:

Comments (0)

No comments yet. Be the first to comment!