How a job gets an identity, and how a person gets access
A job proves where it runs
A pipeline job asks GitLab for a signed token that names its repository, its environment and whether its ref is protected. Google Cloud's workload identity federation checks the token; a token from outside the projectairframe group, a fork in a personal namespace included, is refused before any binding is read.
An apply identity answers to one repository
Each apply identity is bound to its product's repository, on a protected ref, in its own environment: the production one answers to jobs in the environment prod, and in grafana for the product's dashboards. A job on an unprotected branch, in another repository or in another environment gets nothing.
No keys
Service account keys cannot be created or uploaded: an organization policy on the demo organization's folder forbids both, and a deny policy blocks key creation for everyone but the break-glass group, the bootstrap administrator account and Privileged Access Manager's service agent. Credentials come from the job's token or from the metadata server.
People get grants, not standing admin roles
A maintainer who needs to change something requests a Privileged Access Manager grant with a justification. A grant of administrative roles needs the approval of another member of the platform group and lasts at most two hours; read access to a non-production project's logs and state is self-approved and lasts an hour. Every grant is in the audit log.
An image is attested, then admitted
The trusted builder builds each image from the approved commit. The executor checks Cloud Build's record of the build before a separate identity signs the build attestation, and promotion adds a second. Every service the golden path's Cloud Run module deploys opts into the Binary Authorization policy its project carries, which in production admits only an image with both; the policy is written once a product's projects are billed. The gate and this website run under the same rule.
A flawed release can be revoked
The platform's pipeline tooling ships as dated releases. Revoking one, a merge request to the list of permitted releases, makes the gate fail every new pipeline that still includes it, naming the release to move to.