The moment teams move from one cloud to two, identity governance starts to fracture. Roles don’t translate cleanly, and access reviews lag behind deployment velocity. Multi-cloud identity management is the practice of controlling who can access what across AWS, Azure, GCP, Kubernetes, SaaS tools, databases, and other cloud-connected systems.
Multi-cloud identity management gives teams a consistent way to manage identities, enforce least privilege, approve access, and revoke permissions across environments that were never designed to work the same way.
In practice, multi-cloud identity management is not only about authentication. It is about governing privileged access consistently across every cloud, cluster, database, and application.
That consistency matters. In a recent CSA survey, three of the top four causes of cloud-related breaches were identity-related: excessive permissions (31%), inconsistent access controls (27%), and weak identity hygiene (27%).
For DevOps and security teams, engineers need fast access to ship and troubleshoot, but standing permissions create unnecessary risk. These best practices show how to bring multi-cloud access back under control.
Multi-cloud identity management is the practice of controlling who can access what across AWS, Azure, GCP, Kubernetes, SaaS tools, databases, and other cloud-connected systems.
For DevOps and security teams, the goal is to enforce least privilege consistently across environments that were never designed to work the same way, without slowing engineers down.
A strong strategy centralizes access intent: who needs access, to which resource, for what purpose, under what approval conditions, and for how long. Enforcement still happens through each provider’s native IAM controls, but governance becomes consistent across environments. Teams can apply the same least-privilege standards without manually translating every access decision across platforms.
This is where native cloud IAM and multi-cloud identity management diverge. Native IAM and authorization tools govern access within their own platforms. Multi-cloud identity management governs consistency across providers, clusters, applications, databases, and data systems.
It helps answer questions that individual IAM tools can’t answer alone:
In practice, strong multi-cloud identity management depends on visibility, automation, and time-bound access. Teams need to discover privileges across environments, automate approvals and revocations, and replace static permissions with Just-In-Time access wherever possible. That reduces access risk without forcing engineers back into slow ticket queues.
For cloud-native teams, the goal is not just to centralize identity. It is to eliminate standing privilege across every environment and to create access only when needed, for as long as needed.

Each cloud provider was designed with its own permission philosophy. Because these models aren’t semantically equivalent, teams can’t enforce least privilege across AWS, Azure, GCP, Kubernetes, databases, and SaaS tools by simply copying roles between platforms.
Manual access management amplifies the problem. When engineers request access via tickets or spreadsheets, approvals become informal and inconsistent. Review cycles lag behind infrastructure changes. Under delivery pressure, broad roles get granted “temporarily” and never revisited. In multi-cloud environments, standing privilege compounds quickly across providers.
Governance, risk, and compliance add another layer of strain. Audit logs are spread across AWS CloudTrail, Azure Monitor, GCP Audit Logs, Kubernetes audit events, and SaaS activity feeds. Approval evidence may be buried in email threads or ticketing systems. When auditors ask who had access to production data during a specific window, teams often have to stitch together evidence from multiple control planes.
The hardest risks are often cross-system paths. A developer may authenticate through an IdP, assume an AWS role, access a Kubernetes cluster, query a production database, and trigger a CI/CD workflow from the same session.
Together, they can create a privileged path that no single native cloud IAM console will fully expose.
| Access problem | What happens in multi-cloud environments | Better approach |
| Standing admin roles | Privilege accumulates across AWS, Azure, GCP, and Kubernetes | Use JIT, auto-expiring access |
| Local cloud users | Identities drift from the source of truth | Use federated identity and lifecycle automation |
| Manual approvals | Tickets and ad hoc Slack requests create inconsistent evidence | Use policy-based access workflows |
| Fragmented logs | Audit evidence is spread across multiple systems | Centralize approval, grant, activity, and revocation logs |
| Over-permissioned service accounts | Automation gets broad access that is rarely reviewed | Use just-enough access and short-lived credentials |
Multi-cloud identity management often starts with privilege discovery: identifying who has access, what access is unused, and where accounts are overprivileged before teams can right-size permissions.
In multi-cloud environments, risk often lurks in the gaps between platforms. Reviewing AWS IAM, Azure RBAC, or GCP roles independently gives you only a partial view of privilege.
What matters is effective access across providers: who can access production data, how that access affects cloud data security, and whether infrastructure can be modified or privileged roles assumed when entitlements are combined.
Centralizing identity visibility means aggregating identity and entitlement data across clouds, clusters, databases, and SaaS tools so you can evaluate exposure across the full access path, not platform by platform.
Federation moves authentication to a single authoritative identity provider so access changes and deprovisioning events propagate consistently. When someone leaves or changes roles, federated access should be removed across every connected environment, while local users, service accounts, and break-glass accounts should be governed separately.
Separate local users in AWS, Azure, GCP, and SaaS platforms inevitably drift out of sync with real-world role changes. Minimize local cloud users wherever possible, tightly govern unavoidable break-glass accounts, enforce MFA through the identity provider, and automate lifecycle updates.
Each cloud provider handles permissions differently, making it risky to copy roles between platforms. A role labeled “admin” in one platform does not necessarily translate cleanly into another.
Standardizing access means defining intent: what production write, infrastructure management, or data access should actually include. Then, map that intent to provider-native constructs.
Governance should live above individual IAM systems, even if enforcement happens within them. Build a common access taxonomy, such as read-only, production read, production write, admin, break-glass, and vendor access. Then map those access levels to provider-native roles instead of copying role names across clouds.
Just-In-Time access reframes elevation as temporary and contextual. Instead of granting enduring admin rights, organizations provide time-bound access for specific tasks, with automatic expiration. This narrows the window in which compromised credentials can be abused.
JIT access is how teams move toward Zero Standing Privilege. Instead of assigning admin, production, or database permissions permanently, access is created only when there is a valid reason, approved through policy, and removed automatically when the session expires.
For non-human identities, focus on just-enough access: each workload, service account, CI/CD role, and automation token should have only the permissions required for its specific function. Where possible, replace long-lived credentials with short-lived tokens and scope access to the workload, environment, and pipeline stage.
Least privilege means giving people only the permissions they need to do their work. It breaks down quietly in multi-cloud environments because trust becomes portable. When someone is trusted in one production environment, teams often extend similar authority elsewhere.
Over time, those assumptions flatten boundaries between providers. Regularly compare assigned roles with actual activity and remove access that has not been used for 30–60 days.
| Best practice | What to do |
| 1. Centralize identity visibility | Aggregate identity and entitlement data across clouds, clusters, databases, and SaaS tools to see effective access across the full path. |
| 2. Use federated identity and SSO | Use one authoritative IdP, minimize local users, govern break-glass accounts, enforce MFA, and automate lifecycle updates. |
| 3. Standardize access policies | Define access intent centrally, then map it to provider-native roles instead of copying role names across clouds. |
| 4. Eliminate standing privileges with JIT access | Grant time-bound access only when needed, with policy-based approval and automatic expiration. Use just-enough access for non-human identities. |
| 5. Enforce least privilege for human identities | Compare assigned roles against actual activity and remove access that hasn’t been used in 30–60 days. |
| 6. Secure non-human identities | Inventory service accounts, CI roles, workload identities, and machine credentials. Replace long-lived secrets with short-lived tokens where possible. |
| 7. Automate access workflows | Automate requests, approvals, provisioning, and revocation through tools engineers already use, such as Slack, Teams, CLI, or developer platforms. |
| 8. Audit and remove excess access | Use activity data and continuous risk monitoring to detect stale, excessive, or high-risk access. |
| 9. Create controlled break-glass access | Define emergency access paths with time-bound activation, justification, audit logs, and automatic expiration. |
| 10. Map controls to compliance | Correlate approvals, grants, activity logs, and revocation events into one audit trail across every provider. |
Securing non-human identities means governing the machine credentials that power automation across your cloud stack. CI roles, workload identities, Kubernetes service accounts, and SaaS integrations routinely execute actions across providers. If over-permissioned, they create rapid and silent escalation paths.
Continuously inventory machine identities, replace long-lived secrets with short-lived tokens where possible, and scope permissions to the specific workload, environment, or pipeline stage they support.
Manual processes introduce delay and inconsistency. Under pressure, teams grant broader access than necessary to avoid repeated friction.
The practical shift is to move access control into automated, policy-backed workflows that provision and revoke permissions programmatically. Define approval rules in advance, embed access requests into tools engineers already use, such as Slack, Teams, CLI, or internal developer platforms, and grant permissions automatically when policy conditions are met.
For cloud-native teams, the goal is not another approval portal. It is to replace legacy PAM workflows with contextual, automated access that fits how engineers already work.
Multi-cloud access accumulates through migrations, troubleshooting, and shifting responsibilities. Permissions granted during one project often linger into the next, and multi-cloud environments make stale access harder to spot.
Review permissions against actual usage data, not just assigned roles. You can use continuous risk monitoring to detect stale, excessive, or high-risk access. Remove access that has not been used in 30–60 days, and prioritize high-risk permissions such as IAM modification, secret access, production database access, and Kubernetes admin rights.
Break-glass access means defining pre-approved, high-privilege access paths that can be activated during incidents without granting permanent admin power. In multi-cloud environments, outages can span providers, so teams may default to giving on-call engineers standing super-admin rights “just in case.”
The safer approach is to design emergency elevation deliberately. Define which roles constitute true incident-level access in each cloud, gate them behind time-bound activation, require explicit justification at the moment of use, and ensure automatic expiration once the incident window closes.
Compliance and data governance become difficult in multi-cloud environments because audit evidence is scattered across multiple logging systems. Without centralized enforcement and traceability, proving control becomes reactive and manual.
Correlate approvals, access grants, activity logs, and revocation events into a single audit trail. The goal is to answer who accessed what, when, why access was approved, and when it expired across every provider.
For example, Caris Life Sciences used Apono to manage secure access to sensitive health data across hybrid on-prem and AWS environments, including granular access to S3 buckets and folder-level resources.

