// the problem
Nobody knows who holds the admin kubeconfig.
The usual setup is one admin kubeconfig passed around, or a ServiceAccount made by hand for each person. Nobody knows who uses it or when it expires. kubelatch puts an owner, an expiry and a record behind every credential.
Without kubelatch
admin.conf
# shared in #platform, copied to five laptops
users:
- name: kubernetes-admin
user:
client-certificate-data: LS0tLS1CRUdJTi…
client-key-data: LS0tLS1CRUdJTiBSU0Eg…
- Nobody knows who has a copy.
- It stays valid as long as its certificate: a year or more.
- The API server sees
kubernetes-admin for everyone.
- Taking it back means rotating credentials on the whole cluster.
With kubelatch
credentials
owner name cluster expires last used
ana laptop prod-eu in 12 d 2 min ago
luis k9s all in 27 d 1 h ago
bot:shop-api github-actions prod-eu in 58 min just now
- Every credential has an owner and a name.
- It expires on its own, in days, not years.
- Every request is recorded as that person.
- Revoke it and the next
kubectl gets 401.
// what you get
Access you can explain to an auditor.
A credential of your own
A klt_ token and its kubeconfig for each person or pipeline, with an expiry, revoked instantly. GitHub Actions workflows get theirs without storing a secret in GitHub.
kubeconfig · klt_3fQ9… · expires in 30 d
Tiered permissions
Six fixed tiers over a namespace or a whole cluster. kubelatch keeps each cluster's RBAC in sync, so nobody writes a RoleBinding by hand.
viewer · developer · debugger · secrets-reader · admin · cluster-admin
Inventory
Who each credential belongs to, which clusters it reaches, until when it is valid and when it was last used.
ana · laptop · 12 d left · used 2 min ago
Per-request audit
Every request to the API server with who, what, where and the result, including exec and port-forward.
ana exec web-7f9c (shop) 101
Any cluster
Managed or self-managed, it works the same: kubelatch only uses the standard Kubernetes API.
EKS · GKE · AKS · kubeadm · k3s · RKE2 · Talos
One binary and Postgres
A web UI, an API, the proxy and the RBAC reconciler in a single Go binary. Sign in with GitHub, or with local accounts.
kubelatch + postgres
// for AI agents
Let AI agents in, within limits you set.
Claude Code, Cursor or any MCP client works on your clusters through kubelatch’s MCP server, as you and with only the permissions you choose. Its writes can wait for your approval, every call is in the audit, and you cut it off with one click.
// how it works
kubectl talks to kubelatch. kubelatch talks to your cluster as you.
-
An admin grants a tier
For example developer on the shop namespace of prod-eu, with an expiry if it should end.
-
You sign in and get a kubeconfig
Issue a credential in the web UI and use it with kubectl, k9s, Lens or Helm. Nothing to install.
-
Every request goes through kubelatch
It checks the token, forwards the request to the cluster impersonating you, and records it.
kubectl, k9s, Helm, CIklt_ token
own credential
kubelatchproxy · RBAC · audit
acts as you
Your clustersKubernetes API
works with
EKSGKEAKSkubeadmk3sRKE2Talos