Access

Access requests that do not become standing access

What replaces the ticket queue, the admin grant from 2024 that nobody took back, and the shared credential people reach for at 3am.

There are two ways to give someone production database access. Grant it and hope they mention when they are done, or grant it for four hours.

Almost every team does the first, then runs an access review twice a year to undo the damage. That is not governance. That is cleanup on a schedule.

The queue is not the problem, the queue is the symptom

Access requests are slow for a reason that has nothing to do with the tooling: the person approving has no basis on which to say no.

A ticket arrives saying "Marcus Lee requests Salesforce Admin". The approver knows Marcus. They do not know your Salesforce configuration, what that profile can reach, or whether he had it last quarter. Given a choice between approving and finding out, approving takes eleven seconds and finding out takes an afternoon.

So requests get approved, and because getting access is slow and annoying, people ask for more than they need while they have somebody's attention. Then it never goes away.

The ticket queue.

Where access requests go to wait behind laptop orders and password resets.

The standing admin grant.

Given once for a migration in 2024 and never taken back, because taking it back is somebody's afternoon.

The shared credential.

What people fall back on at 3am when the approval path is slower than the incident.

Let people ask where the work already happens

A request that requires opening a second tool becomes a DM instead, and a DM is not a record.

An access request in Slack: AWS, the Oncall-escalation template, a two-day duration set automatically, and a free-text reason box.

The request, where the work already happens. Duration and IAM groups come from the template; the only thing typed is the reason.

The whole request in that screen is one sentence of typing. The app, the access template, the duration and the IAM groups all come from policy. The only free text is the reason, because the reason is the only part a policy cannot supply.

Note the duration, set to two days automatically. Nobody chose that in the moment. It came from the template, which is how you get expiry to happen consistently: by deciding it once, when nobody is under pressure, rather than every time somebody is.

What the approver sees

The request that reaches the app owner carries what they need to decide:

What the person has in that app today. What the requested role adds on top, described as capabilities rather than a role name. Whether they have asked before and what happened. And what the policy caps this grant at regardless of the answer.

That last one matters more than it looks. An approver who knows the grant expires in 24 hours is making a much smaller decision than one who thinks they are granting it permanently, and small decisions get made honestly.

Expiry comes in three shapes

Time-boxed. A fixed window from policy. Four hours of production access during an incident, expiring whether or not the incident is closed. If it needs longer it gets requested again, and the second request is a signal worth having.

Task-bound. Tied to the thing it was for rather than to a clock. Access granted for a ticket ends when the ticket closes.

Standing, and marked as such. Some access should persist. A support engineer needs the helpdesk daily. Those grants stay, but they are recorded as deliberate rather than defaulted into, which means the access review has something reviewable: a short list of decisions somebody made, instead of everything anyone ever asked for.

Most stacks cannot tell a deliberate standing grant from an expired temporary one, because nothing recorded the difference at the moment of granting. That is the gap this closes.

Break-glass is a path, not an exception

A policy that blocks an incident is a policy people route around, and the first time somebody shares a credential to get through an outage, your controls are decorative.

So break-glass is designed in. The grant is issued immediately against a named policy that says who may use it and for what. The review happens afterwards. It is logged as break-glass, so it never sits in reporting looking like a normal approval.

The measure of this working is not that break-glass is never used. It is that nobody had to use a shared login instead.

What actually changes

A ticket queueWith Iden
Where people askA ticket queue, or a DMSlack or Teams, where they are
What the approver seesA role nameWhat the role can actually do
How long access lastsUntil somebody noticesUntil the expiry set at grant
Emergency accessShared credentialsBreak-glass, logged as itself
Unused grantsFound at the next reviewFlagged as they go cold

What this does not do

It does not make approvals unnecessary. It makes them cheap and informed, which is different.

It does not work on an app nobody owns. Every route here ends at a person who is accountable for that application, and if that person does not exist the request has nowhere to go. Assigning owners is the unglamorous prerequisite for all of it.

And it will not fix a culture where everything is urgent. If every request is marked critical, expiry becomes the only real control you have, and it works, but it works by attrition rather than by anyone making a decision.

Frequently asked questions

Only if you want it to. Iden can raise and close the ticket in Jira Service Management or ServiceNow so your existing process stays intact, or it can own the request end to end. The provisioning is identical either way.

The expiry. A standing grant is approved once and lives forever, so the approval carries all the weight. A grant that dies in four hours is a much cheaper decision to get wrong, which is exactly what makes approving it honestly easier.

Break-glass. The grant is issued immediately against a named policy and the review happens afterwards rather than blocking the incident. It is logged differently from an approved grant, so it shows up in reporting as what it is.

Yes. Requesting is decoupled from provisioning. The request looks the same to the person asking, and Iden fulfils it through SCIM, an API or a custom connector depending on what the app supports.

No, and you should not. Some access is genuinely standing: a support engineer needs the helpdesk every day and asking daily is theatre. The point is that standing access should be a marked decision rather than the default that everything drifts into.