Descripción del sistema
Servidor de GitHub Enterprise is your organization's private copy of GitHub contained within a virtual appliance, hosted on premises or in the cloud, that you configure and control.
En este artículo
- Arquitectura de almancenamiento
- Opciones de implementación
- Retención de datos y redundancia de centro de datos
- Seguridad
- Dependencias de código abierto para Servidor de GitHub Enterprise
Arquitectura de almacenamiento
Servidor de GitHub Enterprise requires two storage volumes, one mounted to the root filesystem path (/
) and the other to the user filesystem path (/data/user
). Esta arquitectura simplifica los procedimientos de actualización, reversión y recuperación al separar el entorno del software que se ejecuta de los datos de aplicación persistentes.
El sistema de archivos raíz está incluido en la imagen de máquina distribuida. Contiene el sistema operativo base y el entorno de aplicación del Servidor de GitHub Enterprise. El sistema de archivos raíz debería tratarse como efímero. Cualquier dato en el sistema de archivos raíz será reemplazado cuando se actualice con futuros lanzamientos del Servidor de GitHub Enterprise.
El sistema de archivos raíz contiene:
- Los certificados de autoridad de certificación personalizados (CA) (en /usr/local/share/ca-certificates)
- Las configuraciones de red personalizadas
- Las configuraciones de firewall personalizadas
- El estado de replicación
El sistema de archivos del usuario contiene la configuración y los datos del usuario, tales como:
- Repositorios Git
- Bases de datos
- Índices de búsqueda
- Contenido publicado en los sitios Páginas de GitHub
- Archivos grandes de Almacenamiento de archivos de gran tamaño Git
- Entornos de enlaces de pre-recepción
Opciones de implementación
Puedes implementar el Servidor de GitHub Enterprise como un aparato virtual único, o en una configuración de alta disponibilidad. Para obtener más información, consulta "Configurar el Servidor de GitHub Enterprise para alta disponibilidad."
Algunas organizaciones con decenas de miles de programadores podrían también beneficiarse de una Agrupación del Servidor de GitHub Enterprise. For more information, see "Clustering overview."
Retención de datos y redundancia de centro de datos
Antes de usar Servidor de GitHub Enterprise en un entorno de producción, recomendamos firmemente que configures copias de seguridad y un plan de recuperación ante desastres. For more information, see "Configuring backups on your appliance."
El Servidor de GitHub Enterprise incluye soporte para copias de seguridad en línea e incrementales con Utilidades de respaldo del servidor de GitHub Enterprise. Puedes tomar instantáneas incrementales sobre un enlace de red seguro (el puerto administrativo SSH) sobre grandes distancias para el almacenamiento externo o geográficamente disperso. You can restore snapshots over the network into a newly provisioned appliance at time of recovery in case of disaster at the primary datacenter.
Además se admiten las copias de seguridad de red, las instantáneas de disco AWS (EBS) y VMware de los volúmenes de almacenamiento del usuario mientras que el aparato está fuera de línea o en modo mantenimiento. Las instantáneas de volumen regulares pueden usarse como una alternativa de bajo costo y baja complejidad para las copias de seguridad de red con Utilidades de respaldo del servidor de GitHub Enterprise si tus requisitos de nivel de servicio permiten un mantenimiento fuera de línea regular.
For more information, see "Configuring backups on your appliance."
Seguridad
Servidor de GitHub Enterprise is a virtual appliance that runs on your infrastructure and is governed by your existing information security controls, such as firewalls, IAM, monitoring, and VPNs. Using Servidor de GitHub Enterprise can help you avoid regulatory compliance issues that arise from cloud-based solutions.
Servidor de GitHub Enterprise also includes additional security features.
- Operating system, software, and patches
- Network security
- Application security
- External services and support access
- Encrypted communication
- Users and access permissions
- Autenticación
- Audit and access logging
Operating system, software, and patches
Servidor de GitHub Enterprise runs a customized Linux operating system with only the necessary applications and services. GitHub manages patching of the appliance's core operating system as part of its standard product release cycle. Patches address functionality, stability, and non-critical security issues for GitHub applications. GitHub also provides critical security patches as needed outside of the regular release cycle.
Network security
Servidor de GitHub Enterprise's internal firewall restricts network access to the appliance's services. Only services necessary for the appliance to function are available over the network. For more information, see "Network ports."
Application security
GitHub's application security team focuses full-time on vulnerability assessment, penetration testing, and code review for GitHub products, including Servidor de GitHub Enterprise. GitHub also contracts with outside security firms to provide point-in-time security assessments of GitHub products.
External services and support access
Servidor de GitHub Enterprise can operate without any egress access from your network to outside services. You can optionally enable integration with external services for email delivery, external monitoring, and log forwarding. For more information, see "Configuring email for notifications," "Setting up external monitoring," and "Log forwarding."
You can manually collect and send troubleshooting data to Soporte de GitHub. For more information, see "Providing data to Soporte de GitHub."
Encrypted communication
GitHub designs Servidor de GitHub Enterprise to run behind your corporate firewall. To secure communication over the wire, we encourage you to enable Transport Layer Security (TLS). Servidor de GitHub Enterprise supports 2048-bit and higher commercial TLS certificates for HTTPS traffic. For more information, see "Configuring TLS."
By default, the appliance also offers Secure Shell (SSH) access for both repository access using Git and administrative purposes. For more information, see "About SSH" and "Accessing the administrative shell (SSH)."
Users and access permissions
Servidor de GitHub Enterprise provides three types of accounts.
- The
admin
Linux user account has controlled access to the underlying operating system, including direct filesystem and database access. A small set of trusted administrators should have access to this account, which they can access over SSH. For more information, see "Accessing the administrative shell (SSH)." - User accounts in the appliance's web application have full access to their own data and any data that other users or organizations explicitly grant.
- Site administrators in the appliance's web application are user accounts that can manage high-level web application and appliance settings, user and organization account settings, and repository data.
For more information about Servidor de GitHub Enterprise's user permissions, see "Access permissions on GitHub."
Autenticación
Servidor de GitHub Enterprise provides four authentication methods.
- SSH public key authentication provides both repository access using Git and administrative shell access. For more information, see "About SSH" and "Accessing the administrative shell (SSH)."
- Username and password authentication with HTTP cookies provides web application access and session management, with optional two-factor authentication (2FA). For more information, see "Using built-in authentication."
- External LDAP, SAML, or CAS authentication using an LDAP service, SAML Identity Provider (IdP), or other compatible service provides access to the web application. For more information, see "Authenticating users for your GitHub Enterprise Server instance."
- OAuth and Personal Access Tokens provide access to Git repository data and APIs for both external clients and services. For more information, see "Creating a personal access token for the command line."
Audit and access logging
Servidor de GitHub Enterprise stores both traditional operating system and application logs. The application also writes detailed auditing and security logs, which Servidor de GitHub Enterprise stores permanently. You can forward both types of logs in realtime to multiple destinations via the syslog-ng
protocol. For more information, see "Log forwarding."
Access and audit logs include information like the following.
Access logs
- Full web server logs for both browser and API access
- Full logs for access to repository data over Git, HTTPS, and SSH protocols
- Administrative access logs over HTTPS and SSH
Audit logs
- User logins, password resets, 2FA requests, email setting changes, and changes to authorized applications and APIs
- Site administrator actions, such as unlocking user accounts and repositories
- Repository push events, access grants, transfers, and renames
- Organization membership changes, including team creation and destruction
Dependencias de código abierto para Servidor de GitHub Enterprise
Puedes consultar una lista completa de dependencias en la versión de tu aparato de Servidor de GitHub Enterprise, y la licencia de cada proyecto, en http(s)://HOSTNAME/site/credits
.
Están disponibles en tu aparato los tarballes con una lista completa de dependencias y metadatos asociados:
- Para conocer las dependencias comunes a todas las plataformas, ingresa en
/usr/local/share/enterprise/dependencies-<GHE version>-base.tar.gz
. - Para conocer las dependencias específicas de una plataforma, ingresa en
/usr/local/share/enterprise/dependencies-<GHE version>-<platform>.tar.gz
.
También están disponibles los tarballes, con una lista completa de las dependencias y los metadatos, en https://enterprise.github.com/releases/<version>/download.html
.