Exploración del control de acceso y la visibilidad de paquetes

Completado

La configuración de control de acceso y visibilidad determina quién puede ver, descargar y administrar los paquetes en Paquetes de GitHub. Comprender esta configuración es fundamental para la seguridad, el cumplimiento y la colaboración.

Descripción de los modelos de permisos

Paquetes de GitHub admite dos modelos de permisos en función del tipo de paquete:

Permisos heredados del repositorio

La mayoría de los registros de paquetes (npm, NuGet, Maven, RubyGems, Gradle) heredan los permisos de su repositorio:

  • Mismo control de acceso: Los permisos de paquete coinciden con los permisos del repositorio
  • Administración simplificada: Un conjunto de permisos para el código y los paquetes
  • Actualizaciones automáticas: Los cambios de permisos en el repositorio se aplican automáticamente a los paquetes
  • Acceso basado en equipo: Los equipos y colaboradores del repositorio tienen acceso a paquetes

Ventajas y desventajas:

  • Pro: Simple y coherente con el acceso al repositorio
  • Pro: No se necesita ninguna configuración de permisos adicional
  • Contra: No se puede separar el acceso al código del acceso al paquete
  • Contra: Todos los colaboradores del repositorio pueden publicar paquetes

Permisos granulares (solo para el registro de contenedores)

Los paquetes de Container Registry admiten el control de acceso independiente:

  • Independiente del repositorio: Los permisos de paquete pueden diferir del repositorio
  • Ámbito de usuario: Otorgar acceso a usuarios individuales
  • Ámbito de la organización: concesión de acceso a los equipos dentro de las organizaciones
  • Control de acceso basado en roles: Asignar roles de lector, escritor o administrador de forma independiente

Ventajas y desventajas:

  • Pro: Control detallado del acceso de paquetes
  • Pro: Puede compartir paquetes sin compartir código
  • Contra: Administración de permisos más compleja
  • Contra: Solo está disponible para imágenes de contenedores

Importante

Puede cambiar el control de acceso y la visibilidad del paquete por separado del repositorio para los paquetes de registro de contenedor. Para otros tipos de paquetes, la visibilidad y el acceso están vinculados al repositorio.

Para obtener más información sobre los permisos, consulte Acerca de los permisos para paquetes de GitHub.

Opciones de visibilidad de paquetes

La visibilidad determina quién puede detectar y acceder a los paquetes:

Paquetes públicos

  • Cualquier persona puede detectar lo siguiente: El paquete aparece en los resultados de búsqueda de todos los usuarios
  • Cualquier persona puede descargar: No se requiere autenticación para instalar (pero se requiere autenticación para cargas)
  • Amigable con el código abierto: Ideal para bibliotecas y herramientas de la comunidad
  • Almacenamiento gratuito: Sin límites de almacenamiento ni ancho de banda para paquetes públicos
  • Seguimiento de uso: Descarga de estadísticas visibles para todos los usuarios

Casos de uso para paquetes públicos:

  • Bibliotecas y marcos de código abierto
  • Herramientas y utilidades de la comunidad
  • Clientes y SDK de API pública
  • Ejemplos educativos y plantillas

Paquetes privados

  • Solo organización o usuario: Solo los usuarios autenticados con permiso pueden detectar
  • Acceso controlado: Debe tener permiso de lectura para descargar
  • Seguro de forma predeterminada: Ideal para bibliotecas internas y código propietario
  • Límites de uso: Sujeto a los límites de ancho de banda y almacenamiento del plan de GitHub
  • Seguimiento de uso: Estadísticas visibles solo para los usuarios autorizados

Casos de uso para paquetes privados:

  • Bibliotecas internas de la empresa
  • Dependencias propietarias
  • Versiones preliminares
  • Personalizaciones específicas del cliente

Paquetes internos (solo GitHub Enterprise)

  • Acceso para toda la organización: Todos los miembros de la organización pueden detectar y descargar
  • Uso compartido simplificado: No se necesitan concesiones de permisos individuales
  • Característica de empresa: Solo disponible con GitHub Enterprise Cloud o Server
  • Seguridad equilibrada: Más accesible que el privado, más seguro que el público

Casos de uso para paquetes internos:

  • Bibliotecas organizativas compartidas
  • Dependencias entre equipos
  • Estándares y marcos internos
  • Utilidades y asistentes comunes

Permisos de imagen de contenedor

Si tiene permisos de administrador para una imagen de contenedor, puede configurar el control de acceso pormenorizado:

Configuración de la visibilidad

  • Visibilidad pública: Cualquier persona puede extraer la imagen de contenedor sin autenticación
  • Visibilidad privada: Solo los usuarios con permisos explícitos pueden extraer la imagen

Concesión de permisos de acceso

Contenedores de cuentas personales:

  • Conceder a cualquier usuario de GitHub un rol de acceso
  • Especificar permisos individuales para cada usuario
  • Gestiona el acceso independientemente del repositorio

Contenedores de la organización:

  • Concesión de acceso a cualquier persona de la organización
  • Concesión de acceso a cualquier equipo de la organización
  • Combinación de permisos individuales y de equipo
  • Heredar permisos de la pertenencia a la organización

Roles de permiso

Permiso Descripción del acceso
Lectura Puede descargar el paquete. Puede leer los metadatos del paquete.
escribir Puede cargar y descargar este paquete. Puede leer y escribir metadatos del paquete.
Admin Puede cargar, descargar, eliminar y administrar este paquete. Puede leer y escribir metadatos del paquete. Puede conceder permisos de paquete.

Herencia de permisos:

  • Rol de administrador: Incluye todos los permisos de escritura y lectura
  • Rol de escritura: Incluye todos los permisos de lectura
  • Rol de lectura: Permisos mínimos para consumir paquetes

Configuración del acceso

Para configurar el control de acceso y la visibilidad de las imágenes de contenedor:

  1. Vaya a la página del paquete.
  2. Haga clic en Configuración del paquete.
  3. En Zona de peligro, cambie la visibilidad (pública/privada)
  4. En Administrar acceso, agregue usuarios o equipos.
  5. Seleccione rol para cada usuario o equipo (lectura, escritura, administrador)
  6. Haga clic en Agregar para conceder permisos.

Para obtener más información, consulte Configuración del control de acceso y la visibilidad de un paquete.

Procedimientos recomendados para el control de acceso

Recomendaciones de seguridad:

  • Principio de privilegios mínimos: Concesión de permisos mínimos necesarios
  • Auditorías periódicas: Revisar y quitar el acceso innecesario periódicamente
  • Acceso basado en equipo: Uso de equipos en lugar de usuarios individuales siempre que sea posible
  • Público cuidadosamente: asegúrese de que los paquetes públicos no exponen información confidencial
  • Acceso al documento: Mantener registros de quién tiene acceso y por qué
  • Automatizar revisiones: Uso de herramientas para detectar cambios de permisos

Estrategias organizativas:

  • Estandarizar la visibilidad: Establecimiento de valores predeterminados para distintos tipos de paquete
  • Proceso de solicitud de acceso: Definición del modo en que los usuarios solicitan acceso a paquetes
  • Claridad de propiedad: Asignación de una propiedad clara para la administración de paquetes
  • Integración con SSO: Uso de SAML/SCIM para la administración de acceso centralizada
  • Alineación del cumplimiento: Asegurarse de que los controles de acceso cumplen los requisitos normativos