All posts

Non-human identity: what it means for your blast radius (on GCP)

A single over‑privileged service account can explode your blast radius across GCP. When that credential is copied, cached, or left unattended, an attacker who compromises it can move laterally, read data, and spin up resources without any visibility. Most teams treat non‑human identities as a convenience: they create a service account, grant it Owner or a broad set of roles, and embed the key in CI pipelines, Terraform modules, or custom scripts. The key lives in source control, in container im

Free White Paper

Non-Human Identity Management + Blast Radius Reduction: The Complete Guide

Architecture patterns, implementation strategies, and security best practices. Delivered to your inbox.

Free. No spam. Unsubscribe anytime.

A single over‑privileged service account can explode your blast radius across GCP. When that credential is copied, cached, or left unattended, an attacker who compromises it can move laterally, read data, and spin up resources without any visibility.

Most teams treat non‑human identities as a convenience: they create a service account, grant it Owner or a broad set of roles, and embed the key in CI pipelines, Terraform modules, or custom scripts. The key lives in source control, in container images, or on developer laptops. When a developer leaves, the key often remains, and when a CI runner is compromised, the attacker inherits the same sweeping permissions. The result is a massive, uncontrolled blast radius that can affect every project, every bucket, and every compute instance in the organization.

Why non‑human identities inflate the blast radius

Non‑human identities, service accounts, workload identities, and automation tokens, are usually granted once and never revisited. Because they are not tied to a person, there is no natural trigger to rotate them or to audit their usage. The following patterns are common:

  • Static JSON keys stored in Git repositories.
  • Service accounts with Owner or Editor roles covering multiple projects.
  • Long‑lived tokens used by bots that run in many environments.

Each pattern gives the holder the ability to perform actions far beyond the original intent. If the token is exfiltrated, the attacker can create new service accounts, modify IAM policies, or delete data, all while the original team remains unaware.

What a proper control model must include

Reducing blast radius starts with a solid setup: identity providers such as Google Cloud IAM issue short‑lived tokens, roles are scoped to the minimum set of permissions, and service accounts are tied to specific workloads. This setup decides *who* a request is and whether it may start, but it does not enforce anything once the request leaves the identity check.

Without an enforcement point in the data path, the request reaches the target resource directly. The connection proceeds without a record of what command was run, without any chance to mask sensitive fields in a response, and without an opportunity for a human to approve a risky operation. In other words, the blast radius remains uncontrolled.

Putting enforcement in the data path

The missing piece is a Layer 7 gateway that sits between the identity system and the GCP services. By proxying every API call, database query, or SSH session, the gateway becomes the sole place where policy can be applied. It can:

Continue reading? Get the full guide.

Non-Human Identity Management + Blast Radius Reduction: Architecture Patterns & Best Practices

Free. No spam. Unsubscribe anytime.
  • Record each session for replay and audit.
  • Mask sensitive fields (for example, API keys returned in a response) before they reach the caller.
  • Require just‑in‑time approval for high‑risk actions such as creating a new service account or deleting a bucket.
  • Block commands that match a deny list, preventing accidental or malicious misuse.

These enforcement outcomes exist only because the gateway sits in the data path. If the gateway were removed, the same request would flow straight to GCP and none of the controls would be applied.

How hoop.dev provides the needed controls

hoop.dev is an open‑source, identity‑aware proxy that implements exactly this architecture. It authenticates users and bots via OIDC, reads group membership, and then proxies the connection to the target GCP service. Because the gateway is the only point that sees the traffic, hoop.dev can enforce masking, approval, and session recording on every request.

With hoop.dev in place, a service account used by a CI pipeline no longer has unrestricted, invisible access. Each API call is logged, any response containing secrets is redacted, and attempts to perform privileged actions trigger an approval workflow that can be satisfied by a human or an automated policy engine. The blast radius is therefore bounded by the policies defined in the gateway, not by the original token’s permissions alone.

Getting started is straightforward: deploy the gateway using the getting started guide, register your GCP resources, and configure the desired guardrails. For deeper guidance on policy design, see the hoop.dev learn site. The documentation walks through connecting a service account, defining just‑in‑time approvals, and enabling session replay.

Practical steps to shrink your blast radius

  1. Scope service account roles. Grant only the permissions required for the specific workload.
  2. Rotate keys regularly. Use short‑lived OIDC tokens wherever possible.
  3. Introduce a gateway. Deploy hoop.dev as the sole path to GCP APIs and services.
  4. Define approval policies. Require manual or automated approval for actions that create or modify IAM bindings.
  5. Enable session recording. Store audit logs outside the workload so that compromised agents cannot tamper with evidence.

These steps turn a flat, unrestricted token into a controlled, observable interaction that limits how far an attacker can move.

FAQ

Does hoop.dev replace IAM?

No. IAM still decides who can obtain a token. hoop.dev sits after that decision point and enforces policies on the actual traffic.

Can I use hoop.dev with existing CI pipelines?

Yes. By routing the pipeline’s service‑account calls through the gateway, you gain audit and approval without changing the pipeline logic.

What happens if the gateway itself is compromised?

The gateway stores credentials but never exposes them to the caller. Compromise would be detected through its own session logs, and because the gateway is a single, observable point, you can quickly isolate and rotate any affected service accounts.

Explore the open‑source code on GitHub to see how the gateway is built and to contribute your own extensions.

Open source

Save the open-source gateway for agent data access

Hoop is MIT-licensed infrastructure for controlling how AI agents reach production data. Star hoophq/hoop so you can inspect it, deploy it, or share it when your team starts governing agent access.

Star and save the repo →More posts