skip to content

Rotating Credentials

Replacing a credential without breaking what reads it: an overlap window, finding every holder, doing it under a live exposure. Asked because rotation is scheduled far more often than rehearsed.

on this pageshow

questions

28

A contractor who knew a shared admin credential rolls off — why does disabling their accounts not end their access?

level: juniorimportance: must knowfreq 58%

answer

  1. two things to take away, not one
  2. account removal versus value withdrawal
  3. the accepting system never heard of the store
  4. a read copy cannot be recalled
  5. replace, move holders, then refuse the old

basics

~20 s

Disabling an account closes one path to the value; it does not withdraw the value. A shared credential the person already read is a copy nobody can recall, so it must be replaced and the old value refused.

solid answer

~50 s

Two different things can be taken away when someone leaves, and teams usually do only the first. Removing their account in the secret store, or the grant that let them read, stops them fetching the value *again*. It does nothing about the value they already fetched, because the system that accepts that credential has never heard of the store and will keep honouring it. A shared static value lives entirely in that second category once a human has read it: there is no copy to delete, only notes, a saved file, a terminal history or a memory. So departure is a replacement trigger — mint a new value, move every holder to it, and then make the accepting system refuse the old one. Replacement alone is not enough; the withdrawal is what ends the contractor's access.

go deeper

for a junior

Recall the split: removing someone's account stops future reads, while the value they already read still works. A shared password must be changed when a holder leaves.

for a middle

Explain where withdrawal actually happens — at the system that accepts the credential, not in the store — and why deleting the stored value does not reach it.

for a senior

Show how you scope it: which values the person could read, what read records prove and do not prove, and what order you replace and withdraw in without an outage.

for a principal

Argue the structural fix: shared static values make every departure an estate-wide event, so the question is what it costs to move to per-consumer credentials before the next one.

## Two withdrawals, and teams do only one When a person with access leaves, there are two distinct things you can take away. - **The path to the value.** Their account in the secret store, their entry in whatever directory the store trusts, their membership of the group a read rule names. Removing it stops them *fetching the value again*. - **The value itself.** The credential they already fetched and can still present to the system that accepts it — a database account, an administrative interface, a partner endpoint. Nothing about the account removal reaches that system. It was never told who was allowed to hold the value, only what the value is. Offboarding checklists are almost always written against the first list, because it is the list a joiner/leaver process can see. The second is the one that decides whether the contractor can still get in on Monday. ## Why a shared static value makes departure a trigger A **static credential** is typed or generated once and handed to whoever needs it; a **generated credential** is minted by the store per consumer at the moment it is needed. The distinction decides what a departure costs you: | What the person held | What removing their access achieves | What still has to happen | |---|---|---| | A shared static value they read | Stops further reads from the store | Replace the value and refuse the old one at the accepting system | | Their own credential the store generated for them | Revokes that one credential | Nothing else moves; other consumers keep their own values | | A value they copied into a personal file or notes | Nothing at all | Same replacement, and the copy is why you cannot skip it | The defining property is simple and unfixable: **a human who read a value holds a copy that no system can take back**. There is no record to delete, no session to kill, no device to wipe. Every other containment move in this area depends on reaching the thing that holds the copy. Here nothing does. ## Rotation and revocation point in opposite directions Say which one you mean, because they are not the same action: - **Replacement** puts a *new* value in place so consumers have something to move to. - **Withdrawal** makes the *old* value stop authenticating at the system that accepts it. A replacement that never withdraws the old value has changed nothing for the leaver — both values now work, and theirs is one of them. Equally, deleting the value from the store is neither: the store stops serving it, while the accepting system carries on honouring the copy already in circulation. **Deleting is not withdrawing.** ## Scoping it without guessing 1. **List what they could read** — the rules and group memberships that granted them anything, not just what you remember them using. 2. **Narrow with read records** where the store keeps them, remembering that those prove only the reads that went *through* the store; a value handed over in a chat message leaves no entry. 3. **Rank by blast radius** — how far one value reaches decides what is replaced today and what can wait for the next change window. 4. **Carry it out in order** — new value in place, every holder moved across, then the old value refused. 5. **Record the declaration and the completion**, so the question "was this actually done?" has an answer later. ## Where designs differ Stores differ in what they can do for you here. Some can mint a fresh downstream account per consumer, which turns a departure into a single revocation with no coordination. Others only hold the value you gave them, in which case a departure is a full replacement across every holder. Some keep read records rich enough to enumerate what one identity touched; others keep very little. Do not assume the estate you are describing has the first of each — say what the mechanism requires and then what you would check. ## What an interviewer is listening for The weak answer stops at "we disable their accounts and revoke their access". The good answer separates the path from the copy in one sentence, names the accepting system as the place withdrawal happens, and says out loud that a shared value is what makes this expensive — which is also the argument for issuing per-consumer credentials before the next person leaves.

  • The contractor insists they never wrote the value down. Does that change what you do?
    No. The decision cannot rest on an assertion nobody can check, and memory is a copy like any other. What their statement is worth is scope: it helps establish which values they saw and when, which sets how much has to move. Replace anyway, and prefer per-consumer generated credentials so the next departure is one revocation.
  • How would you make the next departure cheaper rather than repeating this?
    Stop sharing one static value across many holders. Where the store can mint a credential per consumer, a leaver's own credential is revoked and nothing else moves. Where it cannot, at least keep an inventory of who holds what, so scoping the trigger is a lookup and not an archaeology exercise.
  • The value is only readable by an on-call group the contractor was in. Is that enough scoping?
    It is the starting list, not the answer. Group membership tells you who could have read the value; read records tell you who did, for reads that went through the store. Neither covers a copy passed hand to hand, which is why the default for a shared value is to replace it.

