Com o controle de acesso baseado em funções (RBAC), você define quem pode realizar cada ação na organização e nos projetos, tanto pela API quanto pelo painel. As mesmas permissões valem nos dois ambientes. Quem pode chamar um endpoint (por exemplo, /v1/chat/completions) também pode usar a página correspondente no painel. Sem a permissão necessária, o recurso correspondente da interface fica desabilitado, como o botão Enviar arquivo no Playground. Com o RBAC, você pode:
- Agrupar usuários e atribuir permissões em escala
- Criar funções personalizadas com as permissões exatas de que você precisa
- Definir o escopo de acesso por organização ou projeto
- Aplicar as mesmas permissões no painel e na API
Conceitos principais
- Organização: conta de nível mais alto. As funções da organização podem conceder acesso a todos os projetos.
- Projeto: espaço de trabalho para chaves, arquivos e recursos. As funções do projeto concedem acesso apenas a esse projeto.
- Grupos: conjuntos de usuários aos quais você pode atribuir funções. Você pode sincronizar os grupos com seu provedor de identidade via SCIM para manter a lista de integrantes atualizada automaticamente.
- Funções: conjuntos de permissões, como fazer solicitações a modelos ou gravar arquivos. Você pode criar funções para a organização em Configurações da organização ou para um projeto específico nas configurações desse projeto. Depois de criar as funções da organização ou do projeto, você pode atribuí-las a usuários ou grupos. Um usuário pode ter várias funções e recebe todas as permissões que elas concedem.
- Permissões: ações específicas que uma função permite, como fazer solicitações a modelos, ler arquivos, gravar arquivos ou gerenciar chaves.
Permissões
A tabela mostra as permissões disponíveis, quais funções predefinidas incluem cada permissão e quais permissões você pode configurar em funções personalizadas.
| Área | Ações permitidas | Permissões do proprietário da organização | Permissões do leitor da organização | Permissões do proprietário do projeto | Permissões do membro do projeto | Permissões do visualizador do projeto | Disponível para funções personalizadas |
|---|---|---|---|---|---|---|---|
| Listagem de modelos | Listar os modelos aos quais a organização tem acesso | Read |
Read |
Read |
Read |
Read |
✓ |
| Grupos | Ver e gerenciar grupos | Read, Write |
Read |
Read, Write |
Read, Write |
Read |
|
| Funções | Ver e gerenciar funções | Read, Write |
Read |
Read, Write |
Read, Write |
Read |
|
| Administração da organização | Gerenciar usuários, projetos, convites, chaves de API administrativas e limites de taxa da organização | Read, Write |
|||||
| Uso | Ver o painel de uso e exportar os dados | Read |
✓ | ||||
| Chaves externas | Ver e gerenciar chaves para o gerenciamento de chaves empresariais | Read, Write |
|||||
| Lista de IPs permitidos | Ver e gerenciar a lista de IPs permitidos | Read, Write |
|||||
| mTLS | Ver e gerenciar as configurações de TLS mútuo | Read, Write |
|||||
| OIDC | Ver e gerenciar a configuração de OIDC | Read, Write |
|||||
| Recursos dos modelos | Fazer solicitações aos endpoints de chat completions, áudio, embeddings e imagens | Request |
Request |
Request |
Request |
✓ | |
| Assistentes | Criar e consultar assistentes | Read, Write |
Read, Write |
Read, Write |
Read, Write |
Read |
✓ |
| Threads | Criar e consultar threads, mensagens e execuções | Read, Write |
Read, Write |
Read, Write |
Read, Write |
Read |
✓ |
| Avaliações | Criar, consultar e excluir avaliações | Read, Write |
Read, Write |
Read, Write |
Read, Write |
Read |
✓ |
| Ajuste fino | Criar e consultar tarefas de ajuste fino | Read, Write |
Read, Write |
Read, Write |
Read, Write |
Read |
✓ |
| Arquivos | Criar e recuperar arquivos | Read, Write |
Read, Write |
Read, Write |
Read, Write |
Read |
✓ |
| Repositórios de vetores | Criar e consultar repositórios de vetores | Read, Write |
Read, Write |
Read, Write |
Read, Write |
✓ | |
| Responses API | Criar respostas | Read, Write |
Read, Write |
Read, Write |
Read, Write |
✓ | |
| Prompts | Criar e consultar prompts para usar como contexto na Responses API e na Realtime API | Read, Write |
Read, Write |
Read, Write |
Read, Write |
Read |
✓ |
| Webhooks | Criar e ver webhooks no projeto | Read, Write |
Read |
Read, Write |
Read, Write |
Read |
✓ |
| Conjuntos de dados | Criar e consultar conjuntos de dados | Read, Write |
Read, Write |
Read, Write |
Read, Write |
Read |
✓ |
| Apps | Criar, gerenciar e enviar aplicativos para análise no painel | Read, Write |
✓ | ||||
| Túneis | Inspecionar, usar e gerenciar túneis no escopo da organização | Read, Use, Manage |
✓ | ||||
| Chaves de API do projeto | Permitir que o usuário gerencie suas próprias chaves de API | Read, Write |
Read, Write |
Read, Write |
Read, Write |
Read |
✓ |
| Administração do projeto | Gerenciar usuários, contas de serviço, chaves de API e limites de taxa do projeto pela API de gerenciamento | Read, Write |
Read, Write |
||||
| Processamento em lote | Criar e gerenciar tarefas em lote | Read, Write |
Read, Write |
Read, Write |
Read, Write |
Read |
|
| Contas de serviço | Ver e gerenciar as contas de serviço do projeto | Read, Write |
Read, Write |
||||
| Vozes | Criar e consultar vozes | Read, Write |
Read, Write |
Read, Write |
Read, Write |
Read |
|
| Criador de agentes | Criar e gerenciar agentes e fluxos de trabalho no criador de agentes | Read, Write |
Read |
Read, Write |
Read, Write |
Read |
✓ |
O que as permissões de processamento em lote concedem
As permissões de processamento em lote incluem o acesso necessário para preparar arquivos de entrada, executar solicitações e recuperar resultados. Os endpoints que podem receber solicitações dentro de um lote são definidos separadamente e estão listados no guia da Batch API.
| Permissão de processamento em lote | Acesso adicional concedido |
|---|---|
Leitura (api.batch.read) |
Leitura de arquivos (api.files.read) em /v1/files |
Gravação (api.batch.write) |
Leitura de lotes Listagem de modelos ( api.model.read e model.read) em /v1/modelsLeitura e gravação de arquivos ( api.files.read e api.files.write) em /v1/filesSolicitações aos recursos dos modelos ( api.model.request e model.request) em /v1/audio, /v1/chat/completions, /v1/embeddings, /v1/images, /v1/moderations, /v1/realtime e /v1/responses |
Como configurar o RBAC
As alterações nas funções e a sincronização dos grupos podem levar até 30 minutos para entrar em vigor.
-
Crie grupos Crie grupos para as equipes, como Ciência de dados e Suporte. Se você usa um provedor de identidade (IdP), ative a sincronização via SCIM para manter a lista de integrantes de cada grupo atualizada.
-
Crie funções personalizadas Comece com o mínimo de permissões necessárias. Por exemplo:
- Testador de modelos: leitura de modelos, solicitações aos recursos dos modelos e avaliações
- Engenheiro de modelos: solicitações aos recursos dos modelos, leitura e gravação de arquivos e ajuste fino
- Publicador de aplicativos: leitura e gravação em Apps
-
Atribua funções
- As funções no nível da organização valem para todos os projetos da organização.
- As funções no nível do projeto valem apenas para aquele projeto. Você pode atribuir funções a usuários e grupos. Um usuário pode ter várias funções. Seu acesso corresponde à união das permissões dessas funções.
-
Verifique o acesso Use uma conta sem a função de proprietário para confirmar se o acesso à API e ao painel corresponde ao esperado. Ajuste as funções se os usuários puderem ver mais do que precisam.
Aplique o princípio do privilégio mínimo. Comece com as permissões mínimas necessárias para a tarefa e só acrescente outras conforme a necessidade.
Exemplos de configuração de acesso
Equipe pequena
- Atribua à equipe principal uma função no nível da organização que permita fazer solicitações aos recursos dos modelos e ler e gravar arquivos.
- Crie um projeto para cada aplicativo. Adicione os prestadores de serviço apenas aos projetos em que atuam e atribua a eles funções no nível do projeto.
Organização maior
- Sincronize os grupos do seu IdP, como Pesquisa, Suporte e Finanças.
- Crie funções personalizadas para cada atividade e atribua essas funções no nível da organização. Se um projeto exigir controles mais rigorosos, conceda apenas funções específicas desse projeto.
Prestadores de serviço e fornecedores
- Crie um grupo chamado “Prestadores de serviço” sem funções no nível da organização.
- Adicione os integrantes a projetos específicos e atribua a eles funções de projeto com escopo restrito, como acesso somente leitura.
Como o acesso do usuário é avaliado
No painel, combinamos:
- as funções da organização atribuídas diretamente ao usuário ou por meio de grupos
- as funções do projeto atribuídas diretamente ao usuário ou por meio de grupos
As permissões efetivas correspondem à união das permissões de todas as funções atribuídas.
Quando um usuário faz uma solicitação com uma chave de API em um projeto, verificamos as permissões atribuídas à chave e se alguma função do usuário nesse projeto concede essas permissões. Por exemplo, para fazer uma solicitação a /v1/models, a chave de API precisa ter a permissão api.model.read e o usuário precisa ter uma função no projeto que inclua api.model.read.
Boas práticas
- Organize os grupos por equipe: reproduza a estrutura das equipes no IdP e atribua funções aos grupos em vez de atribuí-las individualmente.
- Separe as responsabilidades: distribua separadamente as permissões para ler modelos, enviar arquivos e gerenciar chaves.
- Separe os ambientes por projeto: use projetos distintos para experimentos, homologação e produção.
- Revise o acesso regularmente: remova funções e chaves sem uso e faça a rotação das chaves sensíveis.
- Teste com uma conta sem a função de proprietário: confirme se o acesso corresponde ao esperado antes de ampliar a implantação.