kubectl session against a crash-looping cluster, or a database connection during an incident - work that can’t be pre-scripted as a single command.
Break glass is the consented, time-boxed path for that. Nothing happens without an approval you sign. You review each request, approve or reject it, hold the key that authorizes it, can end a session at any time, and control the network it runs over.
What break glass is, and your role
Reaching a resource takes two things: a network path to it, and a credential to authenticate once there. Break glass assembles both, only for the session you approved, and tears them down when it ends.- The network path. If the resource is already reachable, none is created. If it’s private, a temporary path is stood up into your network for the session and removed at the end (see Preparing your network).
- The credential. For a Kubernetes cluster, the controller mints a fresh, short-lived token, and at session end revokes it by deleting the minted identity behind it (the token also self-expires on its own clock). For most other resources, a credential is produced by an operational command you approve (for example, a script that reads a database password from your secret store or creates a short-lived login). Sometimes your vendor authenticates with a credential they already hold, and break glass only opens the network path.
Reviewing and approving a request
When your vendor requests break glass, you’re notified over your existing channel and given a link to an approval page. Opening it shows you the full request:| What you’re approving | What it means |
|---|---|
| Resource | The one resource your vendor may reach |
| Privilege | The access level they will have on it |
| Duration | How long the session may stay active |
| Network path | How they will reach the resource |
| Command (if any) | For a command-produced credential, the exact command and the exact inputs it runs with |
Review the scope
Read the request against the questions below. Everything the session is allowed to do is in the fields above - there is nothing hidden.
Decide
Reject to stop it cold (you can include a reason, which is sent back to your vendor), or continue to approve.
Sign
Approving means signing the request with your own key. The approval page gives you a short script that signs locally; your private key never enters the browser or reaches us. See Signing Keys for the one-time key setup.
- Does the stated reason justify direct access to this resource?
- Is the privilege level acceptable? Be aware that the Kubernetes path mints a cluster-admin-tier credential - you are signing off on that level of access, scoped to that one cluster for that one session.
- Is the requested duration reasonable for the work?
- Is this a resource you’re willing to expose for a hands-on session right now?
Ending a break glass session is not the same as revoking access. Revoking access removes a standing permission tier you granted the controller. Ending a break glass session ends one approved session. Both are yours to control; they operate at different scopes.
Preparing your network for a private target
If the resource your vendor needs to reach isn’t already reachable, break glass stands up a temporary, session-scoped path into your network - a Tailscale subnet router or a Twingate connector - created with single-use keys and removed when the session ends. It exists only for that one session. This is a deliberate, temporary exception to the otherwise outbound-only posture described under No Inbound Network Access. It is created only after you approve a request, and only for that session.The temporary path is placed inside the network where your deployment runs, so a break glass session can reach whatever that network can reach, and no more. The tailnet the router joins is operated by your vendor, who manages its access controls; what’s yours to control is the deployment’s own network boundary. Your lever is how you isolate the deployment: keeping it in a dedicated account, VPC, or namespace (as recommended when you set up your environment) keeps a break glass session walled off from your other resources.
Guarantees and audit
A few properties hold for every session:- You are the only party that can authorize access. Your vendor’s control plane coordinates the workflow but is not trusted to grant access. The decision is made by the controller in your own account, which verifies your signature against a key only you hold. Even a fully compromised control plane cannot mint access, widen it, redirect it, or extend it - all of those require your key, which is never on the vendor’s side.
- Least privilege means scoped and time-boxed. A session reaches exactly the resource you approved, for the one session, for the duration you approved (your own environment - for example a cluster’s maximum token lifetime - may shorten it further, but never extend it). It does not mean minimal permissions within the resource: the Kubernetes path is cluster-admin-tier. What’s bounded is reach and lifetime, not the privilege level you signed off on.
- Nothing privileged is left behind. Minted credentials are short-lived, delivered to your vendor once, never stored durably, and explicitly deleted at session end along with any temporary network path. Between sessions, nothing break glass created remains in your account.
- Fail-closed. If your signature can’t be verified, or the session can’t be assembled, nothing is minted and the session does not go active. If teardown is interrupted, the credential still lapses on its own clock.
A turnkey command-line tool exists today for verifying operational command approvals; it does not yet cover break glass sessions. The cryptographic evidence - your signature over the approved request, preserved on the session record - is the same either way.
Related
- Signing Keys - set up the key you sign approvals with
- Security Model - the trust boundary this builds on
- Permissions - the standing access tiers, contrasted with a break glass session
- Revoking Access - revoking standing access, and the audit log