О GitHub Enterprise Server
GitHub Enterprise Server — это локальная версия платформы GitHub . GitHub распределяет GitHub Enterprise Server как автономное виртуальное устройство. Завершив подготовку виртуальной машины и установку устройства, экземпляр запускает операционную систему Linux с пользовательским стеком приложений. Дополнительные сведения см. в разделе О GitHub Enterprise Server.
Архитектура хранилища
Для GitHub Enterprise Server требуется два тома хранилища: один должен быть подключен к пути корневой файловой системы (/), а другой — к пути пользовательской файловой системы (/data/user). Эта архитектура упрощает процедуры обновления, отката и восстановления, отделяя выполняемую программную среду от сохраняемых данных приложения.
Корневая файловая система включена в распределенный образ компьютера. Она содержит базовую операционную систему и среду приложений GitHub Enterprise Server. Корневая файловая система должна рассматриваться как временная. Все данные в корневой файловой системе будут заменены при обновлении до будущих выпусков GitHub Enterprise Server.
Корневой том хранилища разбивается на два раздела одинакового размера. Один из разделов будет подключен в качестве корневой файловой системы (/). Другой раздел подключается в качестве /mnt/upgrade только во время обновлений и откатов обновлений для упрощения таких откатов, если это необходимо. Например, если выделен корневой том 400 ГБ корневого тома, будет выделено 200 ГБ для корневая файловая система и 200 ГБостальных %}200 ГБ корневого тома, будет выделено 100 ГБ для корневая файловая система и 100 ГБ, зарезервированных для обновлений и откатов.
В новых установках версии 3.14 и более поздних версий том корневого хранилища разделен на четыре секции. Две небольшие секции предназначены для поддерживаемых режимов загрузки (BIOS и UEFI), а остальные две равные большие секции предназначены для основной базы данных GitHub Enterprise Server и обновлений и откатов.
Корневая файловая система содержит файлы, которые хранят указанные ниже сведения. Этот список не является исчерпывающим.
- Пользовательские сертификаты центра сертификации (ЦС) (в
/usr/local/share/ca-certificates*) - Пользовательские конфигурации сети
- Пользовательские конфигурации брандмауэра
- Состояние репликации
Файловая система пользователя содержит файлы, которые хранят указанные ниже конфигурации и данные. Этот список не является исчерпывающим.
- Репозитории Git
- Базы данных
- Индексы поиска
- Содержимое, опубликованное на сайтах GitHub Pages
- Крупные файлы из Хранилище больших файлов Git
- Среда перехватчиков предварительного получения
Технологии развертывания
По умолчанию GitHub Enterprise Server выполняется как автономный экземпляр. Вы можете повысить надежность и производительность GitHub Enterprise Server с помощью другой топологии для развертывания.
- Чтобы смягчить последствия сбоев системы или сети, можно развернуть пассивный экземпляр реплики. Во время сбоя, влияющего на основной экземпляр, можно вручную выполнить отработку отказа в экземпляр реплики. Дополнительные сведения см. в разделе Сведения о настройке высокого уровня доступности.
- Вы можете настроить несколько активных реплик для повышения производительности для разработчиков, географически удаленных от основного экземпляра. Дополнительные сведения см. в разделе Сведения о георепликации.
- Некоторые предприятия с десятками тысяч разработчиков могут использовать конфигурацию кластера, которая масштабируется горизонтально, а не вертикально. Дополнительные сведения см. в разделе Сведения о кластеризации.
Хранение данных и избыточность центров обработки данных
Предупреждение
Перед использованием GitHub Enterprise Server в рабочей среде настоятельно рекомендуется настроить резервные копии и план аварийного восстановления.
GitHub Enterprise Server включает поддержку оперативного и добавочного резервного копирования с GitHub Enterprise Server Backup Utilities. Вы можете создавать добавочные моментальные снимки через безопасный сетевой канал (административный порт SSH) на больших расстояниях для получения автономного или географически распределенного хранилища. Моментальные снимки можно по сети восстановить на новом подготовленном экземпляре во время процедуры восстановления в случае аварии в основном центре обработки данных.
Кроме сетевого резервного копирования, поддерживаются моментальные снимки дисков VMware и AWS (EBS) для пользовательских томов хранилища, когда экземпляр находится в автономном режиме или в режиме обслуживания. Обычные моментальные снимки томов можно использовать в качестве недорогой и несложной альтернативы для сетевых резервных копий с помощью GitHub Enterprise Server Backup Utilities, если требования к уровню обслуживания допускают регулярное автономное обслуживание.
Дополнительные сведения см. в разделе Настройка резервных копий в экземпляре с помощью служебных программ резервного копирования.
Безопасность
GitHub Enterprise Server выполняется в инфраструктуре и управляется элементами управления доступом и безопасностью, которые определяются, например брандмауэры, политики сети, IAM, мониторинг и виртуальные сети. GitHub Enterprise Server подходит для использования предприятиями, которые соответствуют нормативным требованиям, что помогает избежать проблем, возникающих на платформах разработки программного обеспечения в общедоступном облаке.
GitHub Enterprise Server также включает в себя дополнительные функции безопасности.
-
[Операционная система, программное обеспечение и исправления](#operating-system-software-and-patches) -
[Безопасность сети](#network-security) -
[Безопасность приложения](#application-security) -
[Доступ к внешним службам и услугам поддержки](#external-services-and-support-access) -
[Зашифрованное взаимодействие](#encrypted-communication) -
[Пользователи и разрешения на доступ](#users-and-access-permissions) -
[Аутентификация](#authentication) -
[Ведение журналов аудита и доступа](#audit-and-access-logging)
Операционная система, программное обеспечение и исправления
GitHub Enterprise Server запускает настроенную операционную систему Linux, содержащую только необходимые приложения и службы. GitHub распределяет исправления для основной операционной системы экземпляра в рамках стандартного цикла выпуска продукта. Исправления устраняют проблемы с функциональностью, стабильностью и некритичными проблемами безопасности для GitHub Enterprise Server. При необходимости GitHub также предоставляет критические исправления для системы безопасности за пределами обычного цикла выпуска.
GitHub Enterprise Server предоставляется как устройство, и многие пакеты операционной системы изменяются по сравнению с обычным дистрибутивом Ubuntu. По этой причине мы не поддерживаем изменение базовой операционной системы (включая обновления операционной системы), что соответствует соглашению о лицензиях и поддержке GitHub Enterprise Server (раздел 11.3 "Исключения").
В настоящее время базовая операционная система для GitHub Enterprise Server — Ubuntu 20 (Focal Fossa). Хотя Ubuntu 20 (Focal Fossa) достигнет окончания стандартной поддержки к мая 2025 года, мы сможем использовать расширенное обслуживание безопасности и получить поддержку безопасности за пределами 2025 года.
Регулярные обновления исправлений публикуются на странице выпусков GitHub Enterprise Server, а на странице заметок о выпуске доступны дополнительные сведения. Эти исправления обычно содержат восходящие исправления безопасности для поставщиков и проектов, прошедшие тестирование и контроль качества в нашей команде инженеров. Может возникнуть небольшая задержка с момента выпуска восходящего обновления до момента его тестирования и упаковки в восходящий выпуск исправления GitHub Enterprise Server.
Безопасность сети
Внутренний брандмауэр GitHub Enterprise Serverограничивает сетевой доступ к службам экземпляра. По сети доступны только службы, необходимые для работы устройства. Дополнительные сведения см. в разделе Сетевые порты.
Безопасность приложения
GitHubгруппы безопасности приложений фокусируется на полной оценке уязвимостей, тестировании на проникновение и проверке кода для продуктов GitHub, включая GitHub Enterprise Server. GitHub также заключает контракты с внешними фирмами, занимающимися вопросами безопасности, для проведения оценки безопасности на определенный момент времени для продуктов GitHub.
Доступ к внешним службам и услугам поддержки
GitHub Enterprise Server может работать без исходящего доступа из вашей сети к внешним службам. При необходимости можно включить интеграцию с внешними службами для доставки электронной почты, внешнего мониторинга и пересылки журналов. Дополнительные сведения см. в разделе AUTOTITLE, [AUTOTITLE[ и Настройка электронной почты для получения уведомлений](/admin/enterprise-management/monitoring-your-appliance/setting-up-external-monitoring).](/admin/monitoring-activity-in-your-enterprise/exploring-user-activity/log-forwarding)
Вы можете вручную собирать данные об устранении неполадок и отправлять их в Служба поддержки GitHub. Дополнительные сведения см. в разделе Предоставление данных в поддержку GitHub.
Зашифрованное взаимодействие
GitHub разрабатывает GitHub Enterprise Server для запуска за корпоративным брандмауэром. Чтобы защитить обмен данными по проводной сети, рекомендуется включить протокол TLS. GitHub Enterprise Server поддерживает для трафика HTTPS коммерческие сертификаты TLS разрядностью 2048 бит и выше. Дополнительные сведения см. в разделе Настройка TLS.
По умолчанию экземпляр также предоставляет доступ по протоколу Secure Shell (SSH) как для обращения к репозиторию с помощью Git, так и для административных целей. Дополнительные сведения см. в разделе [AUTOTITLE и Сведения о протоколе SSH](/admin/configuration/configuring-your-enterprise/accessing-the-administrative-shell-ssh).
Если настроить проверку подлинности SAML для ваш экземпляр GitHub Enterprise Server, можно включить зашифрованные утверждения между экземпляром и поставщиком удостоверений SAML. Дополнительные сведения см. в разделе Использование SAML для корпоративного IAM.
Пользователи и разрешения на доступ
GitHub Enterprise Server предоставляет три типа учетных записей.
- Учетная запись пользователя
adminв Linux контролирует доступ к базовой операционной системе, включая прямой доступ к файловой системе и базе данных. Небольшая группа доверенных администраторов должна иметь доступ к этой учетной записи, к которой они могут обратиться по протоколу SSH. Дополнительные сведения см. в разделе Доступ к административной оболочке (SSH). - Учетные записи пользователей в веб-приложении экземпляра имеют полный доступ к собственным данным и любым данным, явно предоставленным другими пользователями или организациями.
- Администраторы сайта в веб-приложении экземпляра — это учетные записи пользователей, которые могут управлять высокоуровневыми параметрами веб-приложения и экземпляра, параметрами учетной записи пользователя и организации и данными репозитория.
Дополнительные сведения о разрешениях пользователя GitHub Enterprise Serverсм. в разделе Права доступа на GitHub.
Аутентификация
GitHub Enterprise Server предоставляет четыре метода проверки подлинности.
- Проверка подлинности на основе открытого ключа SSH обеспечивает как доступ к репозиторию с использованием Git, так и доступ к административной оболочке. Дополнительные сведения см. в разделе [AUTOTITLE и Сведения о протоколе SSH](/admin/configuration/configuring-your-enterprise/accessing-the-administrative-shell-ssh).
- Проверка подлинности на основе имени пользователя и пароля с использованием файлов cookie HTTP обеспечивает доступ к веб-приложениям и управление сеансами с использованием необязательной двухфакторной проверки подлинности (2FA). Дополнительные сведения см. в разделе Настройка встроенной проверки подлинности.
- Внешняя проверка подлинности LDAP, SAML или CAS с использованием службы LDAP, поставщика удостоверений (IdP) SAML или другой совместимой службы обеспечивает доступ к веб-приложению. Дополнительные сведения см. в разделе Использование SAML для корпоративного IAM.
- OAuth и personal access tokens предоставляют доступ к данным репозитория Git и API для внешних клиентов и служб. Дополнительные сведения см. в разделе Управление личными маркерами доступа.
Ведение журналов аудита и доступа
GitHub Enterprise Server хранит традиционные журналы операционной системы и приложений. Приложение также записывает подробные журналы аудита и безопасности, которые GitHub Enterprise Server хранит на постоянной основе. Вы можете в режиме реального времени пересылать оба типа журналов в несколько назначений через протокол syslog-ng. Дополнительные сведения см. в разделе [AUTOTITLE и Журнал аудита для предприятия](/admin/monitoring-activity-in-your-enterprise/exploring-user-activity/log-forwarding).
Журналы доступа и аудита содержат указанные ниже сведения.
Журналы доступа
- Полные журналы веб-сервера для доступа с помощью браузера и API
- Полные журналы для доступа к данным репозитория по протоколам Git, HTTPS и SSH
- Журналы административного доступа по протоколам HTTPS и SSH
Журналы аудита
- Имена входа пользователей, сброс паролей, запросы двухфакторной проверки подлинности, изменения параметров электронной почты, а также изменения авторизованных приложений и API
- Действия администратора сайта, такие как разблокировка учетных записей пользователя и репозиториев
- События отправки репозитория, предоставление доступа, передача и переименование
- Изменение членства в организации, включая создание и уничтожение команд
Зависимости с открытым кодом для GitHub Enterprise Server
Полный список зависимостей можно просмотреть в версии GitHub Enterprise Server, а также лицензии http(s)://HOSTNAME/site/creditsкаждого проекта.
Архивы TAR с полным списком зависимостей и связанных метаданных доступны в экземпляре.
- Для зависимостей, общих для всех платформ, — по адресу
/usr/local/share/enterprise/dependencies-<GHE version>-base.tar.gz - Для зависимостей, относящихся к конкретной платформе, — по адресу
/usr/local/share/enterprise/dependencies-<GHE version>-<platform>.tar.gz
Кроме того, архивы TAR с полным списком зависимостей и метаданных доступны по адресу https://enterprise.github.com/releases/<version>/download.html.
Дополнительные материалы
-
[AUTOTITLE](/admin/overview/setting-up-a-trial-of-github-enterprise-server) -
[AUTOTITLE](/admin/installation/setting-up-a-github-enterprise-server-instance)