Control over AI
Blog
AI data leakage 8 min read

Why an AI agent needs permissions

An agent acts on your behalf, so it acts with your permissions. Why least privilege is harder for agents than for people, and what holds up instead.

Abstract orbs in orbits above waves
Quick answer

An agent can only act where it holds permissions, and the simplest way to grant them is to let it act as the user. That is also the worst, because it inherits everything that user has accumulated over the years. Least privilege is harder here than with people for two reasons: you cannot know in advance which steps the agent will take, and its remit widens without anyone requesting new access. What works: a dedicated account per agent, a separate boundary around irreversible actions and permissions scoped to the task rather than the person.

01

Acting as the user is easiest and grants the widest reach

02

You cannot know in advance which steps an agent will take

03

An agent's remit grows without a new access request

04

A dedicated account makes reach explicit and auditable

05

Irreversible actions deserve their own boundary, separate from read access

An organisation deploys an agent to check supplier invoices. To do its job it needs the invoicing system, the contracts and the accounts payable mailbox. The fastest way to set that up is to run it under the account of the person who used to do the work.

It works from day one. It also means the agent now has access to everything that person accumulated over eight years of employment.

For an agent, permissions are not a detail

An agent differs from a chatbot in that it acts. Acting means another system has to authorise it: the mail system, the document store, the ERP.

So authorisation is not a precondition sitting alongside the agent; it is what the agent is. What it can do is exactly what it has been granted. Everything else said about its behaviour and reliability rests on that.

Why "just run it as the user" is the default

Because it works and costs nothing. The integration exists, the account exists and the user would be doing this work anyway.

Three problems follow.

It inherits the mess. Every employee has accumulated access to things that no longer matter: old project sites, shared folders, links that never expired. As long as a person only uses some of that access, it stays invisible. An agent searches everywhere. See how AI tools reach files you never uploaded.

The audit log becomes useless. If the agent acts as the user, every system records that the user did it. During an incident you cannot establish whether the human or the automation acted, which is precisely when you want to know.

Revocation cannot be targeted. Removing the agent's access to one system means removing the employee's.

Why least privilege is harder here

With people, least privilege works reasonably well: you know someone's role and which systems belong to it.

With an agent, it runs into two obstacles.

You do not know the steps in advance. The whole point of using an agent is that the model works out how to reach the goal. Which systems that requires only becomes clear along the way. Grant narrowly up front and you get failures; grant broadly and you have the problem from the previous section.

The remit grows quietly. Three months on, an agent that started out checking invoices is also sending payment reminders. Nobody filed a request, because the permissions were already there.

The honest conclusion: least privilege here is not a setting but a cycle. Start narrow, widen based on what actually fails and keep checking whether it is all still needed.

What does work

A dedicated account per agent. Not one per agent type: one per agent. Its reach becomes explicit, you can revoke it on its own and the log shows that the automation acted.

Permissions scoped to the task, not the person. Describe which systems the task needs and at what level (read, write, delete). That is a shorter list than a human's access profile.

A separate boundary around irreversible actions. Read access and the right to act are two different things. Sending, deleting, publishing, paying and granting access should require human confirmation, however much the agent may otherwise see.

Short-lived tokens. Access that expires on its own rather than a key valid until somebody revokes it. This is a recurring weak point in integrations that run through standalone servers; see what an MCP server is.

A review when the remit expands. The moment someone says "it can also do X now" is the moment to look at the permissions again.

Why this is more urgent than it looks

There is a further reason to be strict here, unrelated to honest mistakes.

An agent reads untrusted content: emails, web pages, documents. If instructions are hidden in it, the agent may follow them, and it will do so with exactly the permissions you granted. See what prompt injection is.

That makes the permissions question the most effective security control you have. Not because you distrust the model, but because the model can be talked into things and the permissions cannot.

FAQ

Common questions

Why does an AI agent need permissions?

Because it performs actions in systems: reading mail, editing files, updating records. Every action requires that system's authorisation. Without permissions an agent is a chatbot making suggestions.

What is wrong with running an agent as the user?

It is the easiest setup, and the one with the broadest reach. The agent inherits everything that user gained access to over the years, including the over-broad permissions nobody cleaned up. And your audit log cannot distinguish the human from the automation.

Why is least privilege harder here?

With a person you roughly know what they do. With an agent the model decides the steps as it goes, so you cannot know in advance which permissions the task needs. In practice, that leads people to grant too much to avoid failures.

What is an agent account?

A separate identity for the agent, distinct from the user, holding only what its task requires. That makes its reach explicit, lets you revoke it on its own and shows in the log that the agent acted rather than the person.

Which actions deserve their own boundary?

The irreversible ones: sending, deleting, publishing, paying and granting access. Those should require human confirmation, however much read access the agent otherwise has.

Portrait of Rens Timmermans from BeeSensible

Prefer someone to walk you through it?

Rens, BeeSensible

I'm happy to give you a twenty-minute tour. Leave your details and I'll find a time that suits you. You're also welcome to call or email.

Prefer to talk to someone first?

Want a live demo, or a quote for 100+ users? Leave your details and we'll be in touch within one working day.