A departing key-holder can hand back the office key, and that ends what the key opens. They cannot hand back the door code they memorised — the only way to close that is a new code on the door.

saying these in an interview costs you the question

  • Says disabling the account ends access to the credential
  • Treats deleting the value from the store as a withdrawal
  • Puts a new value in place and never refuses the old one
  • Accepts a promise that the value was not kept
  • Assumes read records capture copies passed outside the store
  • Calls replacement and revocation the same action
open as a page

The access rules say which identities may read a shared warehouse credential — why is that not the list you rotate against?

level: middleimportance: must knowfreq 58%

basics

~20 s

A grant list names who may read the value; rotation needs who actually holds it. Permissions overstate it with idle standing grants and understate it with copies taken once, fleets behind one identity, and holders that never call the store.

open as a page

An operator replaced a payments service's database password in one step and requests began failing — what went wrong?

level: middleimportance: must knowfreq 62%

basics

~20 s

A one-step swap has no instant at which every holder switches. The database stopped accepting the old password while running processes still held it, so their next connection failed. Safe replacement needs both values accepted at once.

open as a page

A laptop holding a checked-out service credential is lost — what decides whether that forces a replacement?

level: middleimportance: must knowfreq 56%

basics

~20 s

What you can prove decides it, not what is likely. Unless you can establish that every copy on the device was unreadable to whoever now has it, treat the credential as exposed and replace it, then refuse the old value.

open as a page

You wrote a replacement value for a leaked fleet credential an hour ago, yet the old value still authenticates — why?

level: middleimportance: must knowfreq 62%

basics

~20 s

Writing a new value into the store is only half a replacement. The system that honours the credential was never told to stop accepting the old value, and every holder still presents it. Withdrawal is a separate action against a different system.

open as a page

A store rotating a downstream credential on a schedule replaces a person working a runbook — which failures does that remove, and which does it add?

level: middleimportance: must knowfreq 62%

basics

~20 s

Scheduling removes the failures of the human step — skipped runs, mistyped values, steps out of order — and adds silent failure, a clock blind to context, and a standing privileged holder able to change credentials.

