ApexKube journal
Just-in-Time Kubernetes Access: A Safer Way to Manage Temporary Production Access
Give engineers the production access they need, exactly when they need it without leaving elevated permissions behind.
Production incidents rarely happen when everyone already has the permissions they need.
A developer may need to investigate a failing service. An engineer may need to check logs, restart a workload, or troubleshoot a production namespace. The access is necessary, but giving that person permanent elevated permissions creates a different problem.
How do you give someone production access when they need it, without leaving that access behind when they don’t?
The Problem With Temporary Production Access
Kubernetes RBAC makes it possible to control what users can do. But temporary access is often still handled manually.
Someone needs additional permissions, so an administrator grants them a broader role. The incident is resolved, and someone is expected to remember to remove the access later.
That sounds manageable with a few users and one cluster.
But as teams manage more users, clusters, and environments, temporary permissions become difficult to track. Some access remains longer than intended, while administrators spend time manually granting and revoking permissions.
The result is a familiar trade-off:
Keep access restricted and slow down incident response, or give broader access and accept the risk of leaving it in place.
What Should Temporary Access Look Like?
A better approach is to make access temporary by design.
Instead of permanently changing a user’s permissions, access should be:
- Scoped to the cluster, namespace, or role they actually need
- Time-bound to the duration of the task
- Auditable so teams know who received access and when
- Automatically revoked when the access period ends
This is the idea behind just-in-time (JIT) Kubernetes access control.
For example, an engineer investigating a production issue might receive:
Cluster: production-us
Namespace: payments
Role: Incident Debugger
Duration: 30 minutes
They get the permissions required to investigate the issue. Once the 30 minutes are over, the temporary access expires.
There is no separate reminder to revoke it.
A Real-World Example
Consider a developer who normally has read-only access to a production cluster.
An API starts returning errors, and the developer needs additional permissions to investigate the affected workload.
With a traditional approach, an administrator might temporarily add the developer to a more privileged role and then manually remove that permission after the incident.
With JIT access, the developer can receive the required permissions for the specific investigation and for a defined period.
Once the issue is resolved, the access expires automatically.
The developer can continue working with their normal permissions, while the team avoids turning a temporary requirement into permanent privileged access.
How ApexKube Helps
ApexKube provides just-in-time Kubernetes access control for teams that need to manage temporary production access without permanently increasing user privileges.
Access can be granted for a specific purpose and duration, making it easier to control privileged access across Kubernetes environments.
This becomes particularly useful for teams managing multiple clusters or customer environments, where manually tracking temporary permissions can quickly become difficult.
The principle is simple:
Give the right person the right access, for the right amount of time.
Temporary Access Should Actually Be Temporary
Production access doesn’t have to be an all-or-nothing decision.
Teams shouldn’t have to choose between giving someone permanent privileged access and manually managing every permission change during an incident.
Just-in-time access provides a controlled middle ground:
Grant access when it’s needed. Scope it to the task. Let it expire when the work is done.
