このバージョンの GitHub Enterprise はこの日付をもって終了となりました: 2021-09-23. 重大なセキュリティの問題に対してであっても、パッチリリースは作成されません。 パフォーマンスの向上、セキュリティの改善、新機能のためには、最新バージョンのGitHub Enterpriseにアップグレードしてください。 アップグレードに関する支援については、GitHub Enterprise supportに連絡してください。

システムの概要

GitHub Enterprise Server は仮想化アプライアンス内に含まれる GitHub のお客様の Organization のプライベートなコピーで、オンプレミスあるいはクラウド上でホストされ、お客様が設定およびコントロールできます。

ストレージアーキテクチャ

GitHub Enterprise Server は、2 つのストレージボリュームを必要とします。1 つはルートファイルシステムパス (/) にマウントされるもので、もう 1 つはユーザファイルシステムパス (/data/user) にマウントされるものです。 このアーキテクチャは、動作するソフトウェアの環境を永続的なアプリケーションデータから分離することによって、アップグレード、ロールバック、リカバリの手続きをシンプルにします。

ルートファイルシステムは、配布されているマシンイメージに含まれています。 ルートファイルシステムにはベースのオペレーティングシステムと GitHub Enterprise Server アプリケーション環境が含まれています。 ルートファイルシステムは、一過性のものとして扱われなければなりません。 ルートファイルシステム上にあるデータは、すべて将来の GitHub Enterprise Server リリースへのアップグレード時に置き換えられます。

ルートファイルシステムには以下が含まれます:

  • カスタムの認証局 (CA) 証明書 (/usr/local/share/ca-certificates)
  • カスタムのネットワーク設定
  • カスタムのファイアウォール設定
  • レプリケーションの状態

ユーザファイルシステムには、以下のようなユーザ設定とデータが含まれます:

  • Git リポジトリ
  • データベース
  • 検索インデックス
  • GitHub Pages サイトで公開されたコンテンツ
  • Git Large File Storage からの大きなファイル
  • pre-receive フック環境

デプロイメントの選択肢

GitHub Enterprise Server は単一の仮想アプライアンスとしても、High Availability 構成としてもデプロイできます。 詳細は「High Availability 用に GitHub Enterprise Server を設定する」を参照してください。

数万人の開発者がいる組織の場合、GitHub Enterprise Server クラスタリングも有益かもしれません。 詳しい情報については「クラスタリングについて」を参照してください。

データのリテンションとデータセンターの冗長性

GitHub Enterprise Server を本番環境で使う前に、バックアップとシステム災害復旧計画をセットアップしておくことを強くおすすめします。 詳しい情報については、「アプライアンスでのバックアップの設定」を参照してください。

GitHub Enterprise Server には、GitHub Enterprise Serverバックアップユーティリティ でのオンラインおよびインクリメンタルバックアップのサポートが含まれています。 インクリメンタルスナップショットは、オフサイトや地理的に離れたストレージのために長距離を経てセキュアなネットワークリンク(SSH管理ポート)経由で取ることができます。 スナップショットは、プライマリデータセンターにおける災害時のリカバリにおいて、新たにプロビジョニングされたアプライアンスにネットワーク経由でリストアできます。

ネットワークバックアップに加えて、アプライアンスがオフラインになっているかメンテナンスモードになっている間に、ユーザストレージボリュームのAWS(EBS)やVMWareのディスクスナップショットがサポートされています。 サービスレベルの要求が定期的なオフラインメンテナンスを許せるものであれば、定期的なボリュームのスナップショットは、GitHub Enterprise Serverバックアップユーティリティのネットワークバックアップの低コストで複雑さの低い代替になります。

詳しい情報については、「アプライアンスでのバックアップの設定」を参照してください。

セキュリティ

GitHub Enterprise Server は、お客様のインフラストラクチャ上で動作する仮想アプライアンスで、ファイアウォール、IAM、監視、VPNなどの既存のセキュリティ情報管理により統御されます。 GitHub Enterprise Server を使うと、クラウドベースのソリューションから生じる、規制の遵守に関する問題の回避に役立ちます。

GitHub Enterprise Server には、追加のセキュリティ機能も含まれています。

オペレーティングシステム、ソフトウェア、パッチ

GitHub Enterprise Server は、必要なアプリケーションとサービスのみを備える、カスタマイズされた Linux を実行します。 GitHub は、標準的な製品リリースサイクルの一環として、アプライアンスのコアオペレーティングシステムに対するパッチを管理します。 パッチは、GitHub アプライアンスの機能、安定性、および重大でないセキュリティ問題に対処するものです。 また、GitHub は、必要に応じて標準的なリリースサイクル外でも重大なセキュリティパッチを提供します。

GitHub Enterprise Server is provided as an appliance, and many of the operating system packages are modified compared to the usual Debian distribution. We do not support modifying the underlying operating system for this reason (including operating system upgrades), which is aligned with the GitHub Enterprise Server license and support agreement, under section 11.3 Exclusions.

Currently, the base of the GitHub Enterprise Server appliance is Debian 9 (Stretch) and receives support under the Debian Long Term Support program. There are plans to move to a newer base operating system before the end of the Debian LTS period for Stretch.

Regular patch updates are released on the GitHub Enterprise Server releases page, and the release notes page provides more information. These patches typically contain upstream vendor and project security patches after they've been tested and quality approved by our engineering team. There can be a slight time delay from when the upstream update is released to when it's tested and bundled in an upcoming GitHub Enterprise Server patch release.

