Build1 distinct publisher3 min readPublished
Workload Identity Federation swaps a downloadable JSON key for three objects that all have to exist before anything works. An InfoQ practitioner reports 120-plus GCP projects on it in six months, and names the gate teams leave open.
The Engineer · Build desk

Compiled by The EngineerSomething wrong?How this is made
The provider is the object that does the work. It declares where tokens come from, how to validate them, how to map their claims onto attributes GCP understands, and which specific identities are allowed through, with one provider per external identity system [11]. The pool above it is a named container that groups those configurations and on its own does nothing [12]. Three objects, none of them useful alone [13], makes a poor demo and a decent audit surface.
The fourth of the provider's jobs is the one that gets left blank. The InfoQ author calls attribute conditions the critical security gate, and says that without them any identity from a trusted provider can authenticate, which is too broad for production [5]. The failure mode is quiet. Tokens validate and jobs run, so the pipeline goes green. What you have declared is trust in a provider's entire population rather than in one workload, and the field that would have narrowed it was left empty.
Then the rate. Zero to 120 or more projects in six months [7] averages at least twenty a month [21]. For that number to transfer, three things have to hold in your estate: project creation runs through a template you control, your external identity systems are few enough that one provider each is a small fixed cost [11], and most of your key inventory sits in projects that do not exist yet. If it sits instead in projects created three years ago, a creation-time mandate does not shrink the count. It stops the count growing, which is what the author describes when legacy no-expiry keys are treated as a fixed, shrinking problem rather than a risky migration [6].
The comparison that actually justifies the ceremony is the rotation loop, not key-versus-token. Every expiry means generating a new key for the same service account, then finding every system and team using the old one and distributing the new one [14]. The author's observation is that this overhead is heavy enough that many teams skip expiry and leave keys open-ended, which is worse [15]. Meanwhile the key is sitting in secret stores, environment variables, and occasionally version control [16]. Under federation the exchange leaves nothing behind: the job runs and the token expires, so nothing is stored and nothing needs rotating [10].
One divergence is worth flagging before you copy the pattern. The author chose impersonation over the direct access that Google recommends as the default [18], and also flags a scoping mistake in multi-org Harness setups [19]. The reasoning for both sits in the part of the article past where the supplied text ends, which also cuts off before the third object, the service account binding, is described [22]. Read that section before you write your own Terraform module.
Ranked by verification strength, evidence, and original report placement.
Attribute conditions are the critical security gate; without them, any identity from a trusted provider can authenticate, which is too broad for production.
Mandating WIF at project creation rather than retrofitting existing keys scaled cleanly, with legacy no-expiry keys treated as a fixed, shrinking problem rather than something requiring a risky migration.
The author chose impersonation over the direct access that Google recommends as the default.
InfoQ published a practitioner article, "Eliminating Long-Lived Credentials in GCP with Workload Identity Federation".
Workload Identity Federation allows external workloads to authenticate to Google Cloud Platform without long-lived service account keys, reducing credential exposure and operational overhead.
The article's framing: keys are secrets you manage, while federated identities are trust relationships you configure.
Distinct publishers with included, body-backed reporting in this cluster.
1 article · August 31, 2026
Follow any of these and your For You feed starts watching them — no settings page required.
build
Jenkins static AWS keys work from anywhere; the OIDC replacement fails in four known ways1 distinct publisher
build
Flux moves GitOps' source of truth into registries you own, and mirroring becomes the prerequisite1 distinct publisher
build
Dropping long-lived AWS keys is half an EKS migration; the cluster still gets a vote1 distinct publisher
build
Basic Auth becomes a gateway problem: AgentCore's Lambda interceptor keeps the password away from the model1 distinct publisher
Evidence-backed comparisons of source perspectives and observed adoption signals. Read the methodology
Which Builder, Operator, and Investor concerns the observed source mix emphasized—not a truth score.
Evidence, demonstrated adoption, hype gap, incentives, and confidence are assessed independently, each on its own current evidence. How these are measured.
One engineer, one estate, no artifacts
The design description is the sturdy part: external token in, short-lived GCP token out, pool then provider then binding, all of it checkable against Google's published behaviour by any reader with a console. The operational spine is not checkable at all — no policy document, no project inventory, no key count before or after — and the text we have stops mid-sentence in the rollout section, leaving the outage-risk reasoning behind 'we did not migrate' asserted rather than shown.
Really deployed, self-counted
Three distinct external systems — Harness, GitHub Actions, AWS Lambda — are described as live against GCP, which puts this past whiteboard stage. But the number that would carry the story, 120-plus projects in six months, is one no one outside the author's organisation has counted, and it works out to roughly twenty projects a month without any provisioning machinery being described. The author's own admission that hundreds of no-expiry keys remain in the estate is the honest ceiling on how far this adoption goes.
Restrained, save for one uncounted number
This reporting argues against its own temptations. It says plainly that no migration happened, keeps the legacy keys visible as a shrinking problem, breaks from Google's recommended default instead of echoing vendor guidance, and opens by admitting the author's first reaction was skepticism. What nudges it above zero is the six-month scale figure doing persuasive work that no evidence supports, and a verdict — the right model for machine-to-machine authentication — generalised from a single estate.
Reputation at stake, not vendor money
A named engineer writing up a programme they personally led has an obvious interest in it reading as a success, and practitioner bylines carry professional value for author and employer alike. Working the other way: nothing here follows a vendor's script. InfoQ's author recommends impersonation over what Google suggests, spends the first several paragraphs on how bad the inherited status quo was, and volunteers a mistake their own team can make in multi-org Harness setups.
Trust the mechanism, hold the metrics
Two halves pulling in opposite directions. The architectural claims would survive a check against Google's own documentation, so a reader can act on the attribute-condition warning today. The programme claims would not survive an audit, because nobody has attempted one, and the account cuts off before the rollout story finishes. Our number lands where those halves meet, and the truncation keeps it from climbing.