Multi-cloud identity management fails when access decisions are manual, inconsistent, and built around standing permissions. As environments expand, privilege becomes harder to see, harder to govern, and easier to overgrant. The goal isn’t just to manage more identities. It’s to enforce least privilege everywhere without slowing the teams building, deploying, and troubleshooting production systems.
Apono helps cloud-native teams eliminate standing privileges across AWS, Azure, GCP, Kubernetes, databases, and supported SaaS platforms. Instead of relying on static roles, ticket queues, and manual approvals, Apono creates granular Just-In-Time access that expires automatically when the work is done.
Developers request access through Slack, Teams, or CLI. Security and DevOps teams get centralized visibility into who accessed what, why access was approved, when it expires, and what actions were taken.Assess your multi-cloud access posture. Book a meeting with Apono to see where standing privileges, unused access, and overprivileged accounts create risk across your cloud stack.
Everyone uses developer tools to get through the day. A JSONFormatter to inspect an API response, or a JWT decoder when you need to inspect a token quickly. In most engineering teams, these tools are treated as harmless productivity aids.
In November 2025, researchers discovered that JSONFormatter and CodeBeautify had been storing everything users pasted into them via a save feature that generated shareable links with fully predictable URL structures. A simple crawler could retrieve all of them.
They found over 80,000 files containing passwords, AWS credentials, Active Directory credentials, database connection strings, SSH session recordings, and API keys. Nowadays, developer tooling is part of the identity plane. The organizations leaving this data exposed spanned government, critical infrastructure, finance, healthcare, and cybersecurity. When they uploaded fake AWS keys to one of the tools, bad actors attempted to use them within 48 hours. The data was actively being scraped.
The problem was that developers had been routinely pasting credentials into a public website while debugging, because that’s just what you do when you need to read a JSON blob quickly. In fast-moving engineering environments, developers will always reach for whatever gets the job done. You can’t govern your way out of that behavior, and trying to control every tool a developer touches is a losing proposition.
Instead, organizations should ask themselves if their identity and access policies account for where credentials end up. Not just the identities your IAM was written for, but for the tools those identities are touching each day.

Even a simple JSON formatting website can improperly collect and store sensitive credentials. The tool doesn’t have to be malicious for the outcome to be. The moment a token, session, or credential is exposed outside the environment it was meant for, the attacker is no longer dealing with a hardened perimeter. They are holding valid access.
Once a token or credential is out in the open, an attacker has everything they need to start moving up the privilege chain:
The JSON Formatter website is just one example. The same dynamic exists across browser extensions, clipboard managers, AI coding assistants, debugging tools, local config files, and anything else that can touch sensitive developer context. Modern engineering work spreads identity across a wide toolchain—including non-human identities like service accounts and automation credentials—and attackers only need one weak point in that chain.
In practice, that sensitive context shows up in more places than most teams like to admit: local AWS profiles, kubeconfigs, copied JWTs, CI logs, shell history, IDE extensions, browser storage, temporary files, session cookies, and AI prompt history. None of those systems were intended to be the place where identity risk is managed, but all of them can become the place where it is exposed.

What makes this particularly hard to detect is that stolen tokens initially look like legitimate API calls. There is no exploit payload or unusual request pattern that will trigger signature-based detection flags. The attacker, from the system’s perspective, is just a developer doing their job.
Most developers hold standing, persistent access to sensitive infrastructure because they need it regularly. It’s the path of least resistance when you’re working across production systems and IT operations analysis in a fast-moving engineering environment.
But a compromised token gives the attacker everything that token was already authorized to do. If a developer’s GitHub token has broad repository access and can trigger production deployments, an attacker with that token inherits that capability exactly. They don’t need to resort to privilege escalation; standing access turns every exposed credential into a pre-approved blast radius.
This is where least privilege often breaks down in practice. Teams may have IAM policies, role structures, and approval processes on paper, but permissions still accumulate over time because modern engineering work changes too quickly for manual access models to keep up.
Traditional IAM was built for a different environment. It assumes identities are centrally managed and that you’re defending a well-defined perimeter. These tools are designed to control who can authenticate and what an authenticated identity is allowed to do.
But most developers now work across a messy chain of local tools, cloud roles, orchestration layers, and delivery systems. On any given day, a developer may touch their IDE, Kubernetes contexts, GitHub, a CI dashboard, and a secrets manager. Each handoff creates another place where valid identity material can be exposed, copied, cached, or reused.
IAM policies govern what an authenticated identity can do. They say nothing about how that identity’s credentials might be harvested before the authentication handshake. The JSONFormatter attack doesn’t beat your IAM policy; it just steals the credentials that authenticate to it. Role-based access control, SSO, and MFA are all valuable controls, but they were all designed to govern access at the boundary. When an attacker is already operating inside that boundary using valid credentials, those controls offer limited protection.
The deeper problem is that IAM programs were designed around the assumption that access is a relatively static thing to manage. Security programs that can’t keep pace with the dynamic nature of modern engineering will always be working from an outdated access model.
There is an architectural solution to this problem, but it is not layering stricter policies on top of a broken access model. It is to make access less durable, less transferable, and less valuable when it leaks. That means shifting away from standing permissions and toward time-bound, task-scoped access that expires automatically.
Just-in-time (JIT) access ensures credentials only exist for a narrow task, for a limited period, and against clearly defined resources. Even when a token or session is exposed, the attacker’s opportunity is smaller, and the blast radius is easier to contain.
The key is making that model usable in real engineering work. Access needs to be self-serve enough for on-call and operational tasks, but still policy-controlled. Expiration needs to be automatic, not dependent on manual cleanup. Approvals should appear where risk justifies them, not as a blanket slowdown for every request. And every grant should be visible in a reliable audit trail.
That is the shift many teams still have not made. They treat privileged access as an exception workflow when it should be an operating model. Ultimately, JIT is not a replacement for identity governance or privileged access management. It is the operating model that makes least privilege workable in fast-moving engineering environments.

