Just-in-Time Access for Humans
How the Sonrai Cloud Permissions Firewall eliminates standing human privilege — without an entitlement cleanup project, and without interrupting the people doing the work.
How the Sonrai Cloud Permissions Firewall eliminates standing human privilege — without an entitlement cleanup project, and without interrupting the people doing the work.
Human access to cloud accounts has been governed the same way for years: grant a standing permission set, recertify it in a quarterly access review, and hope the review catches what changed. The result is predictable. Administrators and on-call engineers carry powerful permission sets around the clock, access reviews rubber-stamp what nobody remembers granting, and a single phished credential inherits everything its owner could ever do. The alternatives have not fared better — PAM vaults translate poorly to cloud-native access, and CIEM remediation hand-trims entitlements one ticket at a time.
Just-in-Time (JIT) access in the Sonrai Cloud Permissions Firewall takes standing privilege off the table without a cleanup project. Humans request access to a permission set in a specific account when they need it, through Slack or Microsoft Teams; the grant is time-bound and expires automatically. Permission sets never sanctioned for an account can be denied outright — even ones never enrolled in JIT. Dormant identities are quarantined rather than deleted, and every session ends with an AI-generated summary.
The core defect of standing access is temporal. A permission set granted for a task in March is still live on a November weekend, available to an attacker who has compromised the credential. Nothing about the original grant was wrong; it simply outlived the work it was issued for.
Recertifying hundreds of assignments every quarter asks a reviewer a question they cannot answer: is this still needed? Without knowing what each assignment is currently being used for, the safe response is to keep it. The review completes, the numbers look healthy, and nothing has been removed.
Each removal is a negotiation, each one risks blocking legitimate work, and the estate regrows faster than it can be pruned. What is needed is not a better cleanup process but a model in which cleanup is unnecessary.
Privileged Access Management vaults were designed for a world of long-lived servers and shared administrator credentials, and they translate poorly to cloud-native access patterns built on federated identity and permission sets. CIEM tools diagnose over-permissioning accurately but hand the remediation back as tickets, which returns you to hand-trimming entitlements one at a time.
Privileged access exists only while it is being used, is approved by the people with context, and leaves a reviewable record every time.
| Dimension | Standing access with quarterly review | JIT in the Cloud Permissions Firewall |
|---|---|---|
| When privilege exists | Continuously, from grant until someone removes it | Only for the duration of an approved request |
| How access ends | A revocation someone has to perform | The grant expires on its own; there is nothing to revoke |
| Value to a phished credential | Everything its owner could ever do | Only what is currently approved and unexpired |
| Adoption cost | N/A - it is the status quo | No entitlement cleanup; a JIT posture in days |
| Coverage of forgotten access | Whatever the review happens to catch | Deny-first blocks unsanctioned permission sets, enrolled or not |
| Who decides | A reviewer working through a list out of context | The scope owner, in Slack or Teams, at the moment of need |
| Inside an approved session | Full permission set, unconditionally | Least privilege still applies; unfamiliar privileged actions raise a second approval |
| Dormant identities | Survive until someone dares to delete them | Quarantined by an org-level deny, revived through a JIT approval in seconds |
| Evidence produced | An attestation that the review happened | An AI-written summary of what happened in every session |
Permission sets are enrolled in JIT and scoped to the accounts where they are sanctioned. A user makes a request — from Slack, from Microsoft Teams, or simply by logging into the AWS console — naming the permission set, the account, and the duration. It routes to the scope's owner, who approves it where they already work.
When the grant expires, the access is simply gone: nothing to revoke, nothing to recertify, nothing for an attacker to find. Unanswered requests escalate to the approver at the next level up the scope hierarchy, and unapproved requests are denied. A default deny state persists otherwise.
A user can log in exactly as they did before JIT existed. The AWS console returns an access error, and within moments a Slack message from the Sonrai app asks them to justify the need — or to self-approve, where that is allowed. Even someone who missed the JIT training is never dead-ended, because the request flow comes to them. An optional browser extension makes the same experience seamless directly in the console.
Adopting JIT does not start with an audit of who has what. Existing permission sets, assignments, and IAM policies stay exactly where they are — no rewriting, no revocation campaign. Enforcement sits above existing entitlements: what is approved for an account works, what is not is denied, and the standing grants underneath simply stop mattering. Organizations reach a JIT posture in days.
Most JIT products govern only what has been enrolled in them. To ignore access that is not enrolled — and therefore under-managed and forgotten — is to ignore the riskiest access in the estate. The Cloud Permissions Firewall can invert this by blocking permission sets not approved for an account, whether or not they were ever enrolled in JIT. Assignments created years ago, provisioned too broadly, or added out of band become unusable everywhere they have not been sanctioned.
Every organization carries identities that stopped being used long ago — a test workload, an abandoned AI hackathon project, a former contractor, the admin user from a migration that finished two years back. These are pure attack surface, and they are not rare: Sonrai's 2024 Cloud Access Data Report found that 61% of cloud identities are unused.
Confirming they are safe to delete usually takes extensive human-to-human investigation into what they do and who owns them, so the irreversible step gets deferred indefinitely. The Cloud Permissions Firewall quarantines them instead: an organization-level deny makes them instantly unusable to an attacker while destroying nothing. Because JIT is already the front door, revival is simple — an owner approves a request and the identity is working again in seconds. The same process can open and close access for privileged deployment identities during change windows.
A JIT approval opens a permission set. It does not suspend least privilege. Inside the session, privileged actions are still governed by what this user has actually done before.
An SSO user approved into Administrator access who regularly changes Route 53 DNS records finds those changes pre-approved the moment the session is active. If that same user has never created an access key, the first attempt raises a secondary approval before it proceeds. Familiar workflows run without friction, while a hijacked session — or an operator drifting beyond their pattern — meets a human check at the first unfamiliar privileged action.
That in-session least-privilege layer is a choice, made per permission set. Interrupting a responder mid-incident with an approval for every change is how controls get bypassed, so for designated on-call and incident-response permission sets it can be toggled off via Auto Permissions on Demand.
The JIT approval itself then covers all privileged activity for that session: no secondary approvals, no re-challenge when the investigation takes a new turn. One approval is the only human gate, with the session clock, scope, and record-keeping still bounding it. Everywhere else, the extra checks stay on.
Knowing what happened inside a time-bound session is critical for visibility and compliance. Every JIT session produces an AI-generated summary covering both what happened — the services touched, the changes made — and any suspicious activity, meaning actions outside the stated purpose of the request or activity inconsistent with the permission set's normal use. Approvers review a readable narrative instead of a CloudTrail export, and unusual sessions surface themselves.
Approval flows are configured per permission set and per scope, from self-approval — designated low-risk access granted instantly, with a full record kept — up through mandatory second-party approval. Routing can differ by time and permission set: business-hours requests to the resource owner, after-hours requests to the on-call approver, and the most sensitive permission sets always requiring a second party. Friction is calibrated to risk.
Standing human privilege persists not because anyone defends it, but because removing it has always been a project too painful to finish.
JIT in the Sonrai Cloud Permissions Firewall removes the project: no entitlement cleanup, deny-first coverage for what nobody remembered to govern, zombies quarantined instead of deleted nervously, one approval per incident, least privilege enforced even inside an approved session, and an AI-written account of every session.
Access arrives in the time it takes an approver to tap a Slack message — and privilege exists only while it is in use.
Just-in-time access means privilege is granted only at the moment it is needed and for a bounded period, instead of being held continuously. A user requests a permission set in a specific account for a stated duration, an owner approves it, and the grant expires on its own. Because there is nothing standing, there is nothing to revoke and nothing for a compromised credential to inherit later.
The problem with standing access is temporal: a permission set granted for a task in March is still live on a November weekend for anyone holding the credential. Quarterly recertification does not fix it, because a reviewer facing hundreds of assignments cannot know which are still needed, so the safe answer is to keep them. Reviews complete, numbers look healthy, and nothing is actually removed.
Privileged Access Management vaults were built for long-lived servers and shared administrator credentials, and they translate poorly to cloud-native access based on federated identity and permission sets. JIT in the Cloud Permissions Firewall works with the permission sets your SSO already issues, routes approvals through Slack or Teams, and enforces at the cloud organization level rather than brokering a credential out of a vault.
No. Existing permission sets, assignments, and IAM policies stay exactly where they are — no rewriting and no revocation campaign. Enforcement sits above them: what is sanctioned for an account works, what is not is denied, and the standing grants underneath stop mattering. That is what allows organizations to reach a JIT posture in days rather than running a cleanup project first.
From Slack, from Microsoft Teams, or simply by logging into the AWS console. A request names the permission set, the account, and the duration, then routes to the owner of that scope, who approves it in the tool they already work in. An optional browser extension makes the same flow seamless directly in the console.
They are never dead-ended. The user logs in exactly as they did before, the AWS console returns an access error, and within moments a Slack message from the Sonrai app asks them to justify the need — or to self-approve, where that is permitted. The request flow comes to the user rather than requiring them to know about it in advance.
The access is simply gone. There is nothing to revoke, nothing to recertify, and nothing left for an attacker to find. The system returns to its default deny state, which is what it holds whenever there is no approved, unexpired grant.
Yes, and this is a deliberate difference from most JIT products, which govern only what has been enrolled in them. The Cloud Permissions Firewall can block permission sets not sanctioned for an account whether or not they were ever enrolled. Assignments created years ago, provisioned too broadly, or added out of band become unusable where they have not been sanctioned — which is precisely where forgotten risk accumulates.
No. A JIT approval opens a permission set but does not suspend least privilege. Inside the session, privileged actions are still governed by what that user has actually done before. Someone approved into Administrator access who routinely edits Route 53 records finds those changes pre-approved, but if they have never created an access key, that first attempt raises a secondary approval before it proceeds.
Through Auto Permissions on Demand, a per-permission-set setting for designated on-call and incident-response access. The JIT approval itself covers all privileged activity for that session, with no secondary approvals and no re-challenge when the investigation takes a new turn. One approval is the only human gate, with the session clock, scope, and record-keeping still bounding it. Interrupting a responder mid-incident for every change is how controls get bypassed, so this is deliberate.
An automatically written account of each completed JIT session. It covers what happened — the services touched and the changes made — and flags suspicious activity, meaning actions outside the request's stated purpose or activity inconsistent with how that permission set is normally used. Approvers read a narrative rather than a CloudTrail export, so unusual sessions surface themselves.
They are quarantined rather than deleted. An organization-level deny makes the identity instantly unusable to an attacker while destroying nothing, which sidesteps the investigation that normally stalls deletion indefinitely. Because JIT is already the front door, revival takes one approval and seconds. Sonrai's 2024 Cloud Access Data Report found 61% of cloud identities are unused, so this is a large share of the estate.
Yes. Flows are configured per permission set and per scope, ranging from self-approval for designated low-risk access — granted instantly, with a full record kept — up to mandatory second-party approval. Routing can vary by time: business-hours requests to the resource owner, after-hours requests to the on-call approver, and the most sensitive permission sets always requiring a second party.
Days. Because adoption requires no entitlement cleanup and enforcement sits above the access that already exists, there is no audit phase to work through first. The sequence is to scope which permission sets are sanctioned where, delegate owners and approvers, enroll the permission sets humans should request, and operate through Slack or Teams.
This paper describes the behavior of just-in-time access in the Sonrai Cloud Permissions Firewall: the request and approval flow, expiry, deny-first coverage, in-session least privilege, Auto Permissions on Demand, quarantine, and AI session summaries are product descriptions rather than research findings.
The one statistic cited — that 61% of cloud identities are unused — comes from the Sonrai 2024 Cloud Access Data Report, which analyzed production cloud estates averaging 11,290 identities each, of which 19% were human and 81% were machine identities.
Prefer the PDF? Download the full whitepaper to share with your team.
Download the whitepaper (PDF)