ネットワークのセキュリティ

GitHub Enterprise Server の内部ファイアウォールは、アプライアンスのサービスへのネットワークアクセスを制限します。 アプライアンスが機能するために必要なサービスだけが、ネットワークを通じて利用できます。 詳しい情報については、「ネットワークポート」を参照してください。

アプリケーションのセキュリティ

GitHub の、アプリケーションのセキュリティチームは、GitHub Enterprise Server も含めた GitHub 製品に対し、脆弱性評価、ペネトレーションテスト、およびコードレビューをフルタイムで重点的に取り組んでいます。 また、GitHub は、GitHub 製品の特定時点におけるセキュリティ評価を行なうため、外部セキュリティ企業と契約しています。

外部サービスおよびサポートへのアクセス

GitHub Enterprise Server は、お客様のネットワークから外部サービスにアクセスすることなしに運用できます。 また、メール配信、外部モニタリング、およびログ転送のため、外部サービスとのインテグレーションを有効にすることも可能です。 詳しい情報については、「通知のためのメール設定」、「外部モニタリングのセットアップ」、「ログの転送」を参照してください。

トラブルシューティングデータを手動で収集し、GitHub Support に送信できます。 詳しい情報については、「GitHub Support へのデータ提供」を参照してください。

暗号化通信

GitHub は、GitHub Enterprise Server がお客様の社内ファイアウォールの背後で動作するよう設計しています。 回線を介した通信を保護するため、Transport Layer Security (TLS) を有効化するようお勧めします。 GitHub Enterprise Server は、HTTPS トラフィックに対して、2048 ビット以上の商用 TLS 証明書をサポートしています。 詳しい情報については、「TLSの設定」を参照してください。

デフォルトでは、Git によるリポジトリへのアクセスと管理目的との両方で、アプライアンスは Secure Shell (SSH) アクセスも提供します。 詳しい情報については、「SSH について」および「管理シェル (SSH) にアクセスする」を参照してください。

ユーザおよびアクセス権限

GitHub Enterprise Server は、3 種類のアカウントを提供しています。

  • admin Linux ユーザアカウントは、ファイルシステムやデータベースへの直接的なアクセスを含め、基底のオペレーティングシステムに対して限定的にアクセスできます。 このアカウントには、少数の信頼できる管理者がアクセスできるようにすべきで、SSH を介してアクセスできます。 詳しい情報については、「管理シェル (SSH) にアクセスする」を参照してください。
  • アプライアンスのウェブアプリケーション内のユーザアカウントは、自らのデータ、および他のユーザや Organization が明示的に許可したあらゆるデータにフルアクセスできます。
  • アプライアンスのウェブアプリケーション内サイト管理者は、高レベルのウェブアプリケーションおよびアプライアンスの設定、ユーザおよび Organization のアカウント設定、ならびにリポジトリデータを管理できるユーザアカウントです。

GitHub Enterprise Server のユーザ権限に関する詳しい情報については「GitHub 上のアクセス権限」を参照してください。

認証

GitHub Enterprise Server は、4 つの認証方式を提供しています。

  • SSH 公開鍵認証は、Git によるリポジトリへのアクセスと、管理シェルアクセスの両方を提供します。 詳しい情報については、「SSH について」および「管理シェル (SSH) にアクセスする」を参照してください。
  • HTTP クッキーを用いたユーザ名とパスワードによる認証では、ウェブアプリケーションのアクセスおよびセッションの管理、そして任意で 2 要素認証 (2FA) を提供します。 詳しい情報については、「ビルトイン認証の利用」を参照してください。
  • LDAP サービス、SAML アイデンティティプロバイダ (IdP)、またはその他互換性のあるサービスを用いた外部 LDAP、SAML、および CAS 認証は、ウェブアプリケーションへのアクセスを提供します。 詳しい情報については、「GitHub Enterprise Server インスタンスでユーザを認証する」を参照してください。
  • OAuth および個人アクセストークンは、外部クライアントとサービスの両方に対して、Git リポジトリデータおよび API へのアクセスを提供します。 詳しい情報については、「個人アクセストークンを作成する」を参照してください。

監査およびアクセスのログ取得

GitHub Enterprise Server は、従来型オペレーティングシステムおよびアプリケーションの両方のログを保存します。 また、アプリケーションは詳細な監査およびセキュリティログも記録し、GitHub Enterprise Server はこれを永続的に保存します。 syslog-ng プロトコルを介して、両タイプのログをリアルタイムで複数の宛先に転送できます。 詳しい情報については、「ログの転送」を参照してください。

アクセスログと監査ログには、以下のような情報が含まれています。

アクセスログ

  • ブラウザと API アクセスの両方の、ウェブサーバーの完全なログ
  • Git、HTTPS、および SSH プロトコルを介した、リポジトリデータへのアクセスの完全なログ
  • HTTPS および SSH を介した、管理アクセスのログ

監査ログ

  • ユーザのログイン、パスワードのリセット、2 要素認証のリクエスト、メール設定の変更、ならびに許可されたアプリケーションおよび API への変更
  • ユーザアカウントやリポジトリのアンロックなどの、サイト管理者のアクション
  • リポジトリのプッシュイベント、アクセス許可、移譲、および名前の変更
  • チームの作成および破棄を含む、Organization のメンバーシップ変更

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にあります。

参考リンク

問題がまだ解決していませんか?