If engineers have to fight a slow approval chain every time they need production access, they will look for workarounds. Good JIT implementations cut that friction down enough that teams can use them during normal work.
Context-aware policy can sit further upstream, adding a check before access is granted at all, which is an essential control for supply chain risk management. JIT answers how long access should exist. Context-aware controls help answer whether this request makes sense right now. If someone is requesting access from an unusual location or in a way that does not match normal behavior, the request can be blocked before just-in-time access is granted. This is a fundamentally different posture than the “grant and forget” model that most engineering organizations have slipped into over time.
The JSONFormatter incident will not be the last case of a trusted developer tool turning into an identity risk. If anything, it is an early signal of where this problem is heading. As engineering organizations rely more heavily on AI assistants, local automation, browser-based tooling, and machine identities, more systems will act on behalf of developers and production operators.

You need to be thinking beyond what the developer can reach, to what their plugins, local environments, and AI-assisted tooling can reach on their behalf. Security teams should stop asking only who has access and start asking where that access can travel. Standing permissions are impossible to justify in these environments. The more tools that can touch identity, the less acceptable it is for powerful permissions to remain broadly available and continuously valid.
The answer is not to slow engineers down or force them through brittle manual controls. It is to make access short-lived, contextual, and automatically reversible by default. In an environment where every developer convenience can become an identity exposure point, reducing standing access is no longer just good hygiene. It is one of the clearest ways to reduce blast radius without slowing delivery.
Developer tooling is now part of the identity attack surface, which means securing access can no longer stop at the login layer. Apono helps security teams replace standing access with just-in-time, policy-controlled access across cloud, Kubernetes, databases, and developer infrastructure. The result is that leaked credentials are less useful, access is easier to govern, and the blast radius is dramatically reduced. With Apono, teams can enable self-serve, granular access through Slack, Teams, or the CLI, with auto-expiring permissions and break-glass workflows. Download Why Standing Access Keeps Causing Breaches: A Practical Guide to Continuous Least Privilege to see how leading teams reduce standing access and contain identity risk. Or, book a demo to see how Apono enforces just-in-time access in practice.
There’s never a good time to lose a production database, but losing one to your own AI coding agent on a Friday afternoon has to rank near the bottom of the list.
That’s the backdrop to the PocketOS incident, and it’s the clearest case yet for why AI agent security and intent-based access control belong at the top of every cloud security roadmap this year.
Founder Jer Crane’s full account is worth reading, but the short version is this:
The flashy parts have already been covered, including the agent’s written confession and Railway’s questionable backup architecture. The more useful question is how an agent that was working in staging ended up taking down production at all.
It’s tempting to frame this as “the token had too many privileges, fix the token, problem solved.” Stopping there misses what makes agentic AI different.
Two things had to be true for nine seconds of catastrophe.
First, an over-privileged credential was sitting in a config file. The token had been created for the narrow purpose of managing custom domains through the Railway CLI, but it carried blanket authority across the entire Railway API, including destructive operations.
Second, an agent decided, on its own, that calling volumeDelete was a reasonable response to a credential mismatch in staging. No human asked it to and no prompt instructed it, but the agent encountered friction, optimized for task completion, and chose the most direct path it could reason its way to.
Take away either condition and the incident doesn’t happen.
The PocketOS agent is a textbook example of what we’ve written about before as the overreach failure mode in agentic AI security.
Agents are mission-driven and optimize for task completion. If the objective is “solve the problem,” they may take increasingly aggressive actions that look logical in isolation but are destructive in context.
What they’re missing:
Imagine you’re trying to turn off a light but can’t find the switch. You’d try reasonable solutions, look for another switch, ask someone, maybe unscrew the bulb. You’d never burn the house down to make sure the light went out, because you understand the consequences are wildly disproportionate to the goal.
An agent might.
That’s effectively what happened here. The agent hit friction, treated it as a problem to solve, and reached for the most direct API it could find, which made the path entirely logical from its perspective even though it was insane from every other one.
This is the core risk in agentic AI security: non-deterministic, mission-driven software operating with static privileges.
It’s not a one-off either. Anthropic’s own testing on Claude Opus 4.6 found that when the model hit roadblocks getting the access it needed, it went looking for hardcoded credentials and Slack tokens elsewhere in the environment. Different model, different scenario, same overreach pattern.
When asked to explain itself, the PocketOS agent enumerated the safety rules it had been given and admitted to violating every one of them.
That’s worth sitting with for a moment, because the internal guardrails were clearly present and the model could even articulate them after the fact, but none of that prevented the deletion.
The controls inside an agent’s own context window are not, and probably cannot be, the layer that prevents catastrophic action. You need an outside layer the agent cannot reason its way around.
That’s the gap Apono Agent Privilege Guard is built to close.

The premise is straightforward: no agent holds standing privileges to sensitive resources. Instead, every privilege is created dynamically at the moment the agent needs it. Each privilege is:
The result is an agent that can only do what you actually want it to do. Even if it decides on its own to escalate, it has no broader privileges available to escalate into.
Apply that model to the PocketOS chain and the blast radius collapses at three checkpoints.
At the credential checkpoint, the long-lived token in the config file simply doesn’t exist as a standing privilege. The agent has no blank-check credential to discover and reuse.
At the intent checkpoint, the agent has to declare what it’s trying to do before any privilege is issued. “Fix a credential mismatch in staging” and “delete a production volume” are different categories with different risk profiles. The mismatch between stated intent and attempted action gets caught before it becomes destruction.
At the human-in-the-loop checkpoint, sensitive operations against production trigger a Slack approval before they execute. An engineer sees the actual command, the actual target, and the actual reasoning.
The deletion takes nine seconds and a Slack approval takes ten, which means that ten-second window is the entire difference between a normal afternoon and a thirty-hour recovery effort.
Copilots and coding agents are already running inside your engineering org, with tools like GitHub Copilot, Cursor, Claude Code, and Cline calling APIs as your engineers and inheriting your engineers’ privileges, and most security teams have very little visibility into any of it.
PocketOS is the headline this week, but it’s far from the first:
The mechanism changes every cycle but the underlying exposure never does, because we keep giving non-deterministic systems deterministic privileges and hoping the model has the judgment to use them well.
It doesn’t take a malicious actor to set the house on fire. It takes three things:
The fix isn’t to panic about AI agents. It’s to assume agents will sometimes try to do crazy things on their own, and to make every privilege grant temporary, scoped, intent-driven, and approved by a human when the stakes warrant it.
That’s what Zero Standing Privileges means in practice for the agentic era, and it’s the bar every security program should now be building toward.
If this is the week your team starts rethinking how agents get their privileges, our white paper Securing the Agentic Enterprise: How Intent-Based Privilege Controls Make AI Agents Safe Enough to Deploy goes deeper on the failure modes covered here, the Kiro and Replit incidents, and the architectural shift from static IAM to intent-based access controls.

