Blank white background with no objects or features visible.

Estamos disponibilizando acesso gratuito ao Gartner Hype Cycle for AI Governance 2026 completo. Obtenha sua cópia →

RBAC vs ABAC: Escolhendo um Modelo de Controle de Acesso para Agentes de IA

By Ashish Dubey

Updated: November 3, 2026

Published: September 21, 2026

⚡ Resumo rápido
  • O RBAC concede permissões a papéis nomeados e atribui sujeitos a eles. O ABAC avalia uma política com base nos atributos do sujeito, recurso, ação e ambiente no momento da requisição.
  • A verdadeira diferença entre RBAC e ABAC não é a expressividade. É a capacidade de resposta: com o RBAC você pode consultar quem tem acesso lendo uma tabela. Com o ABAC você precisa executar o motor de políticas para descobrir.
  • O controle de acesso para agentes de IA parece o argumento clássico de livro didático a favor do ABAC — um sujeito não humano cujas permissões teoricamente dependem de qual ferramenta, de quais dados e em nome de quem ele está atuando.
  • O que realmente é implementado na prática é o RBAC com vinculações de escopo de recurso (resource-scoped bindings), combinado com algumas poucas restrições contextuais pontuais. É isso que o TrueFoundry implementa: sujeito + recurso + papel, e não um motor de políticas.
  • A maioria das equipes não precisa de ABAC. Elas precisam de papéis vinculados a recursos individuais em vez do tenant inteiro, além de algumas verificações em tempo de execução onde possam ocorrer danos.

O que o RBAC realmente é

O controle de acesso baseado em papéis (RBAC - Role-Based Access Control) coloca uma camada nomeada entre pessoas e permissões. Você não concede a Priya a capacidade de ler um secret group. Você define um papel chamado Secret Group Viewer contendo essa permissão e atribui Priya a ele.

Três elementos compõem o modelo de controle de acesso baseado em papéis:

Elemento O que é
Permissão (Permission) Uma única ação permitida em um tipo de item, como mcp-server:CreateMcpServer
Papel (Role) Um conjunto nomeado de permissões, como Workspace Admin
Atribuição (Assignment) A ligação entre um sujeito e um papel, também chamada de role binding

O valor está na indireção. Quando a equipe de segurança decide que os leitores não devem mais visualizar valores secretos, eles editam um único papel e todos os leitores são atualizados de uma só vez. O NIST formalizou este modelo há décadas, razão pela qual todo console de nuvem possui uma página de papéis (roles).

A fraqueza também está na indireção. Os papéis são conjuntos estáticos. Se uma permissão deve ser aplicada apenas a partir de um IP corporativo, ou apenas a registros na própria região do solicitante, o RBAC simples não consegue expressar isso. As equipes respondem criando mais papéis: analyst-eu, analyst-eu-readonly, analyst-eu-readonly-prod. Isso é a explosão de papéis (role explosion), a razão mais citada para as pessoas buscarem o ABAC.

O que o ABAC realmente é

O controle de acesso baseado em atributos (ABAC - Attribute-Based Access Control) remove o conjunto nomeado. Em vez de perguntar qual papel um sujeito possui, ele avalia uma expressão de política no momento da requisição considerando quatro categorias de atributos:

Categoria de atributo Exemplos
Sujeito (Subject) Departamento, nível de acesso (clearance), status de emprego, gestor, proprietário do agente
Recurso (Resource) Classificação, equipe proprietária, região dos dados, tag de sensibilidade
Ação (Action) Ler (read), escrever (write), excluir (delete), invocar (invoke), aprovar (approve)
Ambiente (Environment) Hora do dia, IP de origem, postura do dispositivo, pontuação de risco da requisição

Uma política lê algo como: permitir leitura quando subject.department == resource.owning_team e resource.classification != "restricted" e env.network == "corp". O NIST SP 800-162 é a documentação canônica; na prática, o ABAC é disponibilizado como uma linguagem de política como XACML, Rego ou Cedar por trás de um serviço de autorização.

O ABAC é genuinamente mais expressivo. Uma única regra bem escrita pode substituir uma centena de papéis e lida com relações que o RBAC não consegue declarar de forma alguma: “o médico atribuído a este paciente”.

