All posts

FFIEC for non-human identities: governing machine access end to end (on BigQuery)

How can you prove to an FFIEC auditor that your service‑account‑driven queries against BigQuery are fully controlled? Organizations that rely on automated pipelines, CI/CD jobs, and analytics bots often grant those machines static service‑account keys or long‑lived OAuth tokens. Teams check the keys into repositories, duplicate them across environments, and rarely rotate them. When a pipeline runs, the request travels straight from the build agent to BigQuery, bypassing any human checkpoint. The

Free White Paper

End-to-End Encryption + Non-Human Identity Management: The Complete Guide

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

Free. No spam. Unsubscribe anytime.

How can you prove to an FFIEC auditor that your service‑account‑driven queries against BigQuery are fully controlled? Organizations that rely on automated pipelines, CI/CD jobs, and analytics bots often grant those machines static service‑account keys or long‑lived OAuth tokens. Teams check the keys into repositories, duplicate them across environments, and rarely rotate them. When a pipeline runs, the request travels straight from the build agent to BigQuery, bypassing any human checkpoint. The result is a black box: the auditor sees a spike in query volume but cannot tie it to a specific job, approval, or policy. The system does not create a record of who triggered the request, what data was returned, or whether sensitive fields were redacted. The situation leaves you exposed to FFIEC findings that demand “complete visibility into non‑human access” and “evidence of least‑privilege enforcement.”

Why the current setup still falls short of ffiec expectations

Most teams solve the identity problem by federating service accounts to an identity provider (IdP) such as Okta or Azure AD. This step satisfies the setup requirement: the IdP authenticates the machine, issues a token, and the machine presents the token to BigQuery. The token proves who the request is coming from, and the token’s scopes limit which datasets can be accessed. However, the request still travels directly to BigQuery over the public endpoint. Because the gateway is absent, the following gaps remain:

  • No real‑time approval workflow. A job can launch at any time without a human sign‑off.
  • No command‑level audit. BigQuery logs contain the query text but not the context of the originating pipeline or the identity of the orchestrator.
  • No inline data masking. Sensitive columns (PII, account numbers) return in clear text to the machine, which may store them elsewhere.
  • No session replay. If an auditor asks to see exactly what the machine saw, the answer is “we only have the query string.”

From an FFIEC perspective, the organization can claim it has an identity system, but it cannot demonstrate that every non‑human action was governed, reviewed, and recorded. The evidence required by the standard, approval records, masked data evidence, and immutable session logs, simply does not exist.

How hoop.dev creates the ffiec‑ready audit trail

hoop.dev inserts a Layer 7 gateway between the machine identity and BigQuery. The gateway is the data path where enforcement happens. It receives the OIDC token from the IdP, validates it, and then proxies the request to BigQuery using its own credential. Because the request must pass through hoop.dev, the system can apply the following enforcement outcomes:

  • Just‑in‑time approval. Before a query reaches BigQuery, hoop.dev requires a designated approver to consent. The approval event stores alongside the session record.
  • Inline masking. hoop.dev automatically redacts or tokenises columns marked as sensitive before the machine sees them. The original values never leave the gateway.
  • Command‑level audit. hoop.dev logs every query, the exact identity token, the approving user (if any), and the timestamp.
  • Session recording and replay. hoop.dev captures the full request‑response stream, enabling auditors to replay the exact data that was returned to the service account.

hoop.dev produces all of these outcomes because it sits in the data path. The setup (IdP, service‑account token) still decides who may start a request, but without hoop.dev the request would reach BigQuery unchecked.

Continue reading? Get the full guide.

End-to-End Encryption + Non-Human Identity Management: Architecture Patterns & Best Practices

Free. No spam. Unsubscribe anytime.

Mapping ffiec evidence requirements to hoop.dev artifacts

FFIEC expects three core artifacts for non‑human access:

  1. Access request and approval logs. hoop.dev records the approval decision, the requesting service account, and the approving human (if required). Teams can export these logs to a SIEM for retention.
  2. Data‑handling proof. Teams define masking policies once in hoop.dev’s configuration. When a query returns a masked column, hoop.dev logs the masking rule applied, providing evidence that PII never left the controlled environment.
  3. Session replay capability. Auditors retrieve the exact request‑response payload from hoop.dev’s session archive, demonstrating that the machine only saw the redacted data.

Because the gateway generates the artifacts, the gateway makes them immutable with respect to the target system. An auditor reviewing BigQuery’s native logs will see a matching query identifier, but the authoritative evidence lives in hoop.dev’s audit store, satisfying the “end‑to‑end” requirement of the standard.

Getting started with hoop.dev for BigQuery

To adopt this approach, follow the getting‑started guide to deploy the gateway in your network. Register BigQuery as a connection, define the masking rules for any PII columns, and configure the approval workflow that aligns with your risk appetite. The learn section contains deeper explanations of masking syntax, approval policies, and session‑record retrieval. All configuration stores in the gateway, so service‑account credentials never appear in CI pipelines.

FAQ

Do I need to change my existing service‑account keys?

No. hoop.dev continues to use the same service‑account credential to talk to BigQuery, but the credential stores only inside the gateway. Your pipelines keep using the same IdP‑issued token to authenticate to the gateway.

Can I still run ad‑hoc queries from a notebook?

Yes. The notebook authenticates to the IdP, receives a token, and then connects through hoop.dev just like any other client. The gateway applies the same masking and audit policies.

How long are session records retained?

Teams define retention in the gateway configuration. The FFIEC does not prescribe a specific period, only that records be retained for the audit window you choose.

Explore the open‑source code on GitHub to see how the gateway is built and to contribute improvements: https://github.com/hoophq/hoop.

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