Summary
The release workflow added in #44 uses step-security/harden-runner with
egress-policy: audit (logging only), consistent with every other workflow
in this repo. The release job is the most supply-chain-sensitive one we have
(contents: write, id-token: write, attestations: write, plus a cosign
install and keyless signing), so it deserves egress-policy: block with an
explicit allowed-endpoints list.
Why not now
An allowed-endpoints list that's complete can only come from the egress
audit log of a real release run — the run touches GitHub APIs, the Sigstore
stack (Fulcio, Rekor, TUF), the Go module proxy, the setup-just release
download, and possibly more. Guessing the list before the first tagged release
risks breaking the release in public.
Acceptance criteria
References
Summary
The release workflow added in #44 uses
step-security/harden-runnerwithegress-policy: audit(logging only), consistent with every other workflowin this repo. The release job is the most supply-chain-sensitive one we have
(
contents: write,id-token: write,attestations: write, plus a cosigninstall and keyless signing), so it deserves
egress-policy: blockwith anexplicit
allowed-endpointslist.Why not now
An
allowed-endpointslist that's complete can only come from the egressaudit log of a real release run — the run touches GitHub APIs, the Sigstore
stack (Fulcio, Rekor, TUF), the Go module proxy, the setup-just release
download, and possibly more. Guessing the list before the first tagged release
risks breaking the release in public.
Acceptance criteria
(see 🚀 [gha] add release workflow with signed binaries and SLSA provenance, fixes #42 #44 follow-up steps)
egress-policy: blockwith anallowed-endpointslist matching the observed calls (grouped byendpoint, with comments explaining each)
nothing breaks
endpoint list patterns are established
References
🚀 [gha] add release workflow with signed binaries and SLSA provenance, fixes #42 #44 (comment)
blockmode:https://github.com/step-security/harden-runner#egress-control