Essa expressividade tem um custo. Políticas são código: elas precisam de revisão, testes, versionamento e uma maneira de entender como as regras interagem. E a pergunta que um auditor faz primeiro — quem pode ler estes dados? — deixa de ter uma resposta de consulta direta. Você precisa enumerar cada sujeito e avaliar a política em relação a cada um. Por essa razão, alguns motores oferecem ferramentas de consulta reversa; a maioria das implantações não as utiliza.

Diferenças entre RBAC e ABAC em síntese

Entrada de decisão Papéis atribuídos ao sujeito Atributos do sujeito, recurso, ação e ambiente
Onde a política reside Uma tabela de papéis Um arquivo ou motor de políticas
Respondendo a “quem tem acesso?” Ler os bindings Avaliar a política em todos os sujeitos
Consciência de contexto Nenhuma nativamente De primeira classe (nativo)
Permissões refinadas (fine-grained) Adicionando papéis ou restringindo o escopo Adicionando condições
Modo de falha em escala Explosão de papéis (role explosion) Descontrole de políticas (policy sprawl) que ninguém entende completamente
Custo de integração (onboarding) Horas Semanas, além de uma fonte da verdade para os atributos
Ideal quando O acesso se mapeia claramente para a função de trabalho O acesso realmente depende do contexto em tempo de execução

Uma coisa que a tabela esconde: o ABAC tem um pré-requisito, atributos confiáveis. Uma política baseada em resource.data_region é tão boa quanto a disciplina de marcação de tags que preenche esse campo. A maioria das organizações que tenta usar ABAC descobre que tem um problema de dados não etiquetados antes de ter um problema de autorização. E os dois modelos não são exclusivos — a estrutura comum em produção é o RBAC como espinha dorsal com algumas condições de atributo por cima.

Onde as equipes erram nisso

Tratar a explosão de papéis como motivo para mudar de modelo. A explosão de papéis geralmente é um erro de escopo, não uma falha do modelo. Se você tem analyst-team-a, analyst-team-b e analyst-team-c, você não precisa de atributos — você precisa de um papel analyst vinculado separadamente aos recursos de cada equipe. A maior parte da dor atribuída ao RBAC vem de conceder permissões em todo o tenant quando a vinculação deveria pertencer a um único recurso.

Comprar expressividade que você não pode auditar. O ABAC permite escrever uma regra que sua equipe de conformidade não consegue ler. Essa troca às vezes vale a pena, mas nunca por acidente. Antes de adotar um motor de políticas, pergunte quem responderá ao questionário de revisão de acesso no próximo trimestre e como.

Esquecer que as concessões se somam. Um sujeito pode ter acesso diretamente e herdá-lo por meio de uma equipe, e remover um não remove o outro. Fica pior quando um motor de políticas é adicionado por cima, porque dois sistemas podem conceder acessos de forma independente.

Definir permissões para o humano e ignorar o agente. Todo controle do lado humano é decorativo se o agente que eles criaram for executado com um token de serviço compartilhado com acesso a todo o tenant.

Quer ver o acesso com escopo definido na prática?
Inicie o TrueFoundry e conceda um papel em um único recurso em vez de todo o tenant — leva cerca de dois minutos.

Por que agentes de IA parecem o cenário perfeito para o ABAC

Um agente de IA é um sujeito não humano cuja autoridade efetiva não é fixa. Ele pode ler um repositório público em um momento e acessar um registro de cliente no momento seguinte. Ele atua para diferentes pessoas em momentos diferentes. Suas entradas podem ser adversariais — o corpo de uma issue envenenada pode direcioná-lo a uma ferramenta que ele não deveria chamar. E, ao contrário de um humano, ele não pausa para refletir se uma ação é sensata.

Escreva isso como um requisito e parecerá exatamente um resumo de ABAC: permitir esta chamada de ferramenta quando o usuário solicitante tiver acesso upstream ao destino, a ferramenta não for destrutiva e a requisição não tiver origem em conteúdo não confiável. Três atributos, uma regra. Então, por que quase nada é implementado dessa forma?