As more organizations move past experimentation and start planning real AI agent deployments, the same set of concerns keeps surfacing in our conversations with security teams. Whether the worry is a shadow agent that shows up uninvited or a sanctioned agent going rogue, the questions tend to cluster around control:
These are the right questions to be asking, and they share a common answer that’s more concrete than most people expect.
AI agents are only as dangerous as the privileges they can reach. Move to a Zero Standing Privileges model, route every privilege request through a single control plane that grants access just-in-time and just-enough for the task, and most of the worry goes with them.
That’s the whole game. Let’s unpack why it works.
The concerns above feel scary because they show up in real, painful ways. Three patterns we see again and again:
Shadow agents. Your engineers are running Copilot, Cursor, and Claude Code right now. Those tools inherit your developers’ full credentials, and most security teams have very little visibility into what they’re actually doing on their behalf.
We wrote about why static privilege models break down in this world in more detail here.
Agents that can burn the house down. Amazon’s own AI coding tool caused a 13-hour AWS outage. Their postmortem said the quiet part out loud: it was a privilege problem.
The agent had broader permissions than anyone realized, and once it went sideways there was nothing in place to slow it down. Replit’s coding agent did something similar to a production database earlier in the year.
Social engineering of agents. Agents trust their inputs. They can be manipulated through prompt injection, hallucinate their way into bad decisions, or get tricked into actions they were never supposed to take.
And they do it at machine speed, against real systems, with real consequences.
Notice what these have in common. The danger isn’t really the agent. It’s what the agent can reach.
Here’s a thought experiment. Take away every privilege an agent has. What damage can it do?
None. It’s a chatbot that can’t touch anything.
Now hand it admin credentials to your production database. Now what?
This is why privilege is the place where security teams have the most leverage. Trying to control agent behavior at the agent layer is a fight without an end.
There are too many agents, too many models, too many ways they can be manipulated, and the field is moving too fast for that approach to hold up over time.
Privileges, on the other hand, are concrete. They live in your cloud, your databases, your code repos. You already know how to manage them. The shift is in how you grant them.

Our 2026 State of Agentic AI Cyber Risk Report found that 98% of security leaders have slowed agent deployments because of exactly these concerns.
They’re not being paranoid. They’re being responsible. The controls they have today were never designed for identities that act autonomously, at machine speed, on non-deterministic inputs. The encouraging part is that the missing piece, runtime privilege control, is something you can put in place now.
When privilege itself is created at runtime, scoped to the task, and destroyed the moment the work is done, you get ephemeral credentials granted just-in-time and just-enough for the work at hand. That shifts the agent risk story in some important ways:
This is also why the rogue AI agent scenario gets a lot less terrifying in practice. An agent that’s been manipulated or hallucinates its way into a destructive request still has to come through us to actually do anything.
Intent-based access control compares what the agent is asking for against what it said it was trying to do. If the request doesn’t match that declared intent, or if it crosses a sensitivity threshold, a human sees it before it executes. The blast radius collapses to whatever the agent legitimately needed in this moment, and nothing more.
The agent ends up being able to do more, not less, because the guardrail is intelligent rather than binary.

You don’t need to wrangle every agent that shows up in your environment. You need to make sure the only path to anything sensitive runs through a control plane that understands what’s being asked and why.
Eliminate standing privileges, control privilege at runtime based on actual intent and risk, and you defuse the shadow AI agent problem before it has a chance to hurt you.
That’s what lets your team stop blocking agent deployments and start enabling them. The way to win with AI isn’t to slow it down. It’s to give it the right rails to run on.
AI agents are moving fast, but sensitive access should not be left to chance. Book a personalized assessment with Apono to identify where agent privileges may be creating hidden risk and how to put the right runtime controls in place before they become a security problem.
Security teams are losing the battle to secure non-human identities (NHIs) for one simple reason: machine identities are now created inside the systems that ship software. They appear in CI/CD pipelines, Kubernetes workloads, SaaS integrations, and AI-driven workflows faster than central IAM teams can inventory or review them.
The problem is not just visibility. It’s that many of these identities keep more access than they need, for longer than they need it. In cloud-native environments, that turns over-scoped service accounts, CI roles, and automation tokens into persistent runtime risk. Securing non-human identities requires a shift from static governance to continuously discovered, just-enough access, with time-bound permissions enforced at the moment of execution.
Most discussions of NHIs focus on growth. But the bigger issue is that cloud-native systems have made identity creation part of delivery.
Kubernetes introduced service accounts tied to workloads. CI/CD pipelines began assuming IAM roles automatically. Infrastructure-as-code embedded identity creation directly into deployment logic. SaaS platforms normalized OAuth integrations and API tokens for everything.
Still, identity creation was visible enough that teams could at least somewhat track it. AI has made that visibility harder to maintain. In copilots, agents, inference endpoints, and event-driven workflows, identity is now generated rapidly as part of execution.
So, the other half of the problem is velocity. In modern environments, machine identities are:
Identity issuance has moved from centralized IAM teams into codebases, pipelines, and autonomous systems that developers iterate on daily. In that shift, identity stopped being a centrally managed admin object and became a runtime artifact generated inside delivery systems. That matters because security teams are no longer just dealing with identity growth; they’re dealing with privileged access they may not discover until it becomes one of the biggest risks of NHIs.

A few years back, when machine identities were relatively stable, compromise required persistence. An attacker needed long-lived credentials, privileged access that went unnoticed, or lateral movement through misconfigured infrastructure.
The explosion of automation means credentials are continuously minted, exercised, and rotated. That’s the shift many enterprises are only beginning to internalize: the operational center of gravity inside enterprises has shifted toward automation, and attackers have adapted accordingly.
Modern attackers focus on what that identity can do at runtime and how quickly it can act. The more efficient path is to compromise the automation layer itself, the CI/CD pipeline, the workload identity, the federated trust relationship, and inherit the permissions that were intentionally granted to keep systems running smoothly.
Identity-based attacks often look indistinguishable from routine automation tasks. When an over-permissioned machine identity accesses object storage or mutates infrastructure via the cloud control plane, traditional user-centric signals may be absent or much weaker, since the activity is executed by a legitimate machine principal with valid credentials.
The problem deepens with AI agents. As agentic AI security becomes a more urgent concern, enterprises increasingly grant these systems delegated authority across multiple domains, from data retrieval and ticketing to infrastructure remediation and SaaS orchestration. The risk is that they are often over-privileged before the task begins, hard to inventory, difficult to audit, and capable of taking disruptive actions without the contextual guardrails or human authorization those actions may require.
Consider a common CI/CD path. A CI workflow exchanges an OIDC token for a cloud role so it can deploy infrastructure. That role was originally granted broad write access because teams saw tighter controls as an engineering risk to release velocity. If a malicious dependency or compromised pipeline step executes inside that workflow, the attacker doesn’t need to steal a human admin account. They inherit a valid machine identity with legitimate permissions. From the cloud provider’s perspective, the requests may look routine: a known principal making authorized API calls during a deployment window.
Continuous discovery helps solve the fundamental mismatch between automated identity creation and manual oversight. If service accounts, federated trust relationships, CI-issued principals, and OAuth scopes are being created as side effects of deployment, governance cannot rely on someone remembering to document them. Discovery has to be automatic, continuous, and tied to remediation.

For non-human identities, just-enough access has to be the default. Under delivery pressure, it’s sometimes tempting to grant broad scopes to NHIs to make things work. Service accounts receive project-level access, CI roles inherit write permissions across environments, and OAuth tokens are granted full API scope because fine-grained scoping is time-consuming. Right-sizing access to the task is the most direct way to reduce blast radius without slowing delivery.
Over time, those permissions are rarely revisited. If a machine identity only needs read access to one dataset during one workflow stage, granting it cross-environment write access creates unnecessary exposure. Just enough access (JEP) aligns permissions to the task, so if that identity is compromised, the blast radius is smaller by design.
Even when access is right-sized, duration still matters because standing privilege increases exposure without improving IT service continuity. Non-human identities tend to persist, and in many environments so do their privileges. Time-bound access reduces that standing privilege by ensuring elevated permissions only exist for the window in which a workflow or remediation task actually needs them.
An over-permissioned service account might be used hundreds or thousands of times per hour, for example. Standing privilege in machine-heavy environments doesn’t sit idle waiting for abuse. It is exercised constantly.
That means for any compromise, whether a leaked CI token, a container escape, or a poisoned dependency, the privilege is often already there. Instead of granting persistent write access to a deployment role “just in case,” JIT enforces that access only exists during the execution window that requires it.
First, it shrinks the attacker’s inheritance window. If a machine identity is compromised outside its active task window, there is no privilege to exploit. Second, it forces explicit linkage between identity and intent. Access becomes an event tied to a defined action.

