By NHI Mgmt Group Editorial TeamPublished 2025-09-11Domain: Governance & RiskSource: Cerbos

TL;DR: Uber’s “God View” story illustrates how broad internal access, brittle role checks, and weak auditability turn admin panels into privacy and compliance liabilities, according to Cerbos. The underlying problem is not bad users, but authorization models that cannot express context, constrain scope, or prove who saw what.


At a glance

What this is: This is an analysis of why internal tools become high-risk when authorization is coarse, embedded in code, and difficult to audit.

Why it matters: It matters because IAM, PAM, and governance teams need the same discipline for internal applications that they already apply to external-facing access, or broad employee trust will keep masking privilege abuse.

👉 Read Cerbos's guide to internal authorization and policy-based access control


Context

Internal tools often fail because they treat identity as a coarse role instead of a context-specific decision. In practice, that means an employee can be “support” in name while still seeing too much data, too broadly, for too long.

The governance gap is familiar across human IAM, not just in consumer-facing systems: broad permissions, weak evidence, and delayed review all create room for misuse. The relevant question is whether the application can express who should see which record, under what condition, and leave an auditable trail when it does.

For teams looking at this through a control lens, the pattern maps directly to privilege minimisation, policy decoupling, and decision logging. The lesson is not that internal tools are harmless, but that their convenience often hides the highest-risk access paths.


Key questions

Q: How should security teams govern access to sensitive data in internal tools?

A: Treat internal tools as high-risk systems when they expose personal, financial, or operational data. Use least-privilege policies that consider assignment, purpose, and resource scope, not just job title. Require central policy management and decision logging so access can be reviewed, defended, and revoked without changing application code.

Q: Why do broad support dashboards create security risk?

A: Broad support dashboards create risk because they let a user see far more data than the immediate task requires. That increases the chance of curiosity browsing, mistaken disclosure, and deliberate misuse. The control answer is to narrow access to the exact record or case in scope and to log every privileged view.

Q: What breaks when authorization logic stays in application code?

A: When authorization stays in application code, policy becomes hard to audit, hard to update, and easy to copy inconsistently across services. Security teams lose a single source of truth, and compliance teams cannot easily verify whether access rules match governance intent. Central policy control solves that operational blind spot.

Q: Who is accountable when an employee misuses internal access?

A: Accountability sits with the organisation if it granted broad access without sufficient controls, evidence, and review. A usable governance model must show who approved access, who exercised it, and what was logged. Without that chain, organisations cannot separate policy failure from individual misconduct.


Technical breakdown

Coarse role checks cannot express context-based access

Hard-coded checks such as user.role == 'support' are fast to ship but poor at representing real business rules. They answer the wrong question because role membership alone does not tell you whether the user is assigned to the ticket, the customer, the region, or the purpose. Modern authorization needs policy decisions that combine identity, action, resource, and context. When that logic lives in application code, every exception becomes another branch, every exception increases drift, and every review becomes a source-code exercise instead of a governance task.

Practical implication: move sensitive decisions out of application logic and into centrally managed policies that can evaluate context at request time.

Auditability fails when access decisions leave no durable evidence

A permission model is only defensible if it can show who accessed what, when, and why. Without immutable decision records, oversight teams cannot distinguish legitimate support work from curiosity browsing or malicious use. That problem is especially severe in internal tooling, where broad trust often replaces technical enforcement. Audit trails should capture the principal, the resource, the action, the policy decision, and the justification signal. Anything less leaves compliance, incident response, and HR investigations operating on assumptions rather than evidence.

Practical implication: require decision logging for every privileged data view, export, and deletion path before expanding internal access further.

Decoupled policy engines reduce authorization drift

When authorization is embedded directly in code, policy and application release cycles become coupled. That means a simple access change can require engineering time, testing effort, and deployment risk, which encourages teams to leave broad permissions in place. A decoupled policy engine reverses that pattern by letting rules be versioned, reviewed, and tested separately from the application. It also creates a common control plane for different services, so security and compliance can reason about access consistently across the stack.

Practical implication: standardise policy as code for sensitive applications so access changes do not depend on code redeployments.


NHI Mgmt Group analysis

Broad internal access is a governance failure, not a convenience feature. The God View pattern shows what happens when organisations treat internal access as inherently lower risk than customer-facing access. That assumption fails because internal users can still misuse broad visibility, and the business impact is the same privacy breach, reputational damage, and regulatory exposure. The implication is that internal tools need the same least-privilege discipline as any other high-value system.

Hard-coded authorization creates invisible policy debt. When access rules live inside application code, governance loses visibility into what is actually allowed. Review becomes slow, exception-heavy, and dependent on engineering translation, which means policy changes lag business intent. This is exactly the sort of control gap that turns a temporary shortcut into a durable exposure.