Porque os atributos não estão disponíveis de forma confiável no momento da decisão. “Esta requisição originou-se de conteúdo não confiável” não é um campo, é um problema de pesquisa. “O usuário solicitante tem acesso upstream” é passível de conhecimento — mas a maneira correta e mais barata de saber é chamar o sistema upstream com as próprias credenciais desse usuário e deixar que ele responda, em vez de espelhar seu modelo de permissão em seu motor de políticas e torcer para que a cópia permaneça atualizada.

O custo de auditabilidade também é mais pesado exatamente onde os agentes operam. Permissões de agentes são o que a revisão de segurança mais questiona, e “a política é avaliada como permitida sob estas condições” é uma resposta muito pior do que uma tabela dizendo que este agente possui MCP Server User nestes três servidores.

Portanto: agentes precisam de acesso mais restrito do que humanos e mais inspecionável do que humanos. O ABAC entrega o primeiro e prejudica o segundo. Daí o padrão de implementação — RBAC com escopo rígido de recursos, acrescido de algumas poucas restrições contextuais onde o contexto realmente importa.

Como isso funciona no TrueFoundry

O TrueFoundry implementa RBAC com vinculações de papéis com escopo de recurso (resource-scoped role bindings). Não é um motor de políticas ABAC, e é importante ser claro quanto a isso. O modelo responde a uma pergunta: quem pode fazer o quê, e onde?

  • Um sujeito (subject) é a identidade que recebe acesso: um usuário, equipe, conta virtual ou agente.
  • Um recurso (resource) é o item que está sendo acessado: uma conta de provedor de modelo, servidor MCP, agente, cluster, workspace, repositório ou secret group.
  • Um papel (role) é um conjunto nomeado de ações permitidas.

Atribuir um papel a um sujeito para um recurso cria uma role binding. O acesso é gerenciado de forma independente da configuração do recurso, portanto você pode alterar quem tem acesso sem reimplantar nada.

As concessões são feitas a partir do próprio recurso — abra o menu de três pontos e selecione Access Control:

Three-dot menu on the nm-gemini2 model provider account with the Access Control option selected
Menu de três pontos na conta do provedor de modelo nm-gemini2 com a opção Access Control selecionada

Em seguida, escolha um ou mais sujeitos e um papel. O painel lista as ações que cada papel inclui, para que você veja o que está concedendo antes de fazê-lo:

Grant Access drawer showing the subject selector with the Manager and User roles available for a provider account
Painel Grant Access mostrando o seletor de sujeito com os papéis Manager e User disponíveis para uma conta de provedor

Os papéis oferecidos dependem do tipo de recurso: Manager e User em uma conta de provedor de modelo; MCP Server Manager, MCP Server User e MCP Server Approver em um servidor MCP; Agent Manager e Agent Access em um agente. Clusters, workspaces e secret groups têm, cada um, suas próprias camadas de admin, member e viewer.

Três escopos, não apenas um

Os papéis operam em três escopos, e mantê-los bem compreendidos é grande parte do segredo:

Escopo Aplica-se a Exemplos
Resource Um recurso específico MCP Server User em um servidor
Tenant Tudo no tenant Admin, Member, Read-Only Member, papéis customizados
Team Uma equipe e as Contas Virtuais pertencentes a ela Team Member, Team Manager

Admin e Read-Only Member não podem ser editados. Member pode — a linha de base que cada usuário recebe, que por padrão inclui apenas cluster:ReadCluster, environment:ListEnvironments, settings:ListSettings, user:ListUsers, repository:CreateRepository, secret-group:CreateSecretGroup e agent:CreateAgent. Ele não alcança nenhum modelo individual, servidor MCP ou workspace — esses vêm de vinculações de recursos ou de associação a equipes.

Default Roles list showing the Member role available to edit alongside the uneditable built-in roles
Lista de papéis padrão mostrando o papel Member disponível para edição ao lado dos papéis nativos não editáveis

