Около GitHub Enterprise Server
GitHub Enterprise Server — это локальная версия платформы GitHub .
GitHub распределяет GitHub Enterprise Server как автономное виртуальное устройство. Завершив подготовку виртуальной машины и установку устройства, экземпляр запускает операционную систему Linux с пользовательским стеком приложений. Для получения дополнительной информации см. [AUTOTITLE](/admin/overview/about-github-enterprise-server).
Архитектура хранилища
GitHub Enterprise Server Требуется два тома хранения: один смонтирован на _путь корневой файловой_ системы (`/`), другой — к _пользовательскому пути файловой_ системы (`/data/user`). Эта архитектура упрощает процедуры обновления, отката и восстановления, отделяя выполняемую программную среду от сохраняемых данных приложения.
Корневая файловая система включена в распределенный образ компьютера. Он содержит базовую операционную систему и среду GitHub Enterprise Server приложений. Корневая файловая система должна рассматриваться как временная. Любые данные в корневой файловой системе будут заменены при обновлении к будущим GitHub Enterprise Server релизам.
Корневой том хранилища разбивается на два раздела одинакового размера. Один из разделов будет подключен в качестве корневой файловой системы (/). Другой раздел подключается в качестве /mnt/upgrade только во время обновлений и откатов обновлений для упрощения таких откатов, если это необходимо. Например, если выделен корневой том на 400 ГБ, то на корневую файловую систему будет выделено 200 ГБ, а 200 ГБ — для обновлений и отката.
В новых установках версии 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 Также включает дополнительные функции безопасности.
- Операционная система, программное обеспечение и исправления
- Безопасность сети
- Безопасность приложения
- Доступ к внешним службам и услугам поддержки
- Зашифрованное взаимодействие
- Пользователи и разрешения на доступ
- Аутентификация
- Ведение журналов аудита и доступа
Операционная система, программное обеспечение и исправления
GitHub Enterprise Server запускает кастомизированную операционную систему Linux с необходимыми приложениями и сервисами.
GitHub распространяет патчи для основной операционной системы экземпляра в рамках стандартного цикла выпуска продукта. Патчи решают функциональность, стабильность и некритические вопросы безопасности для GitHub Enterprise Server.
GitHub также предоставляет критически важные патчи безопасности вне обычного цикла выпуска.
GitHub Enterprise Server предоставляется в виде устройства, и многие пакеты операционной системы модифицированы по сравнению с обычным дистрибутивом Ubuntu. Мы не поддерживаем модификацию базовой операционной системы по этой причине (включая обновления), которая соответствует [GitHub Enterprise Server лицензионному и поддерживающему соглашению](https://enterprise.github.com/license), согласно исключениям раздела 11.3.
В настоящее время базовой операционной системой GitHub Enterprise Server является Ubuntu 20 (Focal Fossa). Хотя Ubuntu 20 (Focal Fossa) достигнет окончания стандартной поддержки к мая 2025 года, мы сможем использовать расширенное обслуживание безопасности и получить поддержку безопасности за пределами 2025 года.
Регулярные обновления патчей публикуются на страницеGitHub Enterprise Server релизов, а также на странице примечаний к релизу предоставляется дополнительная информация. Эти исправления обычно содержат восходящие исправления безопасности для поставщиков и проектов, прошедшие тестирование и контроль качества в нашей команде инженеров. Может возникнуть небольшая задержка с момента выхода upstream обновления до его тестирования и включения в комплект в предстоящем GitHub Enterprise Server патче.
Безопасность сети
GitHub Enterprise Serverвнутренний межсетевой экран ограничивает доступ сети к сервисам экземпляра. По сети доступны только службы, необходимые для работы устройства. Дополнительные сведения см. в разделе [AUTOTITLE](/admin/configuration/configuring-network-settings/network-ports).
Безопасность приложения
GitHubКоманда безопасности приложений полностью сосредоточена на оценке уязвимости, тестировании на проникновение и обзоре кода для GitHub продуктов, включая GitHub Enterprise Server.
GitHub Также заключает контракты с внешними охранными компаниями на проведение текущей GitHub оценки безопасности продуктов.
Доступ к внешним службам и услугам поддержки
GitHub Enterprise Server может работать без выхода из вашей сети к внешним сервисам. При необходимости можно включить интеграцию с внешними службами для доставки электронной почты, внешнего мониторинга и пересылки журналов. Дополнительные сведения см. в разделе AUTOTITLE, [AUTOTITLE[ и [AUTOTITLE](/admin/configuration/configuring-your-enterprise/configuring-email-for-notifications)](/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 поддерживает коммерческие TLS-сертификаты 2048 бит и выше для HTTPS-трафика. Дополнительные сведения см. в разделе [AUTOTITLE](/admin/configuration/configuring-network-settings/configuring-tls).
По умолчанию экземпляр также предоставляет доступ по протоколу Secure Shell (SSH) как для обращения к репозиторию с помощью Git, так и для административных целей. Дополнительные сведения см. в разделе [AUTOTITLE и Сведения о протоколе SSH](/admin/configuration/configuring-your-enterprise/accessing-the-administrative-shell-ssh).
Если вы настроите аутентификацию SAML для ваш экземпляр GitHub Enterprise Server, вы можете включить зашифрованные утверждения между экземпляром и вашим SAML IdP. Дополнительные сведения см. в разделе Использование 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 и [AUTOTITLE](/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/about-the-audit-log-for-your-enterprise)](/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.