Traditional IAM answers: “Is this identity authenticated and assigned this role?” Modern threats exploit what that role can do in context.
Contextual authorization asks a harder question: “Should this identity perform this action in this environment at this moment?”
If an AI agent normally reads data but suddenly attempts destructive infrastructure changes, the system should evaluate that shift in behavior. If a machine identity operating in staging suddenly accesses production datasets, that context matters.
Most enterprises cannot answer contextual questions at runtime, even as AI-driven attacks make provisioning-time controls less effective. That’s another blind spot attackers often exploit in machine-led attacks.
Contextual authorization moves enforcement to the moment of execution, which is where modern identity-based attacks actually occur.
Most enterprise IAM programs were designed around governing human lifecycle events: joiner, mover, and leaver. In this framework, access is tied to job function, roles are mapped to departments, and reviews happen periodically. Machine identities don’t neatly follow lifecycle events, though.
A workload identity might exist because a deployment template defines it. An API key exists because a developer needed integration to work.
These identities don’t “leave the company.” They linger in config files, Terraform modules, Helm charts, GitHub secrets, and CI workflows. And because they aren’t people, they often don’t trigger the same governance instinct. Identity governance built around HR metaphors simply doesn’t map to automation-driven systems.
Going forward, NHI security needs to move away from the people-centric model. Instead of asking, “Does this role have appropriate permissions?” the question becomes, “Should this identity perform this action in this environment at this moment?”
That shift only works if it fits the way engineering teams actually operate. Access has to be requestable, enforceable, and auditable inside the tools developers already use, whether that’s Slack, Teams, CLI, CI/CD workflows, or cloud platforms. Otherwise, teams fall back to tickets, delays, and the same standing permissions they were trying to eliminate.
Enforcement must occur where the action happens: at the API and endpoint level, not just in static role assignment. Permissions have to be dynamic, contextual, and tied to the requested action, environment, and approval logic in that moment. Until identity security operates at the same speed as automation, machine-led systems will keep outpacing human-era controls.
Securing non-human identities doesn’t get easier with another layer of static IAM policy. Machine identities are created and exercised at the speed of automation, so the controls around them have to operate at that same speed. That means continuous visibility into where NHIs exist, just-enough permissions scoped to the task, and access that expires when the work is done, not long after the risk has already been introduced.
That’s the shift Apono is built to support: cloud-native access automation that removes standing privilege without slowing developers down. Teams can discover risky access, right-size permissions, grant time-bound access through Slack, Teams, or CLI, and enforce approvals and auditability without falling back to tickets or static roles. With auto-expiring permissions, break-glass and on-call workflows, comprehensive audit logs, and API-driven enforcement across the stack, the model fits modern machine identity risk far better than manual governance ever could.
As non-human and AI-driven workloads continue to multiply, the winning approach is access automation that enforces least privilege in real time. Download the PAM Buyer Guide for modern cloud environments to understand which access models actually work across human, non-human, and AI-driven workloads. Alternatively, book a demo if you’re ready to see how Apono works in practice.
Governance is breaking. Not because companies care less about risk, but because modern infrastructure moves faster than the controls designed to govern it. In 2026, governance has to keep up with cloud-native architectures, AI adoption, API sprawl, and the explosion of machine identities across production environments.
Today’s governance failures increasingly show up at the access layer: overprivileged users, weak enforcement, and limited visibility into who can reach sensitive systems and data. As cloud environments grow more dynamic, the attack surface keeps expanding. The proof is in the headlines: 63% of breached organizations lacked AI governance policies to manage or prevent shadow AI, and 97% of those that reported an AI-related security incident lacked proper AI access controls.
Statistics like this show why governance, risk, and compliance software matters more than ever. For fast-moving engineering teams, the right GRC solution should help reduce risk, automate control workflows, and connect governance to identity, access, and cloud operations so compliance can operate at CI/CD speed.
Governance, risk, and compliance (GRC) software solutions help you define controls, assess risk, document evidence, and prove they are meeting internal policies and external requirements.
GRC solutions centralize policy management, risk scoring, audit workflows, control mapping, and compliance reporting. In cloud-native environments, governance increasingly overlaps with identity and access management (IAM), privileged access management (PAM), CI/CD, and API security. However, the real risk is often at the access layer: who can reach production systems, data stores, cloud resources, and machine identities, and for how long.
The strongest solutions do more than track policies. They help connect governance to runtime enforcement through controlled, auditable access workflows.

To compare these GRC platforms fairly, we scored each one across five criteria that matter most for modern security, compliance, and engineering teams. See the table below for our breakdown.
| Software | Governance Breadth | Automation & Continuous Compliance | Runtime Enforcement & Least Privilege | Engineering & Cloud-Native Fit | Time to Value |
| Apono | 8/10 | 9/10 | 10/10 | 10/10 | 10/10 |
| ServiceNow IRM | 9/10 | 8/10 | 3/10 | 6/10 | 5/10 |
| Archer | 9/10 | 7/10 | 2/10 | 5/10 | 4/10 |
| MetricStream | 10/10 | 8/10 | 2/10 | 5/10 | 4/10 |
| OneTrust | 9/10 | 8/10 | 3/10 | 6/10 | 6/10 |
| Hyperproof | 6/10 | 9/10 | 2/10 | 7/10 | 8/10 |
| Lema AI | 7/10 | 8/10 | 6/10 | 8/10 | 10/10 |
| Drata | 6/10 | 9/10 | 3/10 | 8/10 | 9/10 |
| LogicGate | 8/10 | 8/10 | 2/10 | 6/10 | 7/10 |
| AuditBoard | 9/10 | 8/10 | 2/10 | 5/10 | 6/10 |

Apono is not a traditional all-in-one GRC platform—it is a cloud-native access governance and privileged access platform that helps organizations enforce governance controls at the access layer.
Instead of relying on tickets or static roles, Apono replaces standing permissions with automated, just-in-time and just-enough access across cloud infrastructure, databases, SaaS tools, and internal resources.
Engineers can request access through Slack, Microsoft Teams, or CLI, with policy-based approvals and full audit context captured for every request. All this makes Apono a strong fit for teams that already have a broader GRC program in place but need a better way to operationalize least privilege, reduce audit fatigue, and support continuous compliance in day-to-day engineering workflows.
Main features:
Best for: Cloud-native engineering and security teams that need to enforce least privilege in real time with self-serve, just-in-time access.
Pricing: Get in touch with the Apono team for pricing tailored to your requirements.
Review: “Quick and easy config to integrate access control with a myriad of service providers and data stores. For the admin, it’s pretty straightforward to define and implement access flows. For the requester, all they have to do is ask for it via Slack and they get what they need within seconds.”

ServiceNow is a traditional enterprise GRC and integrated risk management (IRM) platform built to help large organizations centralize risk and resilience programs on a single platform. Its GRC and Integrated Risk Management products focus on connected data and enterprise-wide visibility rather than access-layer enforcement alone.
Main features:
Best for: Large enterprises already running on ServiceNow that want to connect GRC and business workflows on the same platform.
Pricing: By inquiry, with package tiers.
Review: “I find it easy to use and track issues and updates with notes. Reporting is very good. The initial setup was easy with support.”

Next on the list is Archer, a traditional enterprise GRC and integrated risk management platform. Archer positions itself as a single, configurable platform for managing multiple dimensions of risk, with solution areas that include audit management and corporate compliance.
Main features:
Best for: Highly regulated, process-heavy enterprises that need a deeply configurable IRM platform.
Pricing: By inquiry.
Review: “RSA Archer met my team’s needs for building out a Vendor Risk Management program, allowing full control and build out of our customized workflows”