Os papéis de equipe são o mais próximo de uma condição de atributo aqui, e a semelhança é instrutiva. O Team Member carrega virtual-account:ReadVirtualAccount, com escopo para Contas Virtuais pertencentes a equipes às quais o usuário realmente pertence. A permissão é idêntica para todos; o conjunto de objetos que ela alcança difere por pessoa.

Edit Role drawer for Team Member showing the team-scoped Virtual Account permissions
Painel Edit Role para Team Member mostrando as permissões de Conta Virtual com escopo de equipe

Isso é escopo por propriedade (ownership scoping), não ABAC: sem expressão de política, sem avaliação de atributo, apenas uma relação fixa entre uma equipe e o que ela possui. Ele cobre o caso comum que leva as pessoas em direção aos atributos e permanece legível.

Papéis customizados para permissões refinadas

Quando os papéis nativos do tenant forem muito amplos ou muito restritos, crie o seu próprio a partir do catálogo de permissões. Cada permissão segue a estrutura resource:Action, agrupada por tipo de recurso:

Custom Roles page with the Create Role button highlighted
Página Custom Roles com o botão Create Role em destaque
Custom role form showing the available tenant permissions grouped by resource type
Formulário de papel customizado mostrando as permissões de tenant disponíveis agrupadas por tipo de recurso

Uma regra governa quando usar isso: as permissões de papéis customizados aplicam-se a todos os recursos do tipo selecionado. Um papel customizado com mcp-server:ReadMcpServer alcança todos os servidores MCP, não apenas alguns escolhidos. Para um único recurso, use a página Access Control desse recurso. Inverter isso é como um papel destinado a um único servidor se torna silenciosamente um acesso de leitura a todo o tenant.

As restrições contextuais, nomeadas com precisão

O TrueFoundry adiciona sensibilidade ao contexto em quatro lugares. Nenhum deles é uma política de atributos, e cada um é inspecionável:

Mecanismo O que ele torna condicional
Per-resource role bindings A autoridade se aplica apenas ao recurso nomeado, não ao tenant
Per-user OAuth em chamadas de saída Cada usuário autoriza sua própria conta upstream, de modo que as permissões do próprio sistema upstream se aplicam por requisição
Ativação e desativação a nível de ferramenta Ferramentas desativadas são omitidas de tools/list e não podem ser invocadas de forma alguma
Políticas de aprovação humana Chamadas de ferramentas sensíveis são retidas até que um MCP Server Approver decida

O segundo item faz a maior parte do trabalho que as pessoas esperam do ABAC. Quando um agente chama uma ferramenta para um usuário específico via per-user OAuth, o serviço upstream avalia as permissões reais desse usuário. Você não modelou as ACLs de repositório do GitHub em um motor de políticas; você delegou ao sistema que as possui, e essa cópia não fica desatualizada. O modelo de controle de acesso MCP é construído diretamente sobre isso.

Um limite: tokens de Conta Virtual fornecem a cada requisição acesso idêntico. Eles são adequados para chamadas serviço-a-serviço e inadequados onde permissões por usuário importam.

Um exemplo prático, de duas maneiras

Dois cenários reais da documentação mostram o modelo funcionando a partir de direções opostas.

Dar a um auditor acesso somente leitura. Atribua Read-Only Member em Access > Users. É um papel nativo do tenant, fornece acesso somente leitura entre os tipos de recursos suportados e não pode ser editado — o que é o ponto principal, pois um papel de auditoria que pode ser silenciosamente ampliado não é um papel de auditoria. Para um grupo de auditores, atribua-o a uma equipe para que novos integrantes o herdem. Se o auditor deve ver apenas recursos selecionados, ignore o papel de tenant completamente e conceda o papel de viewer ou access em cada recurso.

Permitir que as pessoas criem servidores MCP sem torná-las Admin. O instinto é conceder Admin, porque criar um servidor precisa de uma permissão que o Member não possui. Em vez disso, crie um papel customizado contendo exatamente mcp-server:CreateMcpServer:

Custom role form with the Create MCP Server permission selected
Formulário de papel customizado com a permissão Create MCP Server selecionada

Em seguida, atribua-o em Access > Users ou Access > Teams:

