Cuenta

Control de acceso basado en roles

Documentación de RBAC (Control de acceso basado en roles)

Descripción general

El sistema implementa un modelo RBAC integral para gestionar el control de acceso a diversos recursos y operaciones. Consta de roles, políticas y asignaciones de usuario-rol.

Componentes principales

Recursos

El sistema define los siguientes recursos protegidos:

  • Audit
  • DevPod
  • Image
  • Payment
  • Pubkey
  • Registry
  • Region
  • Resource
  • Serverless
  • Storage
  • Team
  • Role
  • UserRole

Acciones

Acciones disponibles en los recursos:

  • List
  • Get
  • Create
  • Update
  • Delete

Sistema de roles

Los roles son colecciones de permisos que definen qué acciones puede realizar un usuario en recursos específicos. Los roles ayudan a organizar y gestionar eficientemente los derechos de acceso agrupando permisos relacionados.

Roles predefinidos

  1. AccountAdmin

    • Acceso completo a recursos a nivel de cuenta
    • Puede gestionar miembros del equipo
    • Puede configurar ajustes de cuenta
  2. Developer

    • Puede gestionar DevPods
    • Puede gestionar recursos Serverless
    • Puede gestionar imágenes
    • Puede gestionar almacenamiento (solo crear/leer)
  3. Auditor

    • Acceso de solo lectura a registros de auditoría
  4. Finance

    • Acceso completo a funciones de pago
  5. Ops

    • Acceso de lectura a DevPod y Serverless
    • Acceso completo a Image, Storage, Pubkey y Resource

Políticas

Las políticas son los componentes básicos del control de acceso que definen permisos específicos. Cada política representa una regla que otorga permiso para realizar una acción específica en un recurso específico.

Estructura de políticas

  • Resource: El recurso objetivo
  • Action: La acción permitida

Asignación de políticas

  • Las políticas se asignan a roles a través de mapeos RolePolicy
  • Se pueden asignar múltiples políticas a un solo rol
  • La asignación de políticas es única por rol

Control de permisos de usuario

El sistema implementa el control de permisos a través de un modelo de 3 capas de usuarios, roles y políticas. Los roles actúan como un puente entre usuarios y políticas, proporcionando una forma flexible y gestionable de controlar los derechos de acceso.

Flujo de control

  1. Asignación de usuario

    • A los usuarios se les asignan uno o más roles
    • La asignación de roles es específica de cada cuenta
    • Los usuarios pueden tener diferentes roles en diferentes cuentas
  2. Roles como puente

    • Los roles actúan como contenedores de colecciones de políticas
    • Cada rol define un conjunto específico de responsabilidades
    • Los roles hacen que la gestión de permisos sea más mantenible
  3. Aplicación de políticas

    • Las políticas definen los permisos reales
    • Cada solicitud se valida contra las políticas de rol del usuario
    • El acceso se otorga solo si hay una política coincidente

Proceso de autorización

  1. Procesamiento de solicitud

    • Extraer información de cuenta
    • Identificar recurso y acción objetivo
    • Verificar roles y políticas del usuario
  2. Verificación de permisos

    • Los roles específicos de cuenta se validan contra la cuenta objetivo
    • La coincidencia de políticas considera coincidencias exactas y comodines
  3. Control de acceso

    • Se otorga acceso si los roles asignados tienen una política coincidente
    • Las solicitudes denegadas devuelven resultados vacíos en lugar de errores
    • El registro de auditoría ocurre después de la validación RBAC

Mejores prácticas

  1. Gestión de roles

    • Use roles predefinidos cuando sea posible
    • Cree roles personalizados con privilegios mínimos necesarios
    • Revise regularmente las asignaciones de roles
  2. Consideraciones de seguridad

    • Siempre valide el contexto de cuenta
    • Implemente restricciones de UI basadas en roles
    • Mantenga registros de auditoría para cambios de roles
  3. Rendimiento

    • Las asignaciones de roles y políticas están en caché
    • Operaciones por lotes disponibles para asignaciones masivas
    • Consultas de base de datos optimizadas para verificación de permisos