Many teams assume that giving an AI coding agent like Claude unrestricted network reach is safe as long as the model is trained on internal code, but that bypasses production access controls. The reality is that a single compromised prompt can cause the agent to issue privileged commands, read secrets, or write malicious data directly to production services. The misconception that a model’s “intelligence” replaces the need for traditional access controls leads teams to embed static service‑account keys in containers or expose Claude’s endpoint to the entire VPC.
Current practice leaves production AI agents unrestricted
In a typical setup, engineers create a service account on GCP, download its JSON key, and bake that credential into the container that runs Claude’s code‑generation service. The container talks straight to Cloud SQL, GKE, or Cloud Storage without any intermediary. Because the credential is static, any compromise of the container – a vulnerable library, a mis‑handled log, or a malicious prompt – instantly grants the agent full production access. There is no audit trail of what the model actually requested, no ability to mask sensitive fields in responses, and no human approval before a destructive operation runs.
Why production access needs more than just identity
Even when the service account is provisioned with least‑privilege scopes, the request still travels directly to the target resource. The identity check happens at the token‑issuance stage, but nothing inspects the payload that reaches the database or the Kubernetes API. The missing piece is a control surface that sits on the data path, where it can evaluate each command, apply real‑time masking, and require just‑in‑time (JIT) approval before the operation is allowed. Without that surface, production access remains a blunt instrument: the model can read or write anything its service account permits, and the organization loses visibility into the model’s actions.
Introducing a gateway in the data path
hoop.dev provides the required gateway. It is a Layer 7 identity‑aware proxy that sits between Claude’s runtime and any GCP resource it needs to reach – Cloud SQL, GKE, Cloud Storage, or other internal services. The gateway authenticates users and agents via OIDC or SAML, reads group membership, and then enforces policies on every request that passes through it.
Setup: identity and provisioning
First, configure an OIDC identity provider (Google Workspace, Okta, or another SAML source). Each Claude instance obtains a short‑lived token that proves who is invoking the model. The token is validated by hoop.dev, which then maps the identity to a set of allowed actions. Service accounts used by the gateway are created with the minimum permissions required for the specific production workloads. This setup determines who may start a session, but it does not enforce what the session can do.