Assigning the custom MCP server creation role to a user
Atribuindo o papel customizado de criação de servidor MCP a um usuário

O comportamento é a parte interessante. Create MCP Server permite que alguém crie um novo servidor. Ele não concede acesso aos servidores existentes. Após criar um servidor, o proprietário concede a si mesmo MCP Server Manager a partir da própria página Access Control desse servidor.

A autoridade de criação e a autoridade de acesso são separadas, e nenhuma vaza para a outra. Uma política ABAC poderia expressar a mesma coisa em uma regra que você teria que ler com atenção para ter certeza. Aqui são duas linhas em duas tabelas. O padrão também se adapta para casos menores: para permitir que todos vejam os controles do gateway sem serem Admin, edite Member e adicione gateway-controls:ListGatewayControls.

Formulário do papel Member com a permissão List Gateway Controls selecionada Pronto para definir o escopo do seu primeiro agente? Crie um papel customizado, vincule-o a um servidor MCP e veja exatamente o que seu agente pode acessar. Comece gratuitamente no TrueFoundry Pontos de atenção importantesAs concessões se somam, e remover uma não remove a outra. Um sujeito pode receber acesso diretamente e através da associação a uma equipe. Ao investigar por que alguém ainda vê algo, verifique tanto as vinculações diretas quanto tudo herdado de suas equipes. Este é o primeiro lugar para procurar, sempre.Editar o papel padrão de uma equipe altera-o para todas as equipes. Team Member e Team Manager são editados em Access > Default Roles, e a edição é global. Adicionar virtual-account:ManageVirtualAccount para que uma equipe possa recuperar tokens concede essa permissão a membros de todas as equipes. Cada pessoa permanece limitada às suas próprias equipes, mas a capacidade se espalha para todos os lugares.Papéis do tenant combinam-se com papéis de tenant da equipe. Um usuário possui um papel de tenant atribuído diretamente. Se ele também pertencer a uma equipe que carrega um papel de tenant, suas permissões efetivas serão a união de ambos — de modo que a verdadeira autoridade de um usuário não é visível apenas em seu registro de usuário. Equipes podem ser criadas manualmente, provisionadas do seu IdP via SCIM ou aplicadas com tfy apply em um YAML de equipe, e um valor de claim do IdP pode ser mapeado diretamente para uma equipe.Leituras relacionadasAutenticação de API e RBAC no AI Gateway — como esses papéis são aplicados no tráfego do gatewayControle de Acesso MCP: Protegendo Agentes de IA com um MCP Gateway — permissões a nível de ferramenta e servidor na práticaControle de Acesso MCP Empresarial — escalando o modelo entre muitos servidores e equipesO que é um MCP Gateway: Arquitetura e Casos de Uso — onde fica o ponto de aplicação das regrasConstruindo uma Estrutura de Governança de IA — o panorama geral de políticas em torno do controle de acessoConclusãoO debate RBAC vs ABAC geralmente termina sem uma resposta clara. Não deveria. O ABAC é adequado quando o acesso realmente depende do contexto em tempo de execução que você pode medir e confiar, e quando você tem onde colocar o código de política e alguém para mantê-lo. Para todo o resto, o RBAC com vinculações devidamente delimitadas faz o trabalho e deixa algo que um humano pode ler.Os agentes de IA parecem quebrar essa regra, e eles realmente mudam a definição de uma boa arquitetura — escopo mais restrito do que os humanos recebem, credenciais por usuário em vez de tokens compartilhados, validação humana em operações que causam danos. Nada disso precisa de um motor de políticas — apenas papéis vinculados a recursos individuais em vez de todo o tenant, e algumas verificações bem escolhidas no momento da execução.É isso que o TrueFoundry implementa, e chamá-lo de RBAC em vez de algo mais grandioso é a grande questão. Quando sua próxima revisão de acesso perguntar o que este agente pode acessar, a resposta deve ser uma lista, não uma prova lógica.
Team form showing the identity provider FQN and claim value mapping fields
Formulário de equipe mostrando os campos de FQN do provedor de identidade e mapeamento do valor da claim
Defina o escopo do seu primeiro agente no TrueFoundry
Member role form with the List Gateway Controls permission selected
arrow1