Unlogged access is indistinguishable from legitimate use until damage is done. If an organisation cannot prove who queried a sensitive record and why, it cannot enforce accountability. That makes auditability a core control, not a compliance afterthought, because oversight without evidence is only a narrative.

Dynamic authorization is the named concept this case makes unavoidable. The real problem is not that employees exist inside the perimeter. It is that static roles and embedded checks cannot reliably answer context-specific questions about purpose, assignment, and scope. Practitioners should read this as a signal that authorization must become a runtime governance control, not a code convention.

From our research:

  • 96% of organisations store secrets outside of secrets managers in vulnerable locations including code, config files, and CI/CD tools, according to the Ultimate Guide to NHIs.
  • 91.6% of secrets remain valid five days after the targeted organisation is notified, which shows how often remediation windows stay open long after discovery.
  • For a related view on internal access failures, see Schneider Electric credentials breach, which shows how exposed credentials can turn routine access into a broad data-loss event.

What this signals

Policy drift is now a programme issue, not just an application issue. Once access rules are duplicated across services, every exception becomes a governance liability and every review becomes slower. Teams should expect internal tools to become the first place where authorization debt surfaces, especially where sensitive data, export functions, or admin consoles still rely on hard-coded checks.

Access auditability is becoming a minimum viable control for internal applications. If a platform cannot explain who saw what and why, it will struggle under incident response, privacy review, and compliance scrutiny. The practical shift is toward central policy layers, immutable decision logs, and narrower task-scoped access for operational roles.

Runtime authorization is the concept that should anchor the next control refresh. The organisations that will cope best are the ones that stop treating internal trust as a default and start treating every sensitive action as a decision. That aligns naturally with NIST Cybersecurity Framework 2.0 and with a more defensible identity governance posture.


For practitioners

  • Map your internal God View systems Inventory admin panels, support dashboards, export tools, and operational consoles that expose sensitive user or customer data. Rank them by breadth of access, not by business unit ownership, and identify where one role can still see many records without a task-specific justification.
  • Replace coarse roles with context-aware policy Move the highest-risk decisions to centrally managed rules that can evaluate ticket assignment, customer ownership, region, and purpose at request time. Keep the policy human-readable so security, legal, and operations can review it without reading application code.
  • Log every privileged data decision Record principal, action, resource, policy outcome, and justification for views, exports, and deletes. Make the logs durable and reviewable so misuse is detectable after the fact instead of inferred from user complaints.
  • Start with one high-risk action Pick a single sensitive action such as viewing personal information or exporting a record set, then remove its authorization logic from the application and place it in a decoupled policy layer. Prove the pattern before expanding it across the platform.

Key takeaways

  • Internal admin tools become breach-prone when broad roles replace context-based authorization and leave too much data visible to too many people.
  • The governance weakness is not just overexposure, but the lack of durable evidence that can prove who accessed sensitive records and why.
  • Moving sensitive decisions into centrally managed policy and logging every privileged action is the practical way to reduce both misuse and accountability gaps.

Standards & Framework Alignment

This section maps relevant standards and security frameworks to the operational risks and controls described in this guidance.

NIST CSF 2.0, NIST CSF 2.0 and NIST CSF 2.0 set the governance and control requirements practitioners need to meet.

FrameworkControl / ReferenceRelevance
NIST CSF 2.0PR.AC-4Supports access control decisions based on least privilege and need-to-know.
NIST CSF 2.0DE.CM-8Audit logs are needed to detect misuse of privileged internal access.
NIST CSF 2.0GV.PO-1Central policy management aligns authorization with governance intent.

Define policy ownership and review cycles so application teams do not create silent authorization drift.


Key terms

  • Context-based authorization: A decision model that evaluates who is asking, what they want to do, which resource is involved, and under what conditions. It is stronger than role-only access because it can limit internal users to the exact record, action, or situation that the business case allows.
  • Policy as code: The practice of writing access rules in version-controlled, testable policy files rather than embedding them directly in application logic. This makes review, change control, and audit much easier while reducing the risk of inconsistent permissions across services.
  • Decision logging: A record of each authorization decision, including the actor, resource, action, outcome, and justification. In identity governance, it creates evidence that access was evaluated and enforced, rather than assumed, which is essential for investigations and compliance review.
  • Privilege creep: The gradual accumulation of access beyond what a person or service truly needs. In internal tools, it often appears when convenience-based permissions are never revisited, creating broad visibility and making misuse harder to detect or defend.

Deepen your knowledge

NHI governance, machine identity security, and identity lifecycle management are core topics in our NHI Foundation Level course, the industry's only accredited NHI security programme. If you are responsible for identity security strategy or governance maturity, it is worth exploring.

This post draws on content published by Cerbos: a guide to reducing internal-tool risk through policy-based authorization. Read the original.

NHIMG Editorial Note
Published by the NHIMG editorial team on 2025-09-11.
NHI Mgmt Group — the independent authority on Non-Human Identity, IAM, and Agentic AI security. nhimg.org