open as a page

A shared service credential is replaced every ninety days and an intruder copied it on day one unnoticed — what did that schedule cost the intruder?

level: middleimportance: must knowfreq 64%

basics

~20 s

At most eighty-nine days of working access, and only because the old value was stopped from authenticating. A replacement cadence caps how long an unnoticed copy stays useful; it reverses nothing the intruder already did inside that window.

open as a page

Your census of a shared credential's consumers comes from the store's read records — which real holders will that list miss?

level: seniorimportance: must knowfreq 54%

basics

~20 s

Read records are evidence of reads, not a register of holders. They miss anything whose cadence exceeds the observation window, anything that read once and still holds the value, machines hiding behind one shared identity, and copies living outside the store.

open as a page

You know every consumer of a rotated database password — how do you confirm each has moved before withdrawing the old value?

level: seniorimportance: must knowfreq 54%

basics

~20 s

Silence in the store's read records proves nothing: a process that read the value at start-up never reads again. Confirm from the accepting side — which credential each connection authenticated with — or force every holder to re-read.

open as a page

A leaked collector credential is in use right now from an unknown source: do you withdraw it before a replacement exists?

level: seniorimportance: must knowfreq 54%

basics

~20 s

There are only two orders and each buys one thing at the other's expense. Withdrawing first ends the attacker's access now and costs every holder an outage; cutting over first avoids the outage and leaves a working credential in unknown hands throughout.

open as a page

Your runbook put a new partner credential in the store and filed the supplier's change ticket; the nightly export broke six weeks later — what did that run leave undone?

level: seniorimportance: must knowfreq 58%

basics

~20 s

The run was closed when the store held the new value and the ticket was filed — neither of which changes what the export presents. Nothing moved the consumer, and nothing waited for the supplier's change, which landed six weeks later.

open as a page

A reporting service holds its own pasted copy of the shared credential in its configuration — what does that break on replacement day?

level: middleimportance: should knowfreq 44%

basics

~20 s

Three things: the census cannot see it, because it never reads the store; writing a new value does not reach it; and it keeps working until the old value stops being accepted downstream, then fails late.

open as a page

A supplier's breach notice says their support system was accessed — which of your credentials must you replace?

level: middleimportance: should knowfreq 44%

basics

~20 s

Replace every value of yours that sat inside their estate: the credentials you issued them, anything shared through their support path, and any value pasted into a ticket. Credentials they issued you, they must re-issue — your job is accepting a new one quickly.

open as a page

Before a store can rotate a partner system's credential on a schedule, what must that downstream system itself support?

level: middleimportance: should knowfreq 50%

basics

~20 s

Four things from the downstream: a programmatic way to change the credential, an identity allowed to make that change, rules the generated value can satisfy, and a way to test the new value afterwards. Absence of any one forces a runbook.

open as a page

Forty workloads share one credential value rather than holding one each — what does that cost you the day it must be replaced?

level: seniorimportance: should knowfreq 48%

basics

~20 s

A shared value turns replacement into one synchronised event with no partial progress: the old value cannot be withdrawn until the last holder moves, reads arrive under one identity so you cannot tell who moved, and failures afterwards are unattributable.

open as a page

When rotating a database password with both values accepted at once, how long should that overlap window stay open?

level: seniorimportance: should knowfreq 47%

basics

~20 s

Long enough for the slowest legitimate holder to re-read and reconnect — usually set by the least frequent restart or batch run, and measured rather than guessed. No longer than that: until withdrawal the old value still authenticates.

open as a page

Why does a team agree its replacement triggers and who may declare one before an exposure happens?

level: seniorimportance: should knowfreq 38%

basics

~20 s

Agreed triggers turn a judgement call made under pressure into a fact of record: the event is recognised rather than argued. Naming who may declare one without approval stops the single action that bounds the exposure from waiting on an escalation chain.

open as a page