Try now.

One gateway for all your models, MCP servers, and agents.
No credit card needed.

Start free
Table of Contents

One Gateway for Every LLM, Agent and MCP Server

Book a 30-min with our AI expert

Book a Demo

The fastest way to build, govern and scale your AI

Book Demo
Summarize with
ChatGPT logo by OpenAI
Perplexity AI logo
Blurry red snowflake on white background, symmetrical frosty design with soft edges and abstract shape.

Discover More

No items found.
November 5, 2026
|
5 min read

AI Gateway Security for Agents: Straiker on TrueFoundry

No items found.
TrueFoundry AI gateway governs production systems in enterprise AI deployments
June 6, 2026
|
5 min read

O que é um Sistema de Produção em IA? Um Guia Completo para Equipes Empresariais

No items found.
October 8, 2026
|
5 min read

O que é o OpenRouter? Um guia técnico sobre o que acontece com a sua requisição

No items found.
TrueFoundry AI gateway enables Multi-Model orchestration across enterprise LLM providers
October 12, 2026
|
5 min read

O que é Orquestração Multimodelo? Um Guia Prático para Equipes de Enterprise

No items found.
No items found.

Recent Blogs

Black left pointing arrow symbol on white background, directional indicator.
Black left pointing arrow symbol on white background, directional indicator.

Frequently asked questions

RBAC vs. ABAC: qual é a diferença de fato?

O RBAC concede permissões a papéis nomeados e atribui sujeitos a esses papéis, de modo que uma decisão é uma consulta às vinculações de papel do sujeito. O ABAC avalia uma política no momento da requisição sobre atributos do sujeito, do recurso, da ação e do ambiente, de modo que uma decisão é um cálculo. O RBAC é mais fácil de auditar; o ABAC é mais expressivo. A diferença aparece quando alguém pergunta quem pode acessar um recurso: o RBAC responde a partir de uma tabela, e o ABAC exige avaliar a política.

‍

O ABAC é melhor do que o RBAC para agentes de IA?

No papel, sim — a autoridade adequada de um agente varia conforme a ferramenta que ele chama, os dados que toca e a pessoa em nome de quem age. Na prática, a maioria das equipes adota RBAC com vinculações no escopo de recursos, porque os atributos de que uma política para agentes precisaria ou não estão disponíveis no momento da decisão, ou são mais bem resolvidos delegando ao sistema de origem por meio de credenciais por usuário. A perda de auditabilidade também pesa mais sobre os agentes, que são justamente o que a revisão de segurança mais examina.

É possível usar RBAC e ABAC juntos?

Sim, e essa é a implantação real mais comum. Os papéis formam a espinha dorsal, e algumas condições se aplicam onde se justifica. A versão do TrueFoundry é composta por vinculações de papéis RBAC mais quatro controles: escopo por recurso, OAuth por usuário para que as permissões do sistema de origem se apliquem, ativação e desativação por ferramenta e aprovação humana em chamadas de ferramentas sensíveis. Isso, deliberadamente, não é um mecanismo de políticas.

Posso implantar o TrueFoundry na minha própria VPC ou on-prem?

Sim. O TrueFoundry é executado na sua VPC, on-prem, em ambiente air-gapped ou híbrido, de modo que os prompts e as respostas nunca saem do seu domínio, mesmo quando você roteia entre muitos provedores.

O TrueFoundry oferece suporte a MCP e a agentes de IA em geral?

Sim. Ele inclui um MCP Gateway, um Agent Gateway e um MCP & Agents Registry com controle de acesso em nível de ferramenta. Agentes criados com LangGraph, CrewAI, AutoGen ou um framework próprio podem ser governados de forma centralizada.

Ele se integra com a minha stack de observabilidade existente?

Sim. O gateway é compatível com OpenTelemetry e se integra com Grafana, Datadog, Prometheus ou a sua stack preferida. Ele rastreia cada requisição, do prompt à execução da ferramenta e do modelo, para que você obtenha logs unificados sem precisar remover o que você já usa.

Take a quick product tour
Start Product Tour
Product Tour