Speicherarchitektur
Für GitHub Enterprise Server sind zwei Storage-Volumes erforderlich. Eines muss am Pfad des Root-Dateisystems (/
) und das andere am Pfade des Benutzerdateisystems (/data/user
) gemountet sein. Diese Architektur vereinfacht die Upgrade-, Rollback und Wiederherstellungsprozeduren, indem die in Ausführung befindliche Softwareumgebung von den persistenten Anwendungsdaten getrennt wird.
Das Root-Dateisystem ist im verteilten Maschinen-Image enthalten. Es enthält das Basisbetriebssystem und die GitHub Enterprise Server-Anwendungsumgebung. Das Root-Dateisystem sollte als flüchtig behandelt werden. Daten auf dem Root-Dateisystem werden beim Upgrade auf künftige GitHub Enterprise Server-Versionen ersetzt.
Das Root-Dateisystem enthält Folgendes:
- benutzerdefinierte Zertifikate der Zertifizierungsstelle (CA) (in /usr/local/share/ca-certificates)
- benutzerdefinierte Netzwerkkonfigurationen
- benutzerdefinierte Firewallkonfigurationen
- den Replikationszustand
Das Benutzerdateisystem enthält die Benutzerkonfiguration und -daten, beispielsweise
- Git-Repositorys,
- Datenbanken,
- Suchindizes,
- auf GitHub Pages-Websites veröffentlichte Inhalte,
- große Dateien von Git Large File Storage,
- Pre-Receive-Hook-Umgebungen.
Bereitstellungsoptionen
Sie können GitHub Enterprise Server als eine einzelne virtuelle Appliance oder in einer Hochverfügbarkeitskonfiguration bereitstellen. Weitere Informationen finden Sie unter „GitHub Enterprise Server für Hochverfügbarkeit konfigurieren“.
Einige Organisationen mit Zehntausenden Entwicklern können ebenfalls vom GitHub Enterprise Server Clustering profitieren. Weitere Informationen findest Du unter „Informationen zum Clustering“.
Datenaufbewahrung und Rechenzentrumsredundanz
Bevor Sie GitHub Enterprise Server in einer Produktionsumgebung verwenden, wird dringend empfohlen, Backups und einen Disaster Recovery-Plan einzurichten. Weitere Informationen finden Sie unter „Backups auf Ihrer Appliance konfigurieren“.
GitHub Enterprise Server unterstützt Online- und inkrementelle Backups mit den GitHub Enterprise Server Backup-Dienstprogramme. Sie können inkrementelle Snapshots über eine sichere Netzwerkverbindung (den SSH-Verwaltungsport) über weite Entfernungen für den externen oder geografisch verteilten Storage erstellen. Im Falle einer Katastrophe im primären Rechenzentrum können Sie Snapshots über das Netzwerk auf neu verteilten Appliances wiederherstellen.
Zusätzlich zu Netzwerk-Backups werden AWS- (EBS) und VMware-Disk-Snapshots der Benutzer-Storage-Volumes unterstützt, während die Appliance offline ist oder sich im Wartungsmodus befindet. Regelmäßige Volume-Snapshots können als kostengünstige, unkomplizierte Alternative zu Netzwerk-Backups mit GitHub Enterprise Server Backup-Dienstprogramme verwendet werden, wenn Ihre Service Level-Anforderungen eine regelmäßige Offline-Wartung ermöglichen.
Weitere Informationen finden Sie unter „Backups auf Ihrer Appliance konfigurieren“.
Sicherheit
GitHub Enterprise Server wird als virtuelle Appliance in Ihrer Infrastruktur ausgeführt und unterliegt den bestehenden Datensicherheitssteuerungen, z. B. Firewalls, IAM, Überwachung und VPNs. GitHub Enterprise Server trägt dazu bei, möglichen Problemen cloudgestützter Lösungen hinsichtlich der Einhaltung gesetzlicher Vorschriften vorzubeugen.
GitHub Enterprise Server umfasst zudem weitere Sicherheitsfunktionen.
- Betriebssystem, Software und Patches
- Netzwerksicherheit
- Anwendungssicherheit
- Externe Dienste und Supportzugang
- Verschlüsselte Kommunikation
- Benutzer und Zugriffsberechtigungen
- Authentifizierung
- Audit- und Zugriffsprotokollierung
Betriebssystem, Software und Patches
GitHub Enterprise Server führt ein angepasstes Linux-Betriebssystem mit den nötigsten Anwendungen und Diensten aus. GitHub stellt Patches für das Kernbetriebssystems der Appliance im Rahmen des normalen Produktveröffentlichungszyklus bereit. Die Patches richten sich an Funktions-, Stabilitäts- und nicht kritische Sicherheitsprobleme bei GitHub-Anwendungen. Bei Bedarf stellt GitHub außerdem kritische Sicherheitspatches außerhalb des normalen Veröffentlichungszyklus bereit.
Netzwerksicherheit
Die interne Firewall von GitHub Enterprise Server schränkt den Netzwerkzugriff auf die Dienste der Appliance ein. Über das Netzwerk sind ausschließlich Dienste verfügbar, die für die Funktionsfähigkeit der Appliance erforderlich sind. Weitere Informationen finden Sie unter „Netzwerkports“.
Anwendungssicherheit
Das Anwendungssicherheitsteam von GitHub konzentriert sich auf die Beurteilung der Sicherheitslücken, auf die Eindringtests und die Codeprüfung für GitHub products, including GitHub Enterprise Server. GitHub hat zusätzlich externe Sicherheitsfirmen mit zeitabhängigen Sicherheitsbeurteilungen der GitHub-Produkte beauftragt.
Externe Dienste und Supportzugang
GitHub Enterprise Server lässt sich ohne jeglichen Egress-Zugriff vom Netzwerk auf externe Dienste nutzen. Optional können Sie die Integration in externe Dienste zur E-Mail-Zustellung, zur externen Überwachung und zur Protokollweiterleitung aktivieren. Weitere Informationen finden Sie unter „E-Mail für Benachrichtigungen konfigurieren“, „Externe Überwachung festlegen“ und „Protokollweiterleitung“.
Sie können manuell Fehlerbehebungsdaten sammeln und an den GitHub-Support senden. Weitere Informationen finden Sie unter „Daten für den GitHub-Support-Support bereitstellen“.
Verschlüsselte Kommunikation
GitHub hat GitHub Enterprise Server für die Ausführung hinter der Unternehmens-Firewall vorgesehen. Zum Schutz der drahtgebundenen Kommunikation sollten Sie TLS (Transport Layer Security) aktivieren. GitHub Enterprise Server unterstützt handelsübliche TLS-Zertifikate mit 2048 Bit und mehr für den HTTPS-Datenverkehr. Weitere Informationen finden Sie unter „TLS konfigurieren“.
Standardmäßig bietet die Appliance auch den SSH-Zugriff (Secure Shell) für den Repository-Zugriff über Git und für Verwaltungszwecke. Weitere Informationen finden Sie unter „Informationen zu SSH“ und „Auf die Verwaltungsshell (SSH) zugreifen“.
Benutzer und Zugriffsberechtigungen
GitHub Enterprise Server umfasst drei Kontotypen.
- Das
admin
-Linux-Benutzerkonto besitzt kontrollierten Zugriff auf das zugrundeliegende Betriebssystem mit direktem Dateisystem- und Datenbankzugriff. Eine kleine Gruppe vertrauenswürdiger Administratoren sollte den Zugriff auf dieses Konto erhalten, auf das sie über SSH zugreifen können. Weitere Informationen finden Sie unter „Auf die Verwaltungsshell (SSH) zugreifen“. - Benutzerkonten in der Webanwendung der Appliance besitzen den uneingeschränkten Zugriff auf die jeweils eigenen Daten sowie auf alle Daten, für die andere Benutzer oder Organisationen den Zugriff ausdrücklich gewähren.
- Websiteadministratoren in der Webanwendung der Appliance sind Benutzerkonten, die die allgemeinen Webanwendungs- und Appliance-Einstellungen, die Einstellungen für Benutzer- und Organisationskonten sowie die Repository-Daten verwalten können.
Weitere Informationen zu den Benutzerberechtigungen in GitHub Enterprise Server finden Sie unter „Zugriffsrechte auf GitHub“.
Authentifizierung
GitHub Enterprise Server umfasst vier Authentifizierungsmethoden.
- Die Authentifizierung mit einem öffentlichen SSH-Schlüssel eröffnet sowohl den Repository-Zugriff mit Git als auch den Zugriff auf die Verwaltungsshell. Weitere Informationen finden Sie unter „Informationen zu SSH“ und „Auf die Verwaltungsshell (SSH) zugreifen“.
- Die Authentifizierung per Benutzername und Passwort mit HTTP-Cookies eröffnet den Zugriff auf die Webanwendung und auf die Sitzungsverwaltung mit optionaler Zwei-Faktor-Authentifizierung (2FA). Weitere Informationen finden Sie unter „Integrierte Authentifizierung verwenden“.
- Die externe LDAP-, SAML- oder CAS-Authentifizierung mit einem LDAP-Service, einem SAML Identity Provider (IdP) oder anderen kompatiblen Diensten eröffnet den Zugriff auf die Webanwendung. Weitere Informationen finden Sie unter „Benutzer für Ihre GitHub Enterprise Server-Instanz authentifizieren“.
- OAuth-Token und persönliche Zugriffstoken eröffnen den Zugriff auf Git-Repository-Daten und APIs sowohl für externe Clients als auch für Dienste. For more information, see "Creating a personal access token."
Audit- und Zugriffsprotokollierung
GitHub Enterprise Server speichert sowohl herkömmliche Betriebssystem- als auch Anwendungsprotokolle. Die Anwendung führt außerdem detaillierte Audit- und Sicherheitsprotokolle, die GitHub Enterprise Server dauerhaft speichert. Sie können beide Protokolltypen über das syslog-ng
-Protokoll in Echtzeit an mehrere Ziele weiterleiten. Weitere Informationen finden Sie unter „Protokollweiterleitung“.
Zugriffs- und Auditprotokolle enthalten beispielsweise die folgenden Informationen.
Zugriffsprotokolle
- Vollständige Webserverprotokolle über den Browser- und API-Zugriff
- Vollständige Protokolle über den Zugriff auf Repository-Daten über Git, HTTPS und SSH-Protokolle
- Verwaltungszugriffsprotokolle über HTTPS und SSH
Auditprotokolle
- Benutzeranmeldungen, Passwortzurücksetzungen, 2FA-Anfragen, Änderungen der E-Mail-Einstellungen und Änderungen an autorisierten Anwendungen und APIs
- Aktionen von Websiteadministratoren wie das Entsperren von Benutzerkonten und Repositorys
- Repository-Push-Events, Zugriffsgewährungen, Übertragungen und Umbenennungen
- Änderungen an der Organisationsmitgliedschaft, u. a. Teamerstellung und -vernichtung
Open-Source-Abhängigkeiten für GitHub Enterprise Server
Eine vollständige Liste der Abhängigkeiten in der Version Ihrer Appliance von GitHub Enterprise Server sowie die Lizenz jedes Projekts finden Sie unter http(s)://HOSTNAME/site/credits
.
Tarballs mit einer vollständigen Liste der Abhängigkeiten und verknüpften Metadaten sind auf Ihrer Appliance verfügbar:
- Plattformübergreifende Abhängigkeiten finden Sie unter
/usr/local/share/enterprise/dependencies-<GHE version>-base.tar.gz
. - Plattformspezifische Abhängigkeiten finden Sie unter
/usr/local/share/enterprise/dependencies-<GHE version>-<platform>.tar.gz
.
Tarballs sind mit einer vollständigen Liste der Abhängigkeiten und Metadaten auch unter https://enterprise.github.com/releases/<version>/download.html
verfügbar.
Weiterführende Informationen
- „Eine Testversion von GitHub Enterprise Server einrichten“
- „GitHub Enterprise Server-Instanz einrichten“
- GitHub public roadmap in the
github/roadmap
repository