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로 탑재됩니다. 예를 들어 400GB 루트 볼륨이 할당되면 루트 파일 시스템에 200GB가 할당되고 업그레이드 및 롤백을 위해 예약된 200GB가 있습니다.
3.14 이상의 새 설치에서 루트 스토리지 볼륨은 4개의 파티션으로 분할됩니다. 두 개의 작은 파티션은 지원되는 부팅 모드(BIOS 및 UEFI)용이며, 다른 두 개의 동일한 큰 파티션은 기본 파티션 및 업그레이드 및 롤백을 위한 GitHub Enterprise Server 것입니다.
루트 파일 시스템에는 다음 정보를 저장하는 파일이 포함되어 있습니다. 현재 이 목록은 완전한 목록이 아닙니다.
- 사용자 지정 CA(인증 기관) 인증서(
/usr/local/share/ca-certificates*) - 사용자 지정 네트워킹 구성
- 사용자 지정 방화벽 구성
- 복제 상태
사용자 파일 시스템에는 다음 구성 및 데이터를 저장하는 파일이 포함되어 있습니다. 현재 이 목록은 완전한 목록이 아닙니다.
- Git 리포지토리
- 데이터베이스
- 인덱스 검색
- 사이트에 GitHub Pages 게시되어 있는 콘텐츠
- 큰 파일이 Git 대용량 파일 스토리지에서
- 사전 수신 후크 환경
배포 토폴로지
기본적으로 GitHub Enterprise Server 독립 실행형 인스턴스로 실행됩니다. 배포에 다른 토폴로지 사용 하 여 안정성 GitHub Enterprise Server 및 성능을 높일 수 있습니다.
- 시스템 또는 네트워크 오류의 영향을 완화하기 위해 수동 복제본 인스턴스를 배포할 수 있습니다. 주 인스턴스에 영향을 주는 중단 중에 복제본 인스턴스로 수동으로 장애 조치(failover)할 수 있습니다. 자세한 내용은 고가용성 구성 정보을(를) 참조하세요.
- 여러 활성 복제본을 구성하여 주 인스턴스에서 지리적으로 멀리 떨어져 있는 개발자의 성능을 향상시킬 수 있습니다. 자세한 내용은 지리적 복제을(를) 참조하세요.
- 수만 명의 개발자가 있는 일부 엔터프라이즈는 수직이 아닌 수평으로 스케일링되는 클러스터 구성을 활용할 수 있습니다. 자세한 내용은 클러스터링 정보을(를) 참조하세요.
데이터 보존 및 데이터 센터 중복도
경고
프로덕션 환경에서 사용하기 GitHub Enterprise Server 전에 백업 및 재해 복구 계획을 설정하는 것이 좋습니다.
GitHub Enterprise Server 에는 .를 사용한 온라인 및 증분 백업에 대한 지원이 포함됩니다 GitHub Enterprise Server Backup Utilities. 오프사이트 또는 지리적으로 분산된 스토리지를 위해 원격으로 보안 네트워크 링크(SSH 관리 포트)를 통해 증분 스냅샷을 생성할 수 있습니다. 기본 데이터 센터에서 재해가 발생한 경우 복구 시 네트워크를 통해 새로 프로비저닝된 인스턴스로 스냅샷을 복원할 수 있습니다.
네트워크 백업 외에도 인스턴스가 오프라인이거나 유지 관리 모드인 동안 사용자 스토리지 볼륨의 AWS(EBS) 및 VMware 디스크 스냅샷이 모두 지원됩니다. 일반 볼륨 스냅샷은 서비스 수준 요구 사항이 정기적인 오프라인 유지 관리를 허용하는 경우 네트워크 백업에 대한 저렴한 비용의 낮은 복잡성 대안으로 GitHub Enterprise Server Backup Utilities 사용할 수 있습니다.
자세한 내용은 Backup 유틸리티를 사용하여 인스턴스에서 백업 구성을(를) 참조하세요.
보안
GitHub Enterprise Server는 인프라에서 실행되며 방화벽, 네트워크 정책, IAM, 모니터링, VPN과 같이 사용자가 정의하는 액세스 및 보안 제어에 의해 관리됩니다. GitHub Enterprise Server는 규정 준수가 적용되는 엔터프라이즈에서 사용하기 적합하며, 이를 통해 퍼블릭 클라우드의 소프트웨어 개발 플랫폼에서 발생하는 문제를 방지할 수 있습니다.
GitHub Enterprise Server 에는 추가 보안 기능도 포함되어 있습니다.
운영 체제, 소프트웨어, 패치
GitHub Enterprise Server 는 필요한 애플리케이션 및 서비스만 사용하여 사용자 지정된 Linux 운영 체제를 실행합니다.
GitHub 는 표준 제품 릴리스 주기의 일부로 인스턴스의 핵심 운영 체제에 대한 패치를 배포합니다.
GitHub Enterprise Server에 대한 기능, 안정성, 및 중요하지 않은 보안 문제를 해결하는 패치입니다.
GitHub 또한 정기적인 릴리스 주기 외부에서 필요에 따라 중요한 보안 패치를 제공합니다.
GitHub Enterprise Server 은 어플라이언스로 제공되며, 대부분의 운영 체제 패키지는 일반적인 Ubuntu 배포에 비해 수정됩니다. Microsoft는 11.3 제외 섹션에 따라 [라이선스 및 지원 계약에 부합GitHub Enterprise Server](https://enterprise.github.com/license)하는 이러한 이유로(운영 체제 업그레이드 포함) 기본 운영 체제 수정을 지원하지 않습니다.
현재 기본 운영 체제 GitHub Enterprise Server 는 Ubuntu 20(Focal Fossa)입니다. Ubuntu 20(Focal Fossa)은 2025년 5월까지 표준 지원이 종료되지만, 2025년 이후에는 확장된 보안 유지 관리를 사용하고 보안 지원을 받을 수 있습니다.
정기적인 패치 업데이트는 GitHub Enterprise Server 페이지에서 릴리스 되며 릴리스 정보 페이지에서 자세한 정보를 제공합니다. 이러한 패치에는 일반적으로 엔지니어링 팀에서 테스트를 거쳐 품질을 승인한 업스트림 공급업체 및 프로젝트 보안 패치가 포함되어 있습니다. 업스트림 업데이트가 릴리스된 시점부터 예정된 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](/admin/configuration/configuring-your-enterprise/configuring-email-for-notifications), [AUTOTITLE](/admin/enterprise-management/monitoring-your-appliance/setting-up-external-monitoring), [AUTOTITLE](/admin/monitoring-activity-in-your-enterprise/exploring-user-activity/log-forwarding)을(를) 참조하세요.
문제 해결 데이터를 GitHub 지원수동으로 수집하고 보낼 수 있습니다. 자세한 내용은 GitHub 지원에 데이터 제공을(를) 참조하세요.
암호화된 통신
GitHub 는 GitHub Enterprise Server 회사 방화벽 뒤에서 실행되도록 디자인합니다. 유선 통신을 보호하려면 TLS(전송 계층 보안)를 활성화하는 것이 좋습니다.
GitHub Enterprise Server 는 HTTPS 트래픽에 대한 2048비트 이상의 상용 TLS 인증서를 지원합니다. 자세한 내용은 [AUTOTITLE](/admin/configuration/configuring-network-settings/configuring-tls)을(를) 참조하세요.
기본적으로 인스턴스는 Git을 사용한 리포지토리 액세스와 관리 목적 모두에 대해 SSH(Secure Shell) 액세스를 제공합니다. 자세한 내용은 SSH 정보 및 관리 셸(SSH)에 액세스을(를) 참조하세요.
SAML 인증을 GitHub Enterprise Server 인스턴스구성하는 경우 인스턴스와 SAML IdP 간에 암호화된 어설션을 사용하도록 설정할 수 있습니다. 자세한 내용은 엔터프라이즈 IAM에 SAML 사용을(를) 참조하세요.
사용자 및 액세스 권한
GitHub Enterprise Server 는 세 가지 유형의 계정을 제공합니다.
adminLinux 사용자 계정은 직접 파일 시스템 및 데이터베이스 액세스를 포함하여 기본 운영 체제에 대한 액세스를 제어했습니다. 소수의 신뢰할 수 있는 관리자는 SSH를 통해 액세스할 수 있는 이 계정에 액세스할 수 있어야 합니다. 자세한 내용은 관리 셸(SSH)에 액세스을(를) 참조하세요.- 인스턴스 웹 애플리케이션의 사용자 계정은 자신의 데이터와 다른 사용자 또는 조직이 명시적으로 부여한 모든 데이터에 대한 전체 액세스 권한을 보유합니다.
- 인스턴스 웹 애플리케이션의 사이트 관리자는 고급 웹 애플리케이션 및 인스턴스 설정, 사용자 및 조직 계정 설정 및 리포지토리 데이터를 관리할 수 있는 사용자 계정입니다.
'의 사용자 권한에 대한 GitHub Enterprise Server자세한 내용은 GitHub 대한 액세스 권한을 참조하세요.
인증
GitHub Enterprise Server 는 네 가지 인증 방법을 제공합니다.
- SSH 퍼블릭 키 인증은 Git을 사용한 리포지토리 액세스와 관리 셸 액세스를 모두 제공합니다. 자세한 내용은 SSH 정보 및 관리 셸(SSH)에 액세스을(를) 참조하세요.
- HTTP 쿠키를 사용한 사용자 이름 및 암호 인증은 선택적 2FA(2단계 인증)를 사용하여 웹 애플리케이션 액세스 및 세션 관리를 제공합니다. 자세한 내용은 기본 제공 인증 구성을(를) 참조하세요.
- LDAP 서비스, SAML IdP(ID 공급자) 또는 기타 호환 서비스를 사용하는 외부 LDAP, SAML 또는 CAS 인증은 웹 애플리케이션에 대한 액세스를 제공합니다. 자세한 내용은 엔터프라이즈 IAM에 SAML 사용을(를) 참조하세요.
- OAuth 및 personal access tokens는 외부 클라이언트와 서비스 모두에 대한 Git 리포지토리 데이터 및 API에 대한 액세스를 제공합니다. 자세한 내용은 개인용 액세스 토큰 관리을(를) 참조하세요.
감사 및 액세스 로깅
GitHub Enterprise Server 는 기존 운영 체제와 애플리케이션 로그를 모두 저장합니다. 또한 애플리케이션은 영구적으로 저장하는 자세한 감사 및 보안 로그를 작성합니다 GitHub Enterprise Server .
`syslog-ng` 프로토콜을 통해 두 가지 형식의 로그를 실시간으로 여러 대상에 전달할 수 있습니다. 자세한 내용은 [AUTOTITLE](/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/about-the-audit-log-for-your-enterprise) 및 [AUTOTITLE](/admin/monitoring-activity-in-your-enterprise/exploring-user-activity/log-forwarding)을(를) 참조하세요.
액세스 및 감사 로그에는 다음과 같은 정보가 포함됩니다.
액세스 로그
- 브라우저 및 API 액세스 모두에 대한 전체 웹 서버 로그
- Git, HTTPS, SSH 프로토콜을 통해 리포지토리 데이터에 액세스하기 위한 전체 로그
- HTTPS 및 SSH를 통한 관리 액세스 로그
감사 로그
- 사용자 로그인, 암호 재설정, 2FA 요청, 메일 설정 변경, 권한 있는 애플리케이션 및 API에 대한 변경
- 사용자 계정 및 리포지토리 잠금 해제와 같은 사이트 관리자 작업
- 리포지토리 푸시 이벤트, 액세스 권한 부여, 전송, 이름 바꾸기
- 팀 만들기 및 소멸을 포함한 조직 멤버 자격 변경
GitHub Enterprise Server의 오픈 소스 종속성
인스턴스 버전 GitHub Enterprise Server에서 종속성의 전체 목록과 각 프로젝트의 라이선스를 볼 수 있습니다 http(s)://HOSTNAME/site/credits.
종속성 및 관련 메타데이터의 전체 목록이 있는 Tarball은 인스턴스에서 사용할 수 있습니다.
- 모든 플랫폼에 공통적인 종속성은
/usr/local/share/enterprise/dependencies-<GHE version>-base.tar.gz에 있습니다. - 플랫폼에 대한 특정 종속성의 경우
/usr/local/share/enterprise/dependencies-<GHE version>-<platform>.tar.gz에 있습니다.
종속성 및 메타데이터의 전체 목록과 함께 Tarball도 https://enterprise.github.com/releases/<version>/download.html에서 사용할 수 있습니다.