All posts

Keeping Self-Hosted Models PCI DSS-Compliant

Running a self‑hosted model without continuous audit invites PCI DSS violations. Most teams deploy large language models or inference services on their own compute clusters and protect them with a single API key or a shared service account. The key is baked into deployment scripts, stored in plaintext, and handed to every engineer who needs to run a query. When a request reaches the model, the connection goes straight from the client to the inference server. No gateway inspects the traffic, no

Free White Paper

PCI DSS + Self-Service Access Portals: The Complete Guide

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

Free. No spam. Unsubscribe anytime.

Running a self‑hosted model without continuous audit invites PCI DSS violations.

Most teams deploy large language models or inference services on their own compute clusters and protect them with a single API key or a shared service account. The key is baked into deployment scripts, stored in plaintext, and handed to every engineer who needs to run a query. When a request reaches the model, the connection goes straight from the client to the inference server. No gateway inspects the traffic, no central log captures the exact prompt, and no mechanism masks credit‑card numbers that might appear in a response. If a breach occurs, the organization cannot prove who issued the request, what data was returned, or whether a policy was violated.

PCI DSS explicitly requires that every access to cardholder data be tracked and that the logs be retained in a tamper‑evident form. Requirement 10 mandates detailed audit trails for all system components that store, process, or transmit card data. Requirement 3 demands that sensitive data be rendered unreadable whenever it is displayed or logged. And Requirement 8 insists on strong authentication and role‑based access control. In practice, compliance teams must produce continuous evidence that each request was authorized, that the response was protected, and that any privileged operation was reviewed.

Many organizations address the authentication piece by integrating an OIDC or SAML identity provider, issuing short‑lived tokens, and assigning fine‑grained roles. This step limits who can start a connection, but it does not give the organization visibility into what happens after the token is accepted. The request still travels directly to the model, bypassing any enforcement point. Consequently, the system cannot record the exact prompt, cannot mask sensitive fields in real time, and cannot require a human to approve risky operations such as bulk data extraction.

Why PCI DSS demands continuous evidence for self‑hosted models

PCI DSS treats every interaction with cardholder data as a critical event. A single unlogged query that returns a credit‑card number can be a compliance breach. The standard therefore expects:

  • Immutable logs that capture who accessed the system, when, and what was accessed.
  • Real‑time protection of sensitive data in transit and at rest.
  • Just‑in‑time approval workflows for high‑risk commands.
  • Replay capability to reconstruct a session for forensic analysis.

When a self‑hosted model sits behind a plain network socket, none of these controls exist by default. The only way to generate the required evidence is to insert a control layer that can see every request and response without exposing credentials to the client.

How hoop.dev provides the audit trail PCI DSS requires

hoop.dev is a Layer 7 gateway that sits between the identity provider and the inference server. It proxies the connection, inspects the protocol, and applies policy before the request reaches the model. Because hoop.dev is in the data path, it can enforce the controls that PCI DSS expects.

Session recording. hoop.dev records each interaction, including the exact prompt, the model’s response, and the identity that initiated the request. The recordings are stored separate from the model process and can be replayed. This satisfies Requirement 10’s demand for a complete audit trail.

Inline data masking. When a response contains fields that match PCI‑defined patterns, such as PANs or security codes, hoop.dev can mask those values before they leave the gateway. hoop.dev keeps the original data protected, meeting Requirement 3’s encryption‑or‑masking rule.

Continue reading? Get the full guide.

PCI DSS + Self-Service Access Portals: Architecture Patterns & Best Practices

Free. No spam. Unsubscribe anytime.

Just‑in‑time approvals. For operations flagged as high risk (for example, bulk export of generated text), hoop.dev can pause the request and route it to an authorized reviewer. The approval decision is logged alongside the session, providing the evidence required for Requirement 8 and Requirement 7.

Command‑level blocking. If a request tries to invoke a prohibited function, such as loading a model with a known vulnerability, hoop.dev can reject the command before it reaches the model, and hoop.dev records the denial.

All of these outcomes exist only because hoop.dev occupies the gateway position. The identity provider supplies a token, but the token never reaches the model. hoop.dev validates the token, extracts group membership, and then decides whether to allow, mask, or require approval for the request.

Mapping hoop.dev controls to PCI DSS requirements

By placing hoop.dev in the data path, an organization can demonstrate compliance with several PCI DSS clauses:

  • Requirement 10.2 – hoop.dev logs who accessed the model, when, and what was accessed.
  • Requirement 10.5 – hoop.dev stores logs in an external backend and can replay them for investigations.
  • Requirement 3.4 – inline masking ensures that PANs never appear in clear text outside the gateway.
  • Requirement 7.1 – access is limited to the minimum privileges required, enforced at the gateway.
  • Requirement 8.3 – just‑in‑time approvals add a second factor of authorization for high‑risk actions.

Because hoop.dev generates evidence automatically for every session, compliance teams no longer need to rely on manual log collection or ad‑hoc scripts. The continuous stream of audit data aligns with the “always‑on” monitoring philosophy promoted by PCI DSS.

Getting started with hoop.dev

You can deploy the gateway using the official Docker Compose quick‑start, configure an OIDC identity source, and register your inference server as a connection. The gateway holds the model’s credentials, so engineers never see them. You can find detailed steps in the getting‑started guide and the broader feature overview on the learn page. Once deployed, define policies that mask PAN patterns, require approvals for bulk queries, and enable session recording.

FAQ

Does hoop.dev replace my existing identity provider?

No. hoop.dev acts as a relying party. It validates the OIDC or SAML token issued by your IdP and then enforces additional controls.

Where are the audit logs stored and how are they protected?

hoop.dev writes logs to an external storage backend of your choice and makes the logs immutable; it can also encrypt them at rest, satisfying the tamper‑evidence requirement.

Can hoop.dev mask credit‑card numbers in model responses?

Yes. You can define pattern‑based masking rules that replace PANs and security codes before the data leaves the gateway.

Implementing a Layer 7 gateway that records, masks, and approves every request gives you the continuous, verifiable evidence PCI DSS expects. hoop.dev provides that capability out of the box, letting you focus on building value‑adding AI services rather than wrestling with compliance gaps.

Explore the open‑source repository on GitHub to see the code, contribute, or fork the project for your own environment.

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