Why can replacing a leaked credential while the path that leaked it stays open make the replacement worthless?

level: seniorimportance: should knowfreq 47%

basics

~20 s

The path that let the first value out is a delivery channel, not a one-off event. Whatever carried the old value carries the replacement the same way, so the new credential is disclosed as soon as it exists.

open as a page

After withdrawing the leaked collector credential, how do you prove it no longer authenticates instead of assuming it?

level: seniorimportance: should knowfreq 41%

basics

~20 s

Present the actual old value to every system that honours it and require a refusal, then record the time of the first refusal. A withdrawal command that returned success is a request that was accepted, not a result you have observed.

open as a page

One shared credential here is replaced every quarter and another has not changed in four years — which replacement carries more risk, and why?

level: seniorimportance: should knowfreq 46%

basics

~20 s

The four-year-old one, by a wide margin — and not because the value is old. Nobody has ever run that change, so the holders, the failure modes and the way back are all unproven, while the quarterly one has been rehearsed twelve times.

open as a page

Your estate can only name a credential's consumers from memory — what standard would you set so future credentials are enumerable by default?

level: principalimportance: should knowfreq 30%

basics

~20 s

Enumerability is bought at issuance, not recovered later. A new credential is either observable — every consumer fetches it from the store, ideally one value each — or it carries a named owner and an agreed flag-day plan.

open as a page

A downstream scoring service holds exactly one credential per account, so no overlap is possible — how do you rotate it?

level: principalimportance: should knowfreq 33%

basics

~20 s

Create the overlap somewhere else, or accept a gap: move callers to a second account on that service, put one component in front that holds the credential for everyone, or take a short planned interruption with the callers quiesced.

open as a page

One credential is held by hundreds of collectors you cannot update at once — how do you sequence the emergency replacement?

level: principalimportance: should knowfreq 33%

basics

~20 s

Compute the cutover from the population and the update rate, then decide in advance who breaks. When the fleet is larger than the rate, no sequence gives both a dead old value and an unbroken fleet, and the window you buy is also the attacker's.

open as a page

Half your estate's downstreams accept a programmatic credential change and half only through a supplier portal — how do you decide where automation goes?

level: principalimportance: should knowfreq 36%

basics

~20 s

Rank by what an older value costs, not by what automates easily. Build one shared path for the programmatic half; for the portal half, buy the exposure down with narrower rights, fewer holders and a rehearsed runbook.

open as a page

A blanket quarterly rotation policy lands on your platform team, whose estate ranges from per-request minted credentials to values untouched for years — how do you answer?

level: principalimportance: should knowfreq 42%

basics

~20 s

Answer the intent, not the number. Restate the policy as a bounded, demonstrable exposure window plus a replacement that has been performed at least once, classify the estate against that, and return a commitment with a named exception list rather than a yes or a refusal.

open as a page

A vendor engineer read a service credential aloud on a support call — what does a promise not to keep it buy?

level: seniorimportance: nice to knowfreq 26%

basics

~20 s

Nothing enforceable. A promise buys a record of what was seen and when, which scopes the replacement and sets the clock. Because no system holds the copy, there is nothing to revoke and nothing can confirm disuse — only replacement bounds it.

open as a page

A scheduled rotation changed a datastore account's password but crashed before recording the new value — why is re-running it not automatically safe?

level: seniorimportance: nice to knowfreq 28%

basics

~20 s

The live value is now lost and the two sides disagree. A re-run may be unable to authenticate to make a second change, may consume the account's only spare credential slot, or may trip lockout and reuse rules. Reconcile first.

open as a page

A quarterly cadence is defended as capping an undetected leak at ninety days — what does that arithmetic assume?

level: seniorimportance: nice to knowfreq 28%

basics

~20 s

Four things: the access that produced the copy is closed, the old value genuinely stops authenticating, harm accrues over the window rather than in one act, and detection is slower than the interval. Break any one and the cap is fiction.

open as a page