MetricStream positions its offering around Connected GRC, along with a shared platform that provides teams with a single source of truth and more connected reporting across risk domains. MetricStream sits firmly in the broad GRC program management category: it is built to help organizations coordinate and automate GRC processes at scale, rather than focus primarily on runtime access enforcement for engineering teams.
Main features:
Best for: Global enterprises with mature, cross-functional GRC programs that need a unified view across business risk and compliance.
Pricing: By inquiry.
Review: “One of the key strengths is its flexibility in supporting multiple risk frameworks and regulatory standards such as ISO 31000, NIST, and ISO 27001.”

OneTrust is a broad governance platform with a dedicated Tech Risk & Compliance solution, rather than a tool focused only on classic audit and policy workflows. Its platform spans privacy, risk, compliance, third-party management, and AI governance, while the Tech Risk & Compliance offering is positioned around compliance automation.
Main features:
Best for: Organizations that need GRC to sit alongside privacy, data governance policy, third-party risk, and AI governance.
Pricing: By inquiry.
Review: “I like the automated workflows and quick reporting in OneTrust Tech Risk & Compliance as they significantly reduce manual effort and make audits far less stressful.”

Hyperproof is an AI-powered GRC and compliance operations platform. We found that its positioning is less about heavyweight enterprise IRM sprawl and more about helping teams automate controls and keep evidence collection moving with less manual coordination.
Main features:
Best for: Lean security and compliance teams that want to automate evidence collection without buying a heavyweight enterprise IRM suite.
Pricing: By inquiry.
Review: “I like Hyperproof’s automated recurring collection tasks that save me time for other things.”

Lema is an agentic third-party risk management (TPRM) and risk engineering platform built to help teams uncover third-party risk that traditional questionnaire-driven workflows often miss. Rather than acting like a broad all-in-one GRC suite, Lema focuses on continuous vendor investigation and evidence-backed risk analysis.
Main features:
Best for: Compliance and TPRM teams that want a more continuous, evidence-driven approach to third-party risk.
Pricing: By inquiry.

Drata’s core focus is streamlining audit readiness across frameworks such as SOC 2, ISO 27001, and HIPAA, with adjacent capabilities for risk management and trust center workflows. In this list, we think Drata sits closer to continuous compliance automation than to heavyweight enterprise IRM platforms or access-governance tools.
Main features:
Best for: Startups and mid-market SaaS companies that want to get audit-ready quickly and maintain continuous compliance across frameworks.
Pricing: Drata publishes plan tiers, including Foundation, Advanced, and Enterprise.
Review: “Drata gives us an overview of all necessary renewals for evidence, and the use of templates is really handy.”

LogicGate is a broad enterprise GRC platform built around its no-code Risk Cloud platform. It is designed to help organizations centralize and automate governance, risk, and compliance workflows across use cases like enterprise risk management and regulatory compliance.
Main features:
Best for: Teams that want a flexible, no-code GRC platform they can tailor to their own workflows.
Pricing: By inquiry.
Review: “The software eliminates manual, spreadsheet-based GRC work through automated workflows, which helps reduce audit delays and spares me a lot of time.”

AuditBoard, which recently rebranded to Optro, is positioned as an AI-powered connected risk platform for organizations that want to centralize controls and oversight workflows in one system. In this roundup, we think it fits best as a large-scale, program-oriented GRC platform rather than a tool built primarily for enforcing least-privilege access in engineering workflows.
Main features:
Best for: Audit- and controls-heavy enterprises that want to connect internal audit, SOX, compliance, and risk teams in one system.
Pricing: By inquiry.
Review: “The platform’s ability to manage compliance and track findings in one place saves significant time and reduces the chances of errors.”
The best governance, risk, and compliance software does more than organize policies. In cloud-native environments, GRC has to work at the speed of CI/CD, which means the right platform should help reduce risk and automate enforcement. That is the real difference between documenting controls and actually operationalizing them as a continuous governance process instead of a periodic review cycle.
While traditional GRC platforms help teams track risk and demonstrate compliance, Apono helps enforce governance at the access layer with automated just-in-time access and self-serve access via Slack, Teams, or the CLI. For teams working toward continuous compliance and stronger zero trust enforcement, Apono adds the runtime control layer that broader GRC programs often miss. Apono is designed for fast deployment and low operational overhead.
Book a personalized demo to see how Apono brings governance into real-time access enforcement. Or, download the Buyer’s Guide to compare modern approaches to privileged access and identify the gaps traditional tools leave behind.
Many engineering teams treat zero trust as a simple MFA checkbox. They invest in advanced identity providers but still leave environments exposed, with permanent admin roles and manual ticket queues that frustrate developers.
Most teams have adopted the language of zero trust without changing how access actually works. They verify identity at login, then leave broad permissions in place long after the task is done.
Yet 59% of organizations now rank insecure identities and risky permissions as their number one cloud security risk. When you rely on standing permissions, you’re just waiting for a single compromised credential to turn into a full-scale breach.
To survive modern infrastructure, it’s vital to stop treating identity as a static perimeter and start treating every access request as a high-risk, time-bound event.
Zero trust Identity and Access Management (IAM) is a security framework based on the principle of “never trust, always verify.” The goal is simple: never trust by default. In this framework, being on the network doesn’t grant you a free pass.
Every access request should be authenticated and authorized in real time, whether it’s a developer requesting temporary access to a production Kubernetes cluster or a CI/CD runner assuming a cloud role. Decisions should reflect the current context, including device posture, workload identity, approval status, and resource sensitivity.
At the center of zero trust IAM is least privilege, a core principle of identity governance. Users and services should have only the permissions they need to complete a specific task, and nothing more.
Rather than leaving elevated permissions in place indefinitely, teams use Just-In-Time (JIT) access to grant them only when needed and revoke them automatically when the task is done. This turns access into a time-bound, context-aware control instead of a persistent entitlement.
In practice, zero trust IAM has to work across the full engineering stack: cloud consoles, Kubernetes clusters, databases, internal apps, SSH workflows, and CI/CD pipelines. It also has to apply the same policy logic to human users, service accounts, runners, and third-party access paths, rather than treating each environment as a separate exception.

Cloud-native teams need a security model that verifies every connection in real time based on current context. Traditional IP-based security is outdated because a fixed perimeter cannot be relied on, given the constantly changing infrastructure across clouds, Kubernetes, and CI/CD pipelines.
From a security standpoint, zero trust IAM helps contain permission sprawl by replacing broad, static access with fine-grained, identity-based policies. The attack surface is significantly reduced when short-lived tokens are used in place of standing privileges. Even if a credential is leaked, its limited scope and duration prevent attackers from moving laterally across your infrastructure.
Beyond security, there is a massive operational advantage for developers. Cloud-native teams do not just manage employee logins. They manage ephemeral workloads, short-lived build jobs, service accounts, database roles, cross-cloud identities, and emergency production access under pressure. All these factors affect IT service continuity during outages and high-impact incidents.
Traditional IAM often relies on ticket-based security, where a developer might wait days for a manual approval to access a production database. Zero trust IAM supports automated self-service through JIT access, so engineers can request the exact permissions they need for a specific task and receive them quickly if policy conditions are met.
Zero trust IAM solves the headache of compliance and auditing. When access requests, approvals, grants, and revocations are routed through centralized workflows and policy enforcement, teams can build a more complete audit trail across environments. That makes it easier to show who accessed what, when, why, and under what approval path.

