By NHI Mgmt Group Editorial TeamBased on Cerbos: “Row-level security for Apache Trino, powered by Cerbos Synapse” (April 7, 2026)

TL;DR: Trino authorization requests can be translated into Cerbos policy checks, enriched with identity attributes, and returned as table access, row filters, and column masks in the format Trino expects, according to Cerbos. The real change is governance, not convenience: authorization becomes portable, auditable, and attribute-driven across systems that do not share a common policy protocol.


At a glance

What this is: This is an analysis of how Cerbos Synapse mediates Trino authorization so policy decisions, row filters, and column masks can be evaluated centrally and returned in the format Trino expects.

Why it matters: It matters because identity and data access teams can govern fine-grained analytics access through shared policy and attributes instead of embedding logic separately in each platform.


Context

Trino authorization often needs more than a simple allow or deny decision. Once row filtering and column masking enter the picture, the decision becomes a data governance problem as much as an access control problem, because the system must combine identity attributes with policy outputs before results are returned.

Cerbos Synapse addresses that gap by translating non-Cerbos protocols into Cerbos policy checks and then translating the response back into the calling system's expected shape. In practice, that means a single policy model can govern table access, row-level visibility, and column masking without asking the analytics engine to understand Cerbos directly.


Key questions

Q: Why do identity attributes matter so much in row-level security and column masking?

A: Because the policy engine often needs more context than the application request contains. Department, role, and clearance can determine which rows are visible and how sensitive columns are rendered. If those attributes are stale or incomplete, the policy can produce the wrong result even though the enforcement path itself is functioning as designed.

Q: Why do attribute-based policies matter for analytics authorization?

A: They matter because analytics access often depends on more than role membership. Department, clearance, and similar attributes let policy decide not only whether a query is allowed, but what subset of rows and columns the user can actually see, which is essential for governed data exposure.

Q: What breaks when row filters and masks are scattered across tools?

A: Consistency breaks. Different platforms, views, and plugins start enforcing different versions of the same rule, which makes audit trails harder to trust and creates gaps between what policy intended and what users actually saw in the query result.

Q: How do identity attributes change authorization decisions at query time?

A: The attributes turn a generic principal into a governed context. If the identity provider says a user moved departments or changed clearance, the next query can inherit that change immediately, so access decisions reflect current state rather than last week's entitlement snapshot.


Technical breakdown

Protocol translation between Trino and a central policy engine

Trino's OPA plugin expects one request shape, while Cerbos policy evaluation expects another. Synapse acts as the orchestration layer between them: it receives Trino's authorization calls, converts them into Cerbos CheckResources requests, evaluates policy through the PDP, and converts the response back into Trino's format. That translation layer matters because authorization logic is often trapped inside platform-specific interfaces. Once the protocol is normalized, the policy language and decision logic can be reused across systems with different native authorization models.

Practical implication: Treat protocol translation as a governance boundary, not just plumbing, and keep the policy decision outside the query engine.

How row filtering and column masking are derived from identity attributes

Row filtering and column masking are not binary authorization outcomes. They are conditional expressions generated from policy and enriched principal context, such as department, role, or clearance. Synapse fetches those attributes from an identity provider, attaches them to the principal, and lets Cerbos return SQL WHERE clauses or mask expressions. This is a classic attribute-driven access pattern, but applied at query execution time. The key distinction is that the policy is not only deciding whether access is allowed, it is shaping the data that is returned.

Practical implication: Use identity attributes as policy inputs for fine-grained analytics controls, and ensure those attributes are current at request time.

Why portable policy changes data governance and auditability

When access rules live in a shared policy store, they become versioned, testable, and auditable across systems instead of being duplicated in views, application code, or custom plugins. That is the governance value here. Trino is one consumer, but the pattern extends to other systems that speak different authorization protocols. Central policy does not remove system-specific behavior, but it does reduce drift between platforms, because the same rules and audit trail can govern multiple access paths.

Practical implication: Centralize policy logic where possible, then verify that each consuming system preserves the same authorization intent and audit trail.


NHI Mgmt Group analysis

Portable authorization is becoming a governance requirement, not a convenience feature. Trino, Kafka, Kubernetes, and Envoy all expose different authorization interfaces, which means policy fragmentation is the default unless a translation layer normalizes decision inputs and outputs. The practical consequence is that identity and data governance teams can no longer treat each platform as a separate policy island. They need a model that survives protocol differences without changing the underlying control intent.

Attribute-enriched query authorization is where data governance becomes operational. A username alone is too thin for row-level filtering or masking decisions because the policy needs department, clearance, or similar context at evaluation time. That makes identity attributes part of the access decision, not just login metadata. For practitioners, the hard question is whether those attributes are authoritative, current, and consistently sourced across the stack.

Fine-grained analytics access should be governed at decision time, not embedded in query design. When row filters and column masks are expressed in policy, they can change with identity state instead of being hard-coded into views or application logic. That reduces policy drift and makes review, audit, and test coverage more coherent. The implication is that Trino governance should be treated as part of a broader identity-aware access architecture, not a standalone SQL problem.

