RBAC & ACL
Role-based scopes and per-resource ACL layers define exactly who can invoke which agent or MCP tool. Deny always wins. Policy is defined in the registry and enforced at the gateway in real time.
Jarvis enforces 3 controls at every invocation - identity-based access, data privacy rules, and registry validation - then makes the entire agent execution chain visible through OTEL-native observability and real-time flow tracing across all 6 governance layers.
Six enforcement layers that together ensure no agent invocation happens outside defined identity boundaries, validated registrations, and a complete observable record.
Role-based scopes and per-resource ACL layers define exactly who can invoke which agent or MCP tool. Deny always wins. Policy is defined in the registry and enforced at the gateway in real time.
PII detection, field-level masking, and data residency constraints are applied before payloads reach any agent or tool. Sensitive data never leaves its permitted boundary unredacted.
Every agent and MCP server must pass the registry's publish gate - security scan, capability validation, and policy compliance - before the gateway will route any invocation to it.
Protocol-aware OpenTelemetry spans capture every tool call and agent invocation with latency, token usage, and identity context. Export to any OTLP backend.
Client credentials stay encrypted at rest. Access tokens are acquired and refreshed automatically so agents authenticate to downstream services without handling credentials directly.
Standard OpenID Connect integration with Okta, Microsoft EntraID, Auth0, Keycloak, Amazon Cognito, and any OIDC-compliant auth server.
From the moment an identity presents a token to the moment a tool returns a result, every step is governed, validated, and observable.
// submitted card - pre-validation
{
"name": "diagnosis-agent",
"version": "2.3.1",
"owner": "marcus.t@co",
"auth": null
}// registry-enriched card
{
"name": "diagnosis-agent",
"auth": "oauth2-client-credentials",
"namespace": "sre",
"status": "pending-scan"
}// egress request - injected by gateway GET /api/resource HTTP/1.1 Authorization: Bearer eyJhbGciOiJSUzI1... X-Jarvis-Agent: diagnosis-agent/2.3.1 // client_secret never leaves the platform
GET /.well-known/openid-configuration -> issuer, token_endpoint, jwks_uri audience: agentcore.amazonaws.com audience: api.azureml.ms "groups": ["sre-team"] -> role: sre-engineer
OIDC-based federation with AWS AgentCore and Azure AI Foundry lets agents in those environments authenticate through Jarvis using standard OpenID Connect, inheriting the same RBAC, ACL, and audit trail as natively registered agents. Learn more about AgentCore federation
See how Jarvis Governed AI brings identity enforcement, data privacy, registry validation, and full observability to every agent and tool invocation in your enterprise.
Governed AI is the control plane that spans every layer of execution — identity, data, validation, egress, and telemetry. The 6 rows below map each control to the point in the request path where it actually applies.
| Control | Where it applies |
|---|---|
| RBAC and ACL | At authorisation: the role sets capability, the ACL entry scopes it to specific models, tools, and agents. |
| Data privacy | On the request path: guardrails filter sensitive content before it reaches the model, not after the response. |
| Registry validation | At registration: agent cards and MCP tools are validated against organisation standards before any invocation. |
| Egress OAuth | At the boundary: outbound calls are OAuth-governed, so a client reaches only what its policy entry allows. |
| OTEL observability | Throughout: every tool call and agent invocation is emitted as a traced span in OpenTelemetry format. |
| IdP integration | At the edge: Azure EntraID authenticates the caller, so policy is written against real identities. |
Each control below is pinned to the point in the request path where it applies and to the published framework it implements. That pairing is what makes the governance claim auditable instead of aspirational.
| Specification | Value |
|---|---|
| Identity protocol | OpenID Connect Core 1.0; SAML 2.0 for federation |
| Authorization | OAuth 2.0 (RFC 6749) with Bearer usage per RFC 6750 |
| Egress scoping | Resource Indicators for OAuth 2.0 (RFC 8707) |
| Delegation | OAuth 2.0 Token Exchange (RFC 8693) |
| Token format | JSON Web Token (RFC 7519), signed per RFC 7515 |
| Access model | RBAC plus per-resource ACL, evaluated on every invocation |
| Data-path controls | PII redaction and denied topics applied before the model call |
| Policy library | 100+ prebuilt compliance policies across 4 control layers |
| Validation gate | Agent cards and MCP tools checked at registration, 0 ms added at call time |
| Telemetry | OpenTelemetry OTLP — traces, logs, and metrics in 1 pipeline |
| Span granularity | 1 span per tool call and per agent hop |
| Transport security | TLS 1.2 minimum, TLS 1.3 preferred (RFC 8446) |
| Denial responses | HTTP 401 unauthenticated, HTTP 403 policy denial, HTTP 429 rate limited |
| Zero-trust reference | NIST SP 800-207 (2020) |
| AI governance reference | NIST AI RMF 1.0 (2023) |
| Runtimes | 3 managed Kubernetes services — Amazon EKS, Azure AKS, Google GKE |
Token usage, tool calls, and agent hops surfaced as traced spans — the practical output of the telemetry row above, and the evidence trail a compliance review actually reads.
Governance fails when it is introduced as a single blocking gate. These 5 stages each deliver a working control on their own, so an organisation can stop at any point and still be better off than before.
A governance layer is only credible if its decisions are observable, which is why policy enforcement and tracing are designed as one system rather than two.


Governance conversations tend to converge on the same 4 questions once the architecture diagram is on the table.
RBAC defines what a role can do in general. ACL controls access per resource. A role might permit invoking agents at all; the ACL entry decides which agents specifically.
Keeping them separate is what allows a large organisation to hold the number of roles steady while still granting genuinely different reach team by team.
On the way to the model, before the request leaves your boundary. Filtering the response instead would mean the sensitive content had already been transmitted.
The same policy therefore covers every caller — chat, copilots, and agents — because enforcement sits on the shared path rather than in each client.
Agent cards and MCP tool definitions that do not meet your organisation’s standards never become invocable, so the catalog cannot accumulate unreviewed entries.
Running the check at registration rather than at call time means it costs nothing at runtime once an entry is live.
Spans are emitted in OpenTelemetry format, so they land in whatever backend already receives your application traces rather than in a separate AI-only console.
That matters for incident response: an AI-triggered failure appears in the same timeline as the services around it.
Governed AI is the layer the rest of the platform runs on. These pages cover the components it governs.
ASCENDING is an AWS Advanced Tier Services Partner with the AWS Generative AI Competency, and builds Jarvis as licensed software that runs inside your own cloud account. Each control below maps to a published framework rather than a product-specific convention.