Trust is never granted by default to any user, device, or service. Whether an access attempt comes from inside or outside the network, it must be authenticated and authorized every time.
Relying on “network trust” from a VPN or office Wi-Fi is a dangerous fallacy that doesn’t hold up in a cloud-native world. Once an attacker has gained access to one entry point, they can move laterally across a network by using the “hidden” trust that is eliminated by verifying each session.
That verification mindset is especially important in cloud-native environments, where a single compromised identity can quickly lead to lateral movement and weaken brand protection strategies.
Move away from long-lived session cookies and static passwords. Instead, implement phishing-resistant Multi-Factor Authentication (MFA) and use short-lived, scoped credentials over long-lived secrets or static sessions. These should require re-authentication based on the specific risk or duration of the session.
Least privilege ensures that every identity, whether a human developer or a background service, is granted only the absolute minimum permissions necessary to complete a specific task. Least privilege is how you limit the “blast radius” of a breach. If a developer’s credentials are stolen, but their access is restricted to a single non-production database, the impact is minimal. Without these limits, one compromised account can give an attacker keys to everything.
Conduct a comprehensive permissions audit to identify “shadow admins” and overprovisioned roles. You need to move away from generic “Cloud-Admin” roles in favor of granular permissions. By mapping these to documented job functions, you ensure that access is limited to the specific resources a role actually requires.
JIT access replaces persistent privilege with temporary elevation. Instead of assigning admin access around the clock, teams grant it only for a defined task, with approvals, scope limits, and automatic expiration built in.
Deploy a JIT access broker that integrates with your SSO. For example, you could use 60-minute temporary tokens for production Kubernetes access. Setting a hard expiration means that stale access doesn’t stay active after the task is finished.
This is where a cloud native access management platform helps operationalize this model by replacing standing permissions with automated, time-bound access workflows across cloud, Kubernetes, databases, and internal systems.
Access decisions should reflect real-time signals such as device posture, location, time of day, resource sensitivity, and insights from threat intelligence tools. Identity alone is no longer enough. A valid username and password coming from an unmanaged, malware-infected laptop in a different country should be flagged as high-risk. Context-aware policies allow the IAM system to adapt its strictness based on the current threat level.
Integrate your IAM provider with your Endpoint Management (MDM) software. Create a policy that automatically denies access to production environments if the requesting device is not encrypted or is running an outdated operating system.

Zero trust IAM should apply to non-human identities just as strictly as it applies to human users. Automated infrastructure means non-human identities now have more permissions and higher numbers than the people using them. Because these identities often use static, plaintext secrets, they pose a significant risk. Zero trust must extend to every machine-to-machine interaction.
Eliminate static secrets by using Workload Identity Federation. This allows your CI/CD pipeline or cloud services to exchange a short-lived identity token for temporary cloud permissions, removing the need to store sensitive “secret keys” in your code or configuration files.
To apply zero trust across the board, a unified identity layer must govern the entire technical stack rather than relying on siloed security for each platform, while complementary practices like continuous threat exposure management help teams validate that cloud-native systems remain secure as environments change. Security is only as strong as its weakest link. If you secure the cloud console but leave backend databases accessible via a shared password, your framework has already failed. Consistency across environments prevents “backdoor” access and ensures that security policies are applied universally.
For internal apps and legacy systems, route access through centralized identity-aware controls where possible. For databases and infrastructure, use short-lived credentials, approval-based elevation, and workload-native identity mechanisms instead of shared secrets.
Using a cloud native zero trust solution gives teams a single way to govern access across infrastructure and applications without forcing engineers through slow, manual ticket queues.
Manual identity management rarely scales well in fast-moving cloud-native environments, which inevitably leads to privilege creep and leaving unnecessary access active indefinitely. Moving to software-automated access solves this by ensuring permissions are revoked the instant they are no longer required. Automation ensures that permissions are granted for legitimate needs and removed the instant they aren’t required, closing security gaps.

Set up ChatOps-based workflows (e.g., via Slack or Teams). A developer can type a command to request access; their manager receives a notification and clicks “Approve,” which triggers an automated script to provision temporary access that self-destructs after the task is complete.
With a cloud native access management platform like Apono, those requests can happen directly in Slack, Teams, or CLI, with approvals, provisioning, and revocation handled automatically.
Zero trust identity and access management only works when access is continuously evaluated, least privilege is enforced by default, and standing permissions are removed wherever possible. For cloud-native teams, that means controlling access not just at login, but across Kubernetes, cloud infrastructure, databases, CI/CD pipelines, internal apps, and machine identities.
That is the gap many teams still need to close. Zero trust only works when access controls are practical enough for engineers to use and strong enough for security teams to trust.
See how Apono helps teams replace standing permissions with just-in-time, self-serve access across cloud, Kubernetes, databases, and CI/CD.
There’s never a good time to disclose a breach, but days before your IPO has to rank near the bottom of the list. That was the backdrop to the Vercel breach.
On Sunday the 19th, the company confirmed that attackers had walked into parts of its internal environment and walked back out with customer API keys.
Early reporting focused on the flashy parts: an attacker claiming ties to ShinyHunters, a $2 million BreachForums demand, crypto teams rotating credentials with the IPO roadshow in full swing. But trace the incident back to its origin and it doesn’t start with a zero-day. It starts with a checkbox.
A Vercel employee signed up for Context.ai, a third-party “AI Office Suite,” using their enterprise Google Workspace account. The OAuth consent screen asked for access, and the employee clicked Allow All.
Months later, Context.ai itself got hit by infostealer malware. The attackers walked into its internal systems, found every OAuth grant the company held on behalf of its customers, and used the Vercel employee’s grant to take over their Workspace account and pivot into Vercel’s internal environment.
That single click is really the whole story, because everything that followed traces back to one identity holding more standing access than it should have, and one OAuth token quietly inheriting all of it.
It’s tempting to frame this as “Context.ai got breached, therefore third-party AI is dangerous,” and while that’s true, it isn’t the useful lesson here.
The real story is that Vercel’s own access posture decided how bad Context.ai’s breach could get. A vendor’s incident became Vercel’s incident because the trust between them was static, broad, and permanent.
“Allow All” meant an OAuth token, held indefinitely by a third party, could act as the employee inside Workspace. It survived weekends, vacations, and stretches where nobody even used the product.
When it eventually got stolen, it was still valid, still broadly scoped, and still invisible to security.
Vercel’s guidance afterward was to flag more environment variables as sensitive. That’s useful tactical advice, but it treats a symptom, because any privilege left standing is a privilege available to whoever steals the identity that holds it.
The harder fix, and the real one, is to stop leaving privileges standing at all.
That’s the gap Zero Standing Privileges (ZSP) is built to close. The premise is simple: no identity, whether human, service, or agent, holds permanent access to privileged resources. Access is requested when needed, granted Just-in-Time at Just-Enough scope, and revoked automatically when the task is done or the timer expires.
Apply that model to each hop of the Vercel chain and the blast radius collapses at three clear points:

