Access control for AI agent data queries is a different problem than access control for human users. A human user requests data through a UI with a defined interaction model. An AI agent requests data through a structured context query that may be dynamically constructed based on the agent's current reasoning state. The access control model has to work for queries that were not anticipated at policy-write time.
There are three main patterns for enforcing access control at the connector layer. Each has different operational characteristics and different tradeoffs for specific regulated-industry requirements. This is not a review of which is universally best. It is a comparison to help you choose the right pattern for your access control requirements.
Pattern 1: Allowlist-by-field
Allowlist-by-field defines, for each agent identity, an explicit list of data source fields that the agent is permitted to receive. Any field not on the allowlist is stripped from the response before it reaches the agent, regardless of what the query requested.
This pattern provides the highest precision of control. You can write a policy that says agent customer-summary-agent may receive account_number, account_status, and credit_tier from the customer data source, but not ssn, date_of_birth, or tax_id. The policy is declarative and independent of the agent's query logic.
The tradeoff is maintenance overhead. Every new field that an agent legitimately needs requires a policy update. In a regulated environment where the policy update workflow requires compliance review, this can create friction that slows AI agent development. It also requires the policy team to maintain a current map of which fields exist in each data source, which drifts over time as source schemas evolve.
Allowlist-by-field is the right pattern when: the set of fields an agent legitimately needs is small and stable, the regulatory requirement explicitly specifies which data elements may be shared with automated processes (as is often the case in healthcare for Protected Health Information under HIPAA), and the policy maintenance workflow can be kept synchronous with agent development.
Pattern 2: Role-scoped query
Role-scoped query assigns each agent identity to a data access role, and each role is configured with a set of allowed query types rather than a field list. Instead of specifying which fields the agent can see, you specify what kinds of queries it can make: read customer summary for accounts in portfolio X, read invoice totals for the current quarter, read open service tickets for the agent's assigned account set.
This pattern maps naturally onto how enterprise data is organized. Data source schemas often have natural query boundaries that correspond to business functions: a customer service agent needs different query scope than a risk analysis agent. Role-scoped query formalizes those boundaries without requiring field-by-field enumeration.
The tradeoff is that the access decision is made at the query type level, not the field level. If the query type "read customer summary" returns fields that include sensitive data in some contexts but not others, the policy may be overinclusive. In healthcare environments, where the minimum necessary standard under HIPAA requires that access be limited to the minimum information necessary for the purpose, role-scoped query may not provide sufficient precision for high-sensitivity data access.
Role-scoped query is the right pattern when: the agent's data access needs map cleanly to business function roles that are already defined in your organization, the compliance requirement is satisfied by function-level scoping rather than field-level scoping, and you need policy maintainability at scale (adding a new agent means assigning it a role, not enumerating its field permissions).
Pattern 3: Classification-tag filtering
Classification-tag filtering attaches sensitivity classifications to data fields at the source definition level, and access policies express rules against those classifications rather than against specific field names. A policy might say: agent financial-summary-agent may access fields classified as financial-public and financial-internal but not financial-confidential or pii.
The advantage of this pattern is that it decouples access policy from source schema evolution. When a new field is added to a data source, it is classified at registration time. Existing policies automatically apply to it based on its classification. Policy authors do not need to update agent policies when source schemas change: they only need to ensure new fields are correctly classified.
The challenge is that this pattern requires a maintained data classification registry. Classifications must be accurate and kept current. In practice, classification work is labor-intensive and tends to be incomplete. Policies that reference classifications are only as good as the classification coverage.
Classification-tag filtering is the right pattern when: your organization has or is building a data classification program as part of a broader data governance initiative, you have enough field volume that per-field policy maintenance is impractical, and you can invest in keeping classifications current as source schemas evolve.
Combining patterns
Many regulated environments use a combination. Role-scoped query provides the coarse boundary, defining which data sources and query types an agent can access. Classification-tag filtering provides the fine-grained boundary within those query types, stripping highly sensitive fields even from permitted queries. Allowlist-by-field is reserved for the highest-sensitivity data elements where you want explicit enumeration rather than classification-based inference.
The practical consideration in choosing a combination is operational. Each additional layer of access control requires maintenance and creates a potential source of misconfiguration. More layers are not always more secure if the maintenance burden causes policies to drift out of sync with actual data access requirements. The right level of control is the minimum that satisfies the compliance requirement, not the maximum that is technically implementable.
All three patterns share one requirement: the access control decision must be made at the connector layer, before data is returned to the agent, with a corresponding audit event. Post-retrieval filtering in the agent or orchestration layer is not access control. It is data redaction, which is a different thing, and which does not satisfy the access control requirements of most regulated-industry frameworks.