skip to content

What criteria admit a third-party build step into an infrastructure pipeline that holds cloud admin credentials?

level: seniorimportance: should knowfreq 47%

answer

  1. start from what the job's identity reaches
  2. does it need a secret at all
  3. publisher, readability, release health
  4. run-time behaviour: fetches, phones home
  5. record the decision, re-take it at bumps

basics

~20 s

Start from what the step can reach, not how popular it is: does it need a secret at all, who publishes it, is the pinned source readable, what does it do at run time, is a first-party alternative cheaper.

solid answer

~50 s

The first criterion is blast radius, because it sets the bar for the rest: a step in the job that holds cloud admin credentials is being trusted with your control plane, so it must clear a far higher bar than a formatting check. Then, in order: does it need any secret at all - if not, it runs in a job that has none and the review is cheap. Who publishes it, an organisation with several maintainers and a real release process or a personal account. Is the source at the pinned revision small and readable enough that someone here actually read it. What does it do at run time - fetch code, phone home, write where it need not. Is it maintained and pinnable. Finally, is there a first-party alternative we could own outright. The output is a decision recorded with an owner and re-taken at every version bump.

go deeper

for a junior

Be able to say that a third-party step runs with the same access as the rest of the job, and that the first question is whether it needs any secret at all.

for a middle

Explain the concrete checks - publisher, readable source at the pinned revision, run-time downloads, release health - and why a prebuilt bundle is harder to review than a short script.

for a senior

Show that you tier the bar by what the job holds and that you would restructure the pipeline so privileged work runs without third-party code, rather than trying to review your way to safety.

for a principal

Own the governance shape: a default cheap path, a small high-scrutiny tier, named owners and re-review pinned to version bumps, plus the argument for when writing the step in-house beats governing someone else's.

## Why the criteria start with blast radius A third-party step executes in your job with your job's identity. In an infrastructure pipeline that means the credentials that can create, modify and destroy cloud resources, and often the state file describing everything you run. The attacker position that matters here is not an anonymous internet user - it is a compromised upstream, or a maintainer whose account someone else now controls, arriving through a step your own engineers chose to add. The asset is the control plane, and the failure is not data theft but an attacker with the same power your platform team has. So the first question is never *is this step good*. It is *what would this step's worst version be able to do here*. That answer sets the bar; everything below is calibrated against it. ## The criteria **1. Does it need a secret at all?** This is the largest lever, and it is usually the fastest decision. Steps that lint, format, render a diagram or compute a diff need nothing. Put them in a job with no credentials and no write token, and the review becomes shallow because the worst case is a wasted build minute. A surprising share of the third-party steps in a pipeline can be relocated this way, which frees the reviewers for the few that cannot. **2. Who publishes it, and how?** An organisation with multiple maintainers, a public release process and a security contact is a different proposition from a personal account with one maintainer and ad-hoc tags. This is not about trusting a badge - a verified-publisher marker says an identity was checked, not that anyone read the code. What you are looking for is whether a single compromised individual can ship to you unreviewed. **3. Can you actually read it?** At the revision you intend to pin, is the source small enough that a reviewer will genuinely read it, or is it a large prebuilt bundle compiled from a tree that is not in the repository? If nobody can read it, you are not reviewing, you are hoping. That is acceptable for a zero-credential job and not acceptable next to cloud admin credentials. **4. What does it do at run time?** Does it download a payload, install a toolchain, contact a telemetry endpoint, write outside the workspace, read environment variables it has no business reading? A step that fetches code at run time drags an unpinned dependency into the highest-privilege job you own; treat that as close to disqualifying at this tier. **5. Is it alive, and is it pinnable?** Release cadence, whether security reports get answered, whether there is a stable revision to pin. An abandoned step is not neutral: when it breaks or a vulnerability lands in it, nobody upstream will fix it. **6. Is there a first-party alternative?** Many popular steps wrap a handful of commands. Owning those lines yourself removes an entire trust relationship at a cost you can measure in an afternoon. The honest comparison is *our maintenance* against *their unreviewed change*, not *free* against *effort*. ## Applying it Take three candidates for the same pipeline. - A formatting or policy check that reads files and reports. Needs no secret. Admit it, pinned, in a job with no credentials, with a light review. - A step that posts the planned change back to the pull request. It needs a write token. Admit it only with a narrowly scoped, short-lived token, in a job that never sees cloud credentials, and read its source at the pinned revision. - A step that would perform the actual apply against the cloud account. Highest bar. Prefer a first-party script; if you keep the third-party step, keep the credential acquisition in a step you own and hand the third-party step only the outputs it needs. Notice the pattern: most of the decision is not *yes or no*, it is *where does this run and what does it hold*. Splitting the pipeline so that privileged work sits in jobs with no third-party code is often cheaper than reviewing that code. ## Making it stick A decision that is not recorded gets re-litigated, and a decision that is never re-taken becomes a rubber stamp. Record for each admitted step: who reviewed it, at what revision, into which job tier, and when it is reviewed again. Pinning to a digest is what makes re-review possible at all - the new version arrives only when someone bumps the pin, so the bump is the natural review point. If bumps are automated, route the ones touching privileged jobs to a human and let the zero-credential tier flow through. The common failure is uniformity: applying the same heavyweight review to every step until reviewers stop reading, or the same light one until something with real reach slips in. Tier the bar by what the job holds, and most of the estate becomes cheap to govern.

  • The step fails your criteria but the team insists there is no alternative. What now?
    Change where it runs rather than whether it runs. Move it into a job with no deployment credentials and pass it only the artifacts it needs, so a bad version costs you a build rather than the account. If it genuinely must be privileged, the remaining options are writing the equivalent yourself or mirroring a reviewed copy internally and owning it - both of which you should price honestly against the risk.
  • How do you keep this from turning into a rubber stamp?
    Tier it. Make the zero-credential path the default so most steps never need a deep review, and reserve real scrutiny for the small number that touch privileged jobs. Give each admitted step a named owner and a re-review date, and hang the re-review on the version bump, which is a real event rather than a calendar reminder. Reviewers who read ten steps a week stop reading.
  • Does a large user count tell you anything useful?
    Very little on its own. Popularity says the step works, not that anyone audits it, and it also makes the step a better target - a widely used step compromised once reaches every consumer at their next run. Use it as weak evidence that breakage would be noticed quickly, and never as a substitute for reading the source at the revision you pin.

saying these in an interview costs you the question

  • Judges a step by stars or download counts alone
  • Treats admission as a one-time decision, never revisited at bumps
  • Applies the same bar to a lint step and a deploy step
  • Reads a verified-publisher badge as evidence the code was reviewed
  • Reviews the source of one revision, then references a moving tag

context