À propos de GitHub Enterprise Server
GitHub Enterprise Server est une plateforme auto-hébergée pour le développement de logiciels au sein de votre entreprise. GitHub distribue GitHub Enterprise Server en tant qu’appliance virtuelle autonome. Une fois que vous avez provisionné une machine virtuelle et installé l’appliance, l’instance exécute un système d’exploitation Linux avec une pile d’applications personnalisée. Pour plus d’informations, consultez « À propos du serveur GitHub Enterprise. »
Architecture de stockage
GitHub Enterprise Server nécessite deux volumes de stockage : l’un monté sur le chemin du système de fichiers racine (/
) et l’autre sur le chemin du système de fichiers utilisateur (/data/user
). Cette architecture simplifie les procédures de mise à niveau, de restauration et de récupération en séparant l’environnement logiciel en cours d’exécution des données d’application persistantes.
Le système de fichiers racine est inclus dans l’image de machine distribuée. Il contient le système d’exploitation de base et l’environnement d’application GitHub Enterprise Server. Le système de fichiers racine doit être traité comme système éphémère. Toutes les données du système de fichiers racine seront remplacées durant la mise à niveau vers les futures versions de GitHub Enterprise Server.
Le volume de stockage racine est divisé en deux partitions de même taille. L’une des partitions est montée comme système de fichiers racine (/
). L’autre partition est montée uniquement pendant les mises à niveau et les restaurations des mises à niveau avec le chemin /mnt/upgrade
pour faciliter les restaurations si nécessaire. Par exemple, si un volume racine de 200 Go est alloué, 100 Go seront alloués au système de fichiers racine et 100 Go seront réservés aux mises à niveau et restaurations.
Le système de fichiers racine contient des fichiers qui stockent les informations suivantes. Cette liste n’est pas exhaustive.
- Certificats d’autorité de certification personnalisée (dans
/usr/local/share/ca-certificates*
) - Les configurations réseau personnalisées
- Les configurations de pare-feu personnalisées
- L’état de réplication
Le système de fichiers utilisateur contient des fichiers qui stockent la configuration et les données suivantes. Cette liste n’est pas exhaustive.
- Référentiels Git
- Bases de données
- Rechercher dans les index
- Contenu publié sur les sites GitHub Pages
- Grands fichiers de Stockage Fichiers volumineux Git
- Environnements de hook de pré-réception
Topologies de déploiement
Vous pouvez déployer GitHub Enterprise Server dans diverses topologies, comme une paire haute disponibilité. Pour plus d’informations, consultez « À propos du serveur GitHub Enterprise ».
Conservation des données et redondance des centres de données
Avertissement : avant d’utiliser GitHub Enterprise Server dans un environnement de production, nous vous recommandons vivement de configurer des sauvegardes et un plan de reprise d’activité.
GitHub Enterprise Server prend en charge les sauvegardes en ligne et incrémentielles avec GitHub Enterprise Server Backup Utilities. Vous pouvez faire des captures instantanées incrémentielles sur une liaison réseau sécurisée (port d’administration SSH) sur de longues distances pour le stockage hors site ou géographiquement dispersé. Vous pouvez restaurer des instantanés sur le réseau dans une instance récemment provisionnée au moment de la récupération en cas de sinistre au niveau du centre de données principal.
Outre les sauvegardes réseau, les captures instantanées de disques VMware et AWS (EBS) des volumes de stockage utilisateur sont prises en charge quand l’instance est hors connexion ou en mode maintenance. Des captures instantanées de volume régulières peuvent être utilisées comme alternative peu coûteuse et peu complexe aux sauvegardes réseau avec les GitHub Enterprise Server Backup Utilities si vos exigences de niveau de service permettent une maintenance hors connexion régulière.
Pour plus d’informations, consultez « Configuration des sauvegardes sur votre instance ».
Sécurité
GitHub Enterprise Server fonctionne sur votre infrastructure et est régi par les contrôles d’accès et de sécurité que vous définissez, comme les pare-feu, les stratégies de réseau, la gestion des identités et des accès, la surveillance et les VPN. GitHub Enterprise Server convient aux entreprises qui sont soumises à une conformité réglementaire, ce qui permet d’éviter les problèmes que posent les plateformes de développement de logiciels dans le cloud public.
GitHub Enterprise Server inclut également des fonctionnalités de sécurité supplémentaires.
- Système d’exploitation, logiciels et patchs
- Sécurité du réseau
- Sécurité des applications
- Services externes et accès au support
- Communication chiffrée
- Utilisateurs et autorisations d’accès
- Authentification
- Journalisation des audits et des accès
Système d’exploitation, logiciels et patchs
GitHub Enterprise Server exécute un système d’exploitation Linux personnalisé avec uniquement les applications et services nécessaires. GitHub distribue les mises à jour correctives du système d’exploitation principal de l’instance dans le cadre du cycle de publication de produit standard. Les patchs résolvent les problèmes de fonctionnalité et de stabilité, ainsi que les problèmes de sécurité non critiques pour GitHub Enterprise Server. GitHub fournit également les correctifs de sécurité critiques nécessaires en dehors du cycle de publication standard.
GitHub Enterprise Server est fourni comme appliance. De nombreux packages du système d'exploitation sont modifiés par rapport à la distribution Debian habituelle Debian. Pour cette raison, nous n’assurons pas de support en cas de modification du système d’exploitation sous-jacent (ce qui inclut également les mises à niveau du système d’exploitation), conformément à la section 11.3 Exclusions du contrat de licence et support de GitHub Enterprise Server.
Pour l'instant, le système d'exploitation de base pour GitHub Enterprise Server est Debian 10 (Buster), qui est pris en charge par le programme de prise en charge à long terme de Debian.
Des mises à jour correctives régulières sont publiées sur la page des versions de GitHub Enterprise Server. La page des notes de publication fournit plus d’informations. Ces patchs contiennent généralement des correctifs de sécurité des fournisseurs et projets en amont qui ont été testés et dont la qualité a été approuvée par notre équipe d’ingénieurs. Il peut y avoir un léger délai entre le moment où la mise à jour en amont est publiée et le moment où elle est testée et groupée dans une prochaine mise en production de patchs pour GitHub Enterprise Server.
Sécurité du réseau
Le pare-feu interne de GitHub Enterprise Server limite l’accès réseau aux services de l’instance. Seuls les services nécessaires au fonctionnement de l’appliance sont disponibles sur le réseau. Pour plus d’informations, consultez « Ports réseau ».
Sécurité des applications
L’équipe de sécurité des applications GitHub se concentre en permanence sur l’évaluation des vulnérabilités, les tests d’intrusion et la révision du code pour les produits GitHub, notamment GitHub Enterprise Server. GitHub collabore également avec des entreprises de sécurité externes pour fournir des évaluations de sécurité ponctuelles des produits GitHub products.
Services externes et accès au support
GitHub Enterprise Server peut fonctionner sans aucun accès en sortie de votre réseau vers des services externes. Vous pouvez éventuellement activer l’intégration à des services externes pour la remise des e-mails, le monitoring externe et le transfert de journal. Pour plus d’informations, consultez « Configuration de la messagerie pour les notifications », « Configuration d’une supervision externe » et « Transfert de journaux ».
Vous pouvez collecter et envoyer manuellement des données de dépannage à Support GitHub. Pour plus d’informations, consultez « Fournir des données au support GitHub ».
Communication chiffrée
GitHub conçoit GitHub Enterprise Server pour qu’il s’exécute derrière votre pare-feu d’entreprise. Pour sécuriser la communication sur le réseau, nous vous encourageons à activer le protocole TLS. GitHub Enterprise Server prend en charge les certificats TLS commerciaux 2048 bits et supérieurs pour le trafic HTTPS. Pour plus d’informations, consultez « Configuration de TLS ».
Par défaut, l’instance offre également un accès SSH (Secure Shell) pour l’accès aux référentiels avec Git et l’accès à des fins d’administration. Pour plus d’informations, consultez « À propos de SSH » et « Accès à l’interpréteur de commandes d’administration (SSH) ».
Si vous configurez l’authentification SAML pour votre instance GitHub Enterprise Server, vous pouvez activer les assertions chiffrées entre l’instance et votre fournisseur d’identité SAML. Pour plus d’informations, consultez « Utilisation de SAML pour la gestion des identités et des accès d'entreprise ».
Utilisateurs et autorisations d’accès
GitHub Enterprise Server fournit trois types de comptes.
- Le compte d’utilisateur Linux
admin
a un accès contrôlé au système d’exploitation sous-jacent et notamment un accès direct au système de fichiers et à la base de données. Un petit groupe d’administrateurs approuvés doit avoir accès à ce compte par SSH. Pour plus d’informations, consultez « Accès à l’interpréteur de commandes d’administration (SSH) ». - Les comptes d’utilisateur dans l’application web de l’instance ont un accès complet à leurs propres données et à toutes les données auxquelles d’autres utilisateurs ou organisations accordent explicitement l’accès.
- Les administrateurs de site dans l’application web de l’instance sont des comptes d’utilisateur qui peuvent gérer les paramètres d’application web et d’instance de haut niveau, les paramètres de compte d’utilisateur et d’organisation et les données de référentiel.
Pour plus d’informations sur les autorisations utilisateur de GitHub Enterprise Server, consultez « Autorisations d’accès sur GitHub ».
Authentification
GitHub Enterprise Server fournit quatre méthodes d’authentification.
- L’authentification par clé publique SSH fournit l’accès aux dépôts avec Git et l’accès à l’interpréteur de commandes d’administration. Pour plus d’informations, consultez « À propos de SSH » et « Accès à l’interpréteur de commandes d’administration (SSH) ».
- L’authentification par nom d’utilisateur et mot de passe avec des cookies HTTP permet d’accéder aux applications web et de gérer les sessions avec l’authentification à 2 facteurs facultative. Pour plus d’informations, consultez « Configuration de l’authentification intégrée ».
- L’authentification LDAP, SAML ou CAS externe à l’aide d’un service LDAP, d’un fournisseur d’identité (IdP) SAML ou d’un autre service compatible fournit l’accès à l’application web. Pour plus d’informations, consultez « Utilisation de SAML pour la gestion des identités et des accès d'entreprise ».
- Quant à l’authentification OAuth et aux personal access token, ils fournissent l’accès aux données et API du dépôt Git pour les services et les clients externes. Pour plus d’informations, consultez « Gestion de vos jetons d'accès personnels ».
Journalisation des audits et des accès
GitHub Enterprise Server stocke les journaux du système d’exploitation et des applications classiques. L’application écrit également des journaux d’audit et de sécurité détaillés, que GitHub Enterprise Server stocke de façon permanente. Vous pouvez transférer les deux types de journaux en temps réel vers plusieurs destinations avec le protocole syslog-ng
. Pour plus d’informations, consultez « À propos du journal d’audit de votre entreprise » et « Transfert de journaux ».
Les journaux d’accès et d’audit incluent notamment les informations suivantes.
Accéder aux journaux
- Journaux de serveur web complets des accès au navigateur et aux API
- Journaux complets des accès aux données de dépôt avec les protocoles Git, HTTPS et SSH
- Journaux des accès administratifs avec HTTPS et SSH
Journaux d’audit
- Connexions utilisateur, réinitialisations de mot de passe, demandes 2TFA, modifications des paramètres de messagerie et modifications des applications et API autorisées
- Actions des administrateurs de site telles que le déverrouillage de dépôts et de comptes d’utilisateur
- Événements de poussée (push) dans un dépôt, octrois d’accès à un dépôt, transferts et renommages de dépôt
- Changements d’appartenance aux organisations et notamment la création et la destruction d’une équipe
Dépendances open source pour GitHub Enterprise Server
Vous pouvez voir une liste complète des dépendances dans la version de votre instance de GitHub Enterprise Server, ainsi que la licence de chaque projet à l’emplacement http(s)://HOSTNAME/site/credits
.
Des tarballs avec une liste complète des dépendances et des métadonnées associées sont disponibles sur votre instance.
- Pour les dépendances communes à toutes les plateformes, sous
/usr/local/share/enterprise/dependencies-<GHE version>-base.tar.gz
- Pour les dépendances spécifiques à une plateforme, sous
/usr/local/share/enterprise/dependencies-<GHE version>-<platform>.tar.gz
Des tarballs avec une liste complète des dépendances et métadonnées sont également disponibles à l’adresse https://enterprise.github.com/releases/<version>/download.html
.