How do you secure non-human identities before your AI agents become your biggest attack surface?

Non-Human Identity · AI Agent Governance

How do you secure non-human identities before your AI agents become your biggest attack surface?

By Michaela Kuralová
Reviewed by Michal Zindulka, DevOps Engineer
Last updated 28 August 2026
Quick proof: a 48h Cloud Posture Snapshot routinely finds AI service accounts holding standing admin access nobody has reviewed since deployment.
The 2-second answer

You secure them the same way you’d secure a new employee with root access on day one — except there are now a hundred times more of these “employees,” none of them sleep, and most were never given an offboarding date. The fix is treating every agent, service account, and API key as a full identity: inventoried, scoped, time-boxed, and reviewed on a schedule, not left to accumulate permissions forever.

TL;DR

The executive summary

  • Non-human identities now outnumber human ones roughly 100 to 1 across production cloud environments, and the gap is widening as agentic workflows spread.
  • More than half of these identities carry excessive, unreviewed permissions — a bigger identity risk today than compromised human accounts.
  • A meaningful share of AI services run with standing administrative access that nobody audits after initial setup.
  • Fixing asset ownership and scoping standing privileges closes most of the exposure before any behavioral monitoring tool gets involved.
Visual concept

A stacked comparison: human identities as a thin sliver, non-human identities (service accounts, AI agents, API keys, CI/CD tokens) forming the overwhelming majority above it — color-coded by standing privileged access. Alt-text: “Human vs non-human identity ratio in production cloud environments, 2026.”

Scoped identityJust-in-time access → expires automatically → named owner
Orphaned service accountNo owner → standing write access → never reviewed
AI agent, default roleInherits deployer’s IAM role → admin-level → unaudited

How it happened

Why this crept up on everyone

Nobody decided to create a hundred identities for every engineer. It happened one integration at a time: a CI/CD pipeline gets a service account, a monitoring tool gets read access that quietly becomes write access, an AI agent gets deployed with the same IAM role as the developer who built it because scoping it down felt like a later problem. Each decision was reasonable in isolation. The aggregate is an identity surface nobody actually owns.

The real risk

Why standing privilege is the real problem

The danger isn’t that these identities exist — it’s that most of them keep permissions they used once, six months ago, for a task that’s long since finished. An AI agent that needed temporary write access for a migration still has it during normal operation. A forgotten integration key from a vendor you stopped using two years ago still authenticates. Attackers don’t need to break anything when standing privilege this broad is just sitting there.

The fix

What actually needs to change

Two shifts matter more than any new tool:

Just-in-time accessPermissions should be granted for the duration of a specific task and expire automatically, not persist because nobody remembered to revoke them.
Named ownershipA service account or agent without a named human responsible for it is an orphaned identity by definition — and orphaned identities are exactly where excessive permissions survive longest.

Where to start

Asset ownership comes before AI-driven detection

You can’t scope what you can’t see, and most environments can’t currently answer a basic question: which of our AI agents can write to production, and who signed off on that. Fixing asset and ownership data first is what makes every later detection tool actually useful.

The blueprint

A 3-step non-human identity governance plan

Inventory every non-human identity

Map every service account, API key, CI/CD token, and AI agent across your cloud environment — not just what’s declared in IAM, but what’s actually authenticating.

Assign a named owner to each one

Every identity without a human accountable for it gets flagged, reviewed, and either scoped down or decommissioned.

Replace standing access with just-in-time grants

Move privileged operations to time-boxed, task-specific access that expires automatically instead of persisting indefinitely.

How Vortex approaches this

Beyond the IAM console

On Google Cloud deployments, Vortex maps every service account and AI-agent identity against actual usage patterns — not just declared IAM roles — during a Cloud Posture Snapshot.

What it finds

The gap that matters

The gap between what an identity is allowed to do and what it actually does is usually where the real exposure lives — and it’s rarely visible from the console alone.

What should you do next?

Find out how many standing-privilege identities you’re carrying

A 48h Cloud Posture Snapshot runs 750+ checks and will hand you that list — including the ones nobody remembers creating.

Book a Call

48hCloud Posture Snapshot
24hFinOps Bill Scan
5-DayAI Innovation Sprint