El control de acceso basado en roles (RBAC) te permite decidir qué acciones puede realizar cada persona en tu organización y tus proyectos, tanto a través de la API como en el panel de control. Los mismos permisos se aplican en ambos: si alguien puede llamar a un punto de acceso (por ejemplo, /v1/chat/completions), también puede usar la página correspondiente del panel de control. Si le falta un permiso, los controles asociados (como el botón Subir en Playground) quedan deshabilitados. Con RBAC puedes:
- Agrupar usuarios y asignar permisos a gran escala
- Crear roles personalizados con los permisos exactos que necesitas
- Definir el alcance del acceso por organización o por proyecto
- Aplicar los mismos permisos en el panel de control y en la API
Conceptos clave
- Organización: es tu cuenta de nivel superior. Los roles de organización pueden otorgar acceso a todos los proyectos.
- Proyecto: es un espacio de trabajo para claves, archivos y recursos. Los roles de proyecto solo otorgan acceso dentro de ese proyecto.
- Grupos: reúnen a usuarios a los que puedes asignar roles en conjunto. Puedes sincronizar los grupos desde tu proveedor de identidad mediante SCIM para que la lista de integrantes se actualice automáticamente.
- Roles: agrupan permisos, como los de enviar solicitudes a modelos o escribir archivos. Puedes crear roles para toda la organización en Configuración de la organización o para un proyecto específico en la configuración de ese proyecto. Una vez creados, puedes asignar los roles de organización o de proyecto a usuarios o grupos. Un usuario puede tener varios roles y su acceso es la unión de los permisos que otorgan esos roles.
- Permisos: son las acciones específicas que permite un rol (por ejemplo, enviar solicitudes a modelos, leer archivos, escribir archivos o administrar claves).
Permisos
La siguiente tabla muestra los permisos disponibles, los roles predefinidos que los incluyen y si puedes configurarlos en roles personalizados.
| Área | Acciones permitidas | Permisos del propietario de la organización | Permisos del lector de la organización | Permisos del propietario del proyecto | Permisos del miembro del proyecto | Permisos del observador del proyecto | Disponible para roles personalizados |
|---|---|---|---|---|---|---|---|
| Lista de modelos | Listar los modelos a los que tiene acceso la organización | Read |
Read |
Read |
Read |
Read |
✓ |
| Grupos | Consultar y administrar grupos | Read, Write |
Read |
Read, Write |
Read, Write |
Read |
|
| Roles | Consultar y administrar roles | Read, Write |
Read |
Read, Write |
Read, Write |
Read |
|
| Administración de la organización | Administrar los usuarios, los proyectos, las invitaciones, las claves de API de administración y los límites de solicitudes de la organización | Read, Write |
|||||
| Uso | Consultar el panel de uso y exportar los datos | Read |
✓ | ||||
| Claves externas | Consultar y administrar las claves de Enterprise Key Management | Read, Write |
|||||
| Lista de direcciones IP permitidas | Consultar y administrar la lista de direcciones IP permitidas | Read, Write |
|||||
| mTLS | Consultar y administrar la configuración de TLS mutuo | Read, Write |
|||||
| OIDC | Consultar y administrar la configuración de OIDC | Read, Write |
|||||
| Capacidades de los modelos | Enviar solicitudes a los puntos de acceso para completar chats y trabajar con audio, embeddings e imágenes | Request |
Request |
Request |
Request |
✓ | |
| Asistentes | Crear y recuperar asistentes | Read, Write |
Read, Write |
Read, Write |
Read, Write |
Read |
✓ |
| Hilos | Crear y recuperar hilos, mensajes y ejecuciones | Read, Write |
Read, Write |
Read, Write |
Read, Write |
Read |
✓ |
| Evaluaciones | Crear, recuperar y eliminar evaluaciones | Read, Write |
Read, Write |
Read, Write |
Read, Write |
Read |
✓ |
| Ajuste fino | Crear y recuperar trabajos de ajuste fino | Read, Write |
Read, Write |
Read, Write |
Read, Write |
Read |
✓ |
| Archivos | Crear y recuperar archivos | Read, Write |
Read, Write |
Read, Write |
Read, Write |
Read |
✓ |
| Almacenes de vectores | Crear y recuperar almacenes de vectores | Read, Write |
Read, Write |
Read, Write |
Read, Write |
✓ | |
| Responses API | Crear respuestas | Read, Write |
Read, Write |
Read, Write |
Read, Write |
✓ | |
| Prompts | Crear y recuperar prompts para usarlos como contexto en Responses API y Realtime API | Read, Write |
Read, Write |
Read, Write |
Read, Write |
Read |
✓ |
| Webhooks | Crear y consultar webhooks en tu proyecto | Read, Write |
Read |
Read, Write |
Read, Write |
Read |
✓ |
| Conjuntos de datos | Crear y recuperar conjuntos de datos | Read, Write |
Read, Write |
Read, Write |
Read, Write |
Read |
✓ |
| Apps | Crear y administrar apps y enviarlas a revisión desde el panel de control | Read, Write |
✓ | ||||
| Túneles | Inspeccionar, usar y administrar túneles cuyo alcance se limita a la organización | Read, Use, Manage |
✓ | ||||
| Claves de API del proyecto | Permitir que cada usuario administre sus propias claves de API | Read, Write |
Read, Write |
Read, Write |
Read, Write |
Read |
✓ |
| Administración del proyecto | Administrar los usuarios, las cuentas de servicio, las claves de API y los límites de solicitudes del proyecto mediante la API de administración | Read, Write |
Read, Write |
||||
| Lotes | Crear y administrar trabajos por lotes | Read, Write |
Read, Write |
Read, Write |
Read, Write |
Read |
|
| Cuentas de servicio | Consultar y administrar las cuentas de servicio del proyecto | Read, Write |
Read, Write |
||||
| Voces | Crear y recuperar voces | Read, Write |
Read, Write |
Read, Write |
Read, Write |
Read |
|
| Agent Builder | Crear y administrar agentes y flujos de trabajo en Agent Builder | Read, Write |
Read |
Read, Write |
Read, Write |
Read |
✓ |
Alcance de los permisos de lotes
Los permisos de lotes incluyen el acceso necesario para preparar los archivos de entrada del lote, ejecutar solicitudes y recuperar resultados. Este acceso efectivo es independiente de los puntos de acceso a los que puedes enviar solicitudes dentro de un lote. Puedes consultar la lista de esos puntos de acceso en la guía de Batch API.
| Permiso de lotes | Acceso adicional que otorga |
|---|---|
Lectura (api.batch.read) |
Lectura de archivos (api.files.read) para /v1/files |
Escritura (api.batch.write) |
Lectura de lotes Listado de modelos ( api.model.read y model.read) para /v1/modelsLectura y escritura de archivos ( api.files.read y api.files.write) para /v1/filesUso de las capacidades de los modelos mediante solicitudes ( api.model.request y model.request) para /v1/audio, /v1/chat/completions, /v1/embeddings, /v1/images, /v1/moderations, /v1/realtime y /v1/responses |
Configuración de RBAC
Los cambios de roles y la sincronización de grupos pueden tardar hasta 30 minutos en propagarse.
-
Crea grupos Agrega grupos para tus equipos (por ejemplo, Ciencia de datos y Soporte). Si usas un proveedor de identidad (IdP), activa la sincronización mediante SCIM para mantener actualizada la lista de integrantes de cada grupo.
-
Crea roles personalizados Empieza con los privilegios mínimos. Por ejemplo:
- Responsable de pruebas de modelos: lectura de modelos, uso de las capacidades de los modelos mediante solicitudes y evaluaciones
- Ingeniero de modelos: uso de las capacidades de los modelos mediante solicitudes, lectura y escritura de archivos y ajuste fino
- Responsable de publicación de apps: lectura y escritura de apps
-
Asigna roles
- Los roles de organización se aplican a todos los proyectos de la organización.
- Los roles de proyecto se aplican únicamente al proyecto correspondiente. Puedes asignar roles a usuarios y grupos. Cada usuario puede tener varios roles y su acceso es la unión de los permisos de esos roles.
-
Verifica el acceso Usa una cuenta sin el rol de propietario para confirmar que tiene el acceso esperado tanto en la API como en el panel de control. Ajusta los roles si los usuarios pueden ver más de lo que necesitan.
Aplica el principio de privilegio mínimo. Empieza con los permisos mínimos necesarios para una tarea y agrega otros solo cuando hagan falta.
Ejemplos de configuración del acceso
Equipo pequeño
- Asigna al equipo principal un rol de organización que le permita usar las capacidades de los modelos mediante solicitudes, así como leer y escribir archivos.
- Crea un proyecto para cada app. Agrega a los contratistas solo a esos proyectos y asígnales roles de proyecto.
Organización más grande
- Sincroniza los grupos desde tu IdP (por ejemplo, Investigación, Soporte y Finanzas).
- Crea roles personalizados para cada función y asígnalos a nivel de la organización. Si un proyecto requiere controles más estrictos, otorga únicamente roles específicos de ese proyecto.
Contratistas y proveedores
- Crea un grupo llamado “Contratistas” sin roles de organización.
- Agrega a sus integrantes a proyectos específicos con roles de proyecto de alcance limitado (por ejemplo, acceso de solo lectura).
Cómo se evalúa el acceso de los usuarios
En el panel de control, combinamos:
- los roles de la organización (asignados directamente o a través de grupos)
- los roles del proyecto (asignados directamente o a través de grupos)
Los permisos efectivos son la unión de los permisos de todos los roles asignados.
Cuando envías una solicitud con una clave de API de un proyecto, verificamos que tengas algún rol de proyecto que te otorgue los permisos asignados a esa clave. Por ejemplo, para enviar una solicitud a /v1/models, la clave de API debe tener asignado el permiso api.model.read y tú debes tener un rol de proyecto con el permiso api.model.read.
Buenas prácticas
- Organiza los grupos por equipo: crea en tu IdP grupos que reflejen los equipos de tu organización y asigna los roles a los grupos en lugar de asignarlos a cada persona.
- Separa las funciones: distingue entre leer modelos, subir archivos y administrar claves.
- Delimita los proyectos: usa proyectos distintos para los experimentos, el entorno de preproducción y el de producción.
- Revisa los permisos periódicamente: elimina los roles y las claves que ya no se usan y rota las claves sensibles.
- Haz pruebas con una cuenta sin el rol de propietario: verifica que el acceso sea el esperado antes de implementar la configuración a gran escala.