Policy portability only works if the decision semantics are stable across systems. Translating between protocols is useful only when the same policy intent can be preserved from request to response. If row filters in one platform behave differently from another because of schema assumptions or connector-specific quirks, portability becomes illusion rather than control. Practitioners should validate semantic equivalence, not just message passing.

Attribute-based masking is the named concept this architecture makes practical. It combines identity context with policy output so the same column can be displayed differently depending on the authenticated principal's attributes. That is a stronger governance pattern than static role-based masking because it can reflect current clearance or department state. The practitioner takeaway is that masking policy must be designed as a living identity control, not a presentation layer shortcut.

What this signals

Attribute-based masking is becoming the stronger pattern for governed analytics. Once a query engine can attach current identity attributes to the authorization request, access control stops being a binary gate and becomes a data-shaping control. That changes how teams design review processes, because the real control point is the policy decision that returns the row filter or mask, not the query itself.

Trino-style integrations also show why protocol translation belongs in the access layer rather than in the analytics application. When authorization semantics are normalized across systems, teams can keep policy review, testing, and audit evidence in one place without forcing every platform to adopt the same native protocol.


For practitioners

  • Standardise the policy decision layer Keep table access, row filters, and column masks in one governed policy model rather than scattering rules across Trino views, plugins, and application code.
  • Enrich principals with authoritative identity attributes Pull department, clearance, and similar attributes from the identity provider at request time so policy decisions use current context instead of stale claims.
  • Test all three authorization outcomes Verify allow or deny, row filter output, and column mask output separately before deployment so a policy change does not silently alter query visibility.
  • Audit decision logs for visibility scope Review which user, table, filter, and mask were returned for each query so compliance teams can reconstruct what data was actually exposed.
  • Validate semantic parity across systems Check that the same policy intent produces equivalent outcomes in Trino and any other translated authorization endpoint, especially where SQL or connector behavior differs.

Key takeaways

  • Trino authorization becomes materially more governable when policy decisions can be translated, enriched, and returned as table access, row filters, and masks.
  • The main operational benefit is not convenience but control consistency, because one policy model can shape what users can see across different systems.
  • Practitioners should care most about identity attribute quality, policy test coverage, and semantic equivalence across platforms, because those determine whether portability is real.

Standards & Framework Alignment

This section maps relevant standards and security frameworks to the operational risks and controls described in this guidance.

OWASP API Security Top 10 and OWASP Non-Human Identity Top 10 address the attack and risk surface, while NIST CSF 2.0 and CIS Controls v8 set the governance and control requirements practitioners need to meet.

FrameworkControl / ReferenceRelevance
OWASP API Security Top 10API5 — Broken Function Level AuthorizationTrino request translation is enforcing access decisions on named operations and query functions.
Recommendation — Apply API5-style checks to ensure each translated Trino action maps to an explicit authorization rule.
NIST CSF 2.0PR.AA-05 — Access Permissions, Entitlements and AuthorizationsThe article centers on governed permissions and entitlement decisions for query access.
Recommendation — Align query authorization and masking decisions to PR.AA-05 so entitlements are reviewed and enforced consistently.
CIS Controls v8CIS-5 — Account ManagementIdentity attributes and access scope are driving who can query what data.
Recommendation — Tie analytic access changes to CIS-5 so account attributes and access scope stay current.
OWASP Non-Human Identity Top 10NHI-05 — Overprivileged NHIThe architecture is about preventing overbroad effective access when policy is translated across systems.
Recommendation — Use NHI-05 to review whether translated policies still allow more data access than the principal should have.

Key terms

  • Protocol Translation: Protocol translation converts one identity language into another without losing trust context. For tactical systems, that usually means bridging LDAP expectations on the application side with OIDC or other enterprise identity assertions on the directory side.
  • Attribute-Based Masking: Attribute-based masking changes how data is displayed based on identity attributes such as department, role, or clearance. It is stronger than static role masking because the decision can reflect current user context at query time, which makes the control more precise and more governable.
  • Row-level filtering: A control that limits which records a user or workload can see inside a table or dataset. It preserves access to the application or query while removing rows that fall outside policy, which is useful for tenant isolation, analytics segregation, and data minimisation.
  • Policy decision point: A policy decision point evaluates contextual rules and returns an access decision that enforcement points can act on. It separates authorization logic from application code, which helps teams manage tenant rules, resource ownership, and risk signals consistently.

Deepen your knowledge

NHI governance, agentic AI identity, and machine identity lifecycle are core topics in our NHI Foundation Level course, the industry's only accredited NHI security programme. If you are building or maturing an IAM programme, it is worth exploring.
NHIMG Editorial Note
Published by the NHIMG editorial team on June 10, 2026.
Updated on October 6, 2026.
NHI Mgmt Group, the independent authority on Non-Human Identity, IAM, and Agentic AI security. nhimg.org