skip to content

When would you run a private Fulcio bound to your corporate IdP instead of the public instance?

level: principalimportance: nice to knowfreq 20%

answer

  1. who operates the authority
  2. issuance publishes the signer
  3. your trust root must reach every verifier
  4. availability on the release critical path
  5. offboarding latency becomes a signing control

basics

~20 s

Run a private Fulcio when signer identities must not be public, when releases happen in isolated environments, or when only your own directory can assert those identities. The cost is owning a certificate authority and an offboarding process that now gates signing.

solid answer

~50 s

The public instance externalises everything: someone else operates the authority, keeps it available, and publishes issued certificates to a public transparency log. That last point is the usual trigger for going private — publishing a certificate publishes the signer, so maintainer emails and internal repository paths become visible, which some organisations cannot accept. Isolated or regulated environments and identities that only an internal directory can assert are the other triggers. What you take on is substantial: root key custody, availability during every release window, and getting your trust root to every verifier, including ones outside your network. The subtle cost is organisational — issuance now depends entirely on your identity provider, so a contractor deprovisioned three weeks late can obtain valid signing certificates for those three weeks and nothing in the resulting certificate will look wrong. Offboarding latency becomes a signing control with no compensating mechanism.

go deeper

for a junior

Know that the signing authority can be the public shared instance or one your company runs, and that running your own means trusting your own directory for identities.

for a middle

Be able to name the mechanical consequences: which issuers are trusted, where the trust root comes from, and that public issuance makes the signer's identity public.

for a senior

Show you would treat issuance as release-critical infrastructure — availability targets, break-glass that is not 'turn signing off', and trust-root rollout across every verifier.

for a principal

Own the trade explicitly: name the trigger that justifies the private instance, accept the CA root you now hold, and assign an owner for identity lifecycle because offboarding latency is now part of your release integrity.

## The decision, stated honestly Both options give you the same cryptographic story: a short-lived certificate binding an ephemeral key to an identity asserted by an OIDC issuer. What differs is **who operates the authority, which issuers it trusts, and who can see the result**. This is an operating-model decision, not a security-strength decision, and it should be argued that way. ## Reasons that genuinely justify going private **Signer identities are sensitive.** Certificate issuance on the public instance is itself published to a public log. That means the signer's email address, or the path to an internal repository and its release pipeline, becomes world-readable. For many organisations that is fine and even desirable. For others — a small maintainer team whose personal addresses would be exposed, or a company whose internal project names leak roadmap information — it is disqualifying. This is usually the deciding factor. **Isolation.** A build environment with no route to the public internet cannot reach a public authority at signing time. A private instance inside the boundary is the only option. **Identities only your directory can assert.** If the identities you want in certificates are internal principals that no public issuer knows about, the authority has to trust your issuer, and that means running it. **Regulatory constraints** on where trust roots and identity data live can force the same conclusion. ## What you are signing up to own **A certificate authority root.** Its private key needs real protection — hardware custody, split control, an audited ceremony — and it is now among the most consequential keys in the company. The irony of adopting keyless signing to eliminate key custody and then owning a CA root should be stated out loud in the decision document, not discovered later. **Availability at exactly the wrong moments.** Issuance sits on the critical path of every release. If the authority is down, nobody ships. That means an on-call rotation, a target availability, and a break-glass story that does not amount to "disable signing." **Trust root distribution.** Every verifier must be configured to trust your root. Inside your estate that is a fleet-management problem. If anyone outside your organisation consumes your artifacts, it is a customer-onboarding problem — and it is the reason many organisations that could run a private instance choose not to. ## The organisational cost people miss Binding the authority to your corporate identity provider makes **identity lifecycle management a release-integrity control**. That sounds abstract until you work an example. A contractor leaves. Their directory account is scheduled for removal, but the offboarding ticket sits for three weeks — a completely ordinary latency in a large organisation. For those three weeks their account still authenticates, still yields a valid token, and therefore still yields valid signing certificates. If they sign a release in that window, the certificate is legitimate in every respect: correct issuer, correct identity, correctly issued. Nothing in it is anomalous, because nothing about it *is* anomalous. The failure happened in a human process weeks earlier. With long-lived signing keys the equivalent risk was "did they copy the key before they left?" — bad, but bounded by whether the key changed afterwards. Here the risk is continuous for exactly as long as the account survives. The controls that address it are not cryptographic: - an offboarding SLA that is measured and reported, with signing-capable identities on the fast path; - narrowing the set of identities that can sign at all, so most departures are irrelevant; - preferring workload identities for anything routine, so human signing is a rare exception rather than the norm; - reviewing the record of what was signed and by whom, so an unexpected signer is noticed rather than merely possible. That last point matters because there is no revocation to fall back on. Certificates expire on their own, and there is nothing to pull after the fact. ## How to argue it Write down which of the four triggers actually applies. If the answer is only "it feels safer to run our own," that is not a trigger — it is a preference that buys you a CA root, an availability commitment and a trust-distribution programme in exchange for nothing you did not already have. If the answer is "we cannot publish signer identities" or "our release builds have no internet route," the case makes itself, and the work then is to name an owner for identity lifecycle who understands that their ticket queue is now part of the release pipeline.

  • You adopted keyless signing to avoid key custody, then stood up your own authority. Is that self-defeating?
    Partly, and it should be acknowledged. You have traded many distributed signing keys for one root key with far better protection and far fewer touchpoints, which is usually a real improvement. But the claim "we no longer manage signing keys" becomes false, and the root's ceremony, custody and succession planning have to be resourced accordingly.
  • How would you reduce the exposure created by slow account deprovisioning?
    Shrink the population first: make workload identities the normal signing path so that almost no human account is signing-capable, and treat the remainder as privileged accounts with an expedited offboarding path and a measured SLA. Then add detection, since there is nothing to revoke — someone must be able to notice a signature from an identity that should no longer exist.
  • What makes external consumers the hardest part of running a private instance?
    They must be configured to trust your root before they can verify anything, which turns verification into an onboarding step you own and support. Every new customer, partner or open-source consumer is a distribution problem, and any of them who skip it end up not verifying at all — which is worse than the public option you rejected.

saying these in an interview costs you the question

  • Chooses a private instance without naming a concrete trigger
  • Ignores that the organisation now owns a CA root key
  • Forgets external verifiers must be given the trust root
  • Assumes a compromised signer can be handled by revocation
  • Treats identity offboarding as unrelated to release integrity

context