None of these are speculative controls. This is how modern privileged access management is supposed to work, and the tooling to do it already exists.
What’s missing in most organizations is the operational commitment to stop treating OAuth consent, SaaS account access, and cloud IAM roles as set-and-forget.
Most identity programs stop at the front door. They know who logs in, from where, and with what factor.
What they don’t govern is what third-party apps those users authorize once inside. That’s the exact gap this breach exploited.
OAuth grants deserve to be treated as privileged access in their own right: discoverable, reviewable, and time-bound wherever possible.
Your people should be able to try a new AI tool without handing it a permanent backstage pass to Workspace. Your platform team should know which vendors hold tokens and which have gone idle long enough to revoke.
Agents, copilots, and SaaS-to-SaaS integrations all consume OAuth now. The shadow identity sprawl inside Workspace and Microsoft 365 is where the next breach is already forming.
OAuth tokens aren’t mostly issued to humans anymore. They’re increasingly issued to AI agents, copilots, and SaaS integrations that act on behalf of humans.
Every one of those is an identity that can be compromised somewhere up the supply chain. Everyone benefits enormously from the lazy convenience of “Allow All.”
Keep giving agents the same blank-check access we used to give humans, and the identity surface grows faster than anyone can audit. ZSP is how it stays manageable, and how a vendor’s bad day stops being your bad day.
The Vercel breach isn’t really a story about Context.ai, Lumma Stealer, ShinyHunters, or even AI. It’s a story about what happens when standing privileges meet a determined attacker.
The mechanism changes every cycle, but the underlying exposure never does.
If your organization still lets employees grant enterprise-wide OAuth scopes with a single click, still issues production credentials that live forever, still treats access as something you configure once and forget, you are one stolen token away from the same headline.
The fix isn’t to panic about AI tools. It’s to make every privileged access grant temporary, scoped, and approved by default.
That’s what Zero Standing Privileges means in practice, and the bar every security program should now be building toward.
If this is the week your team starts rethinking standing access, our 2026 Buyer’s Guide to Privileged Access Management Platforms is a useful next step. It walks through what modern Cloud PAM actually looks like and gives you a framework for comparing it to what you have in place today.
Hims & Hers, one of the biggest telehealth platforms in the U.S., just disclosed that millions of customer records were exposed. Not because of some sophisticated exploit, but because a single compromised login had standing access to a connected platform.
One identity was all it took.
This breach is worth paying attention to not because it’s unusual, but because it’s so ordinary.
The access model that made it possible is the same one most companies are still running, and it raises an uncomfortable question: could your vendors prove their privilege controls hold up if someone came looking?
In early February 2026, the ShinyHunters ransomware gang targeted Hims & Hers as part of a broader campaign against companies using Okta for single sign-on.
They ran the same play they’ve been running for years:
Once inside the compromised Okta SSO account, the attackers didn’t need to escalate privileges or move laterally. The account had standing access to the Hims & Hers Zendesk instance, so they walked straight in and helped themselves to millions of support tickets between February 4th and 7th.
The exposed data included customer names, contact information, and details from support interactions.
This isn’t the first time ShinyHunters has used a third-party vendor as the way into an enterprise, compromising SSO credentials to slip through vendor platforms and steal customer data from the companies on the other side.
Third-party vendors make attractive targets because they hold broad, persistent access to their customers’ environments, often without the same security oversight those customers apply internally.
That creates risk on both sides. Vendors that suffer a breach become the reason their customers end up in disclosure letters and regulatory conversations.
For the enterprise, every vendor with standing access to sensitive systems is an extension of your own attack surface that you have less visibility into and less control over.
Enterprise buyers have noticed, and they increasingly want proof that partners manage privileged access with real, auditable controls.
In healthcare, if a vendor can’t demonstrate least privilege, why would a covered entity hand them ePHI? Proving it starts with how you think about standing access in the first place.
Zero Standing Privileges (ZSP) is the access model that would have prevented the Hims breach from playing out the way it did: no account should hold continuous privileged access by default. It works through two mechanisms:
If that compromised SSO account had no standing access to Zendesk, the attacker would have taken over the account and found nothing to use.
This is also what the regulations describe. HIPAA’s Security Rule (45 CFR § 164.312) mandates access controls that limit ePHI to authorized individuals, audit mechanisms for every access event, and workforce security measures that revoke privileges when tasks are complete.
The Minimum Necessary Standard (45 CFR § 164.502(b)) requires access be limited to only what’s needed for the specific task. PCI-DSS, SOC 2, ISO 27001, and NIST all land in the same place.
ZSP handles the human side of this problem. But the vendor trust conversation is about to get harder, because human credentials aren’t the only ones with standing access anymore.
Healthcare companies are starting to roll out AI tools: coding copilots for engineering teams, customer-facing agents that handle intake data and scheduling. These agents inherit their users’ credentials by default.
Now consider the Hims scenario again, but with agents involved. If a vendor’s customer-facing agent has standing access to ePHI and that vendor’s SSO gets compromised, an attacker isn’t just reading support tickets anymore. They’re potentially accessing whatever those agents can reach, at whatever speed those agents operate.
As more healthcare companies push their vendors to adopt AI tooling, the question of how those vendors govern agent access becomes part of the trust conversation too.
Whether you’re a vendor trying to prove to healthcare customers that their data is safe with you, or an enterprise trying to hold your vendors to a higher standard, the practical challenge is the same: you need ZSP to actually work in your environment without slowing your teams down.
That’s what Apono is built to do.
Apono creates ephemeral privileges at the moment of the request, scoped precisely to the task, and eliminates them the instant the work is done. No pre-built roles to activate, no static RBAC structures to layer on top of.
Most PAM tools require someone to pre-define a library of roles that need ongoing maintenance and right-sizing. Apono sidesteps that by generating roles and permissions dynamically, in the native policy language of the target environment, so privileges are right-sized by default.
For AI agents, Apono’s Intent-Based Access Controls evaluate what the agent is trying to do against the sensitivity of the privileges being requested. Low-risk actions proceed automatically, sensitive operations get routed to a human, and everything is logged end to end.
For healthcare organizations, here’s how that maps to the requirements auditors are actually checking:

Learn more about how Apono helps to secure your ePHI and simplify HIPAA compliance with our HIPAA and HITECH Compliance data sheet.
The Hims breach is a reminder that protecting health data isn’t just about satisfying auditors. It’s about whether customers and partners are willing to do business with you at all.
If you’re rethinking how your organization manages privileged access after stories like this, our 2026 Buyer’s Guide to Privileged Access Management breaks down what modern ZSP-ready solutions should look like, what to ask vendors, and how to compare options on the capabilities that actually matter. It includes a full RFP checklist you can use in your evaluation today.
Today, we’re introducing Approval Escalation, a new capability in Apono that automatically moves access requests forward when the original approver doesn’t respond in time.
Because no one should be stuck waiting seven hours just to do their job.
Most access doesn’t need a human in the loop. Modern access management platforms like Apono let organizations automate the majority of access requests through self-serve workflows, policy-based auto-approval, and Just-in-Time provisioning. For routine access, users get what they need in seconds without anyone having to click “approve.”
But some resources are sensitive enough that you genuinely want a human making the call. Production databases, admin-level cloud permissions, compliance-restricted environments. For these, manual approval isn’t a broken process; it’s the right control.
The problem is what happens when that manual approval stalls.
Industry data paints a pretty stark picture. The average time to manually approve an access request across organizations is 430 minutes. That’s over seven hours of someone being completely blocked from doing critical work.
Now here’s the interesting part. Half of all manual approvals actually happen in about a minute. The problem isn’t the typical request. It’s the outliers, the requests that take hours or even days, dragging the average up and creating real pain for the people stuck waiting.
And that pain is real. Even global admins can feel powerless when an approver simply isn’t responding. There’s no override, no break-glass option. Just waiting.
The reasons behind stalled approvals are frustratingly mundane:
None of these are edge cases. They’re everyday realities. And without a system to handle them, every one of these situations turns into a productivity black hole.
The concept is straightforward: if the first approver doesn’t respond within a configurable time limit, the request automatically moves to a backup approver. No manual follow-ups, no chasing people down, no requests dying in a queue.
Here’s the flow:
The key design decision here is that escalation is fully automated, based on a preset time limit that admins configure. It’s predictable and consistent, which means teams can rely on it without worrying about gaming or abuse.

In this Access Flow, we see that if someone from the manager group doesn’t approve the request within 30 minutes, that it gets escalated to Gabriel. Then if Chris doesn’t respond in an hour’s time, it goes to Christine.
This approach allows layering to ensure that the request gets the attention it deserves and our engineer can get his or her work done.
One thing we were intentional about: the backup approver can’t make a good decision if they don’t understand why a request just landed in their lap.
So when a request escalates, the new approver sees all the context they need to act quickly:
No guesswork, no Slack threads asking “wait, what is this?” Just enough information to make a fast, informed decision.
When you put it together, Approval Escalation directly attacks the core problems that stalled approvals create:
This isn’t a nice-to-have. In a world where speed and agility define how well teams operate, you can’t afford to have your workflows grind to a halt for hours at a time because one person didn’t check their email.
Access requests shouldn’t stall just because someone is in a meeting or on a different continent.
Approval Escalation ensures that every request has a path to resolution, keeping your team moving and your access workflows scoped, time-bound, and fully auditable.
If you’re looking to eliminate approval bottlenecks and keep Just-in-Time access flowing smoothly across your organization, we’d love to show you how it works.
Book a demo to see Approval Escalation in action.