tech#github#enterprise#ghes#copilot#emu#governance

GitHub Enterprise Cloud と Server の違いを、ユーザー管理・Copilot・周辺機能から整理する

公開 👁
GitHub Enterprise Cloud と Server の違いを、ユーザー管理・Copilot・周辺機能から整理する

この記事を書こうと思ったきっかけ

企業で GitHub を使うとき、GitHub Enterprise Cloud に Data Residency が登場したことで、コードやユーザーデータの保存先を選びやすくなりました。

それでも、「ソースコードを自社管理の環境から出したくない」「ネットワークも含めてオンプレミスに閉じたい」という要望は、まだまだ根強いと思います。その場合に候補になるのが、自己ホスト型の GitHub Enterprise Server(GHES) です。

一方で、私は Cloud を中心に支援する Cloud Solution Architect(CSA)なので、GHES の実際のユーザー管理や、GitHub Copilot と組み合わせたときの管理境界について、正直あまり詳しくありませんでした。

そこで今回は、次の疑問を GitHub 公式ドキュメントから整理してみます。

⚠️ この記事の検証範囲について
私は GHES の実機環境を持っていないため、この記事の内容は実機で検証できていません。2026 年 7 月 27 日時点の GitHub 公式ドキュメント(GHES は latest が参照する 3.21)をもとに、GitHub Copilot に調査・整理してもらった内容を、私自身の理解のためにまとめたものです。特に GHES はバージョン、ライセンス契約、ネットワーク構成によって利用可能な機能が変わります。実際の導入では、利用予定バージョンの公式ドキュメントと GitHub の営業・サポートへ必ず確認してください。

目次

まず結論

先に、今回調べた内容をざっくりまとめます。

論点GitHub Enterprise CloudGitHub Enterprise Server
コードの保存場所GitHub が運用。Data Residency では選択リージョンへ保存自社が管理する GHES インスタンスへ保存
サービス運用GitHub が実施自社でアップグレード、バックアップ、可用性、容量を管理
ユーザー個人アカウントまたは EMUGHES 内のローカルアカウント。built-in / CAS / LDAP / SAML で認証
自動プロビジョニングEMU では IdP + SCIMSAML + SCIM で GHES アカウントを作成・停止可能
EMU利用可能利用不可。GHES の SCIM は EMU とは別物
Copilot の管理Cloud の Enterprise / Organization で管理Copilot 自体は Cloud 側で契約・ID・ポリシーを管理
IDE の Copilot利用可能Cloud 側で Copilot ライセンスを持つユーザーなら、ローカルにクローンした GHES リポジトリでも利用可能
Copilot cloud agentGitHub.com の Organization / リポジトリで利用GHES だけにあるリポジトリを対象にする公式構成は確認できない
Actions の実行GitHub-hosted / self-hosted runnerself-hosted runner のみ。外部オブジェクトストレージも必要
Codespaces利用可能GHES リポジトリ向けの提供は確認できない

一番重要なのは、GHES を選んでも Copilot までオンプレミスに閉じるわけではないことです。

GHES はコード、Issue、Pull Request などの開発データを自社管理の環境に置けます。しかし Copilot の推論、ライセンス、ポリシーは GitHub の Cloud サービスです。したがって「リポジトリは GHES、AI は Cloud」という 2 つの管理面を組み合わせることになります。

1. Cloud と Server では、閉じられる範囲が違う

GitHub Enterprise には、GitHub が運用する GitHub Enterprise Cloud(GHEC) と、自社で運用する GitHub Enterprise Server(GHES) があります。

GitHub Enterprise Cloud

GitHub Enterprise Server

ただし GHES も、必ずしも完全な閉域で完結するわけではありません。

たとえば GitHub Connect を有効にすると、GHES と GitHub Enterprise Cloud の Enterprise アカウントを接続し、ライセンス同期、Dependabot、GitHub.com 上の Actions、統合検索などを利用できます。GitHub Connect 自体がリポジトリ、Issue、Pull Request を Cloud へ転送することはありません。ただし、接続情報や利用ライセンス数に加え、有効にした機能に応じてユーザー ID・メールアドレス、Action の名前と YAML、検索語句や検索結果などが送信されます。

ここには 2 つ注意点があります。

つまり「GHES を選べば、すべての通信とデータが自動的にオンプレミスで完結する」わけではありません。利用する機能ごとに、何がどちら向きに送信されるかを確認する必要があります。

2. GHES のユーザー管理と EMU

GHES で選べる認証方式

GHES のユーザーは、GHES インスタンスの中に作成されるアカウントです。認証方式として、次の選択肢があります。

Built-in authentication では、招待またはサインアップからユーザーがアカウントを作成します。CAS、LDAP、SAML では、認証を通過したユーザーが初回アクセスしたときに JIT(Just-in-Time)で GHES アカウントを作成できます。

SAML + SCIM なら、IdP から登録・停止できる

現在の GHES では、SAML SSO と SCIM を組み合わせることで、IdP から次のライフサイクルを管理できます。

パートナー IdP として、公式ドキュメントには次が掲載されています。

GitHub は、認証とプロビジョニングに同じパートナー IdP を使う構成を推奨しています。SCIM を使う場合、認証は SAML または SAML + built-in authentication が必要で、CAS / LDAP と SCIM は組み合わせられません。

既存の SAML 環境へ SCIM を追加するときは、移行手順にも注意が必要です。SCIM を有効にすると、既存の SAML ユーザーは SCIM で ID がプロビジョニングされるまでサインインできません。既存アカウントとの紐付けには、SCIM の userName と GHES のユーザー名が使われます。段階的な割り当て、ユーザー名の照合、built-in authentication を使う緊急用管理者アカウントを含めて、事前に移行計画を作る必要があります。

GHES で EMU は使えない

ここがいちばん混同しやすいところです。

Enterprise Managed Users(EMU)は GitHub Enterprise Cloud のアカウントモデルであり、GHES にはありません。

GHES の SAML + SCIM は、IdP から GHES 内のアカウントを作成・停止する仕組みです。見た目の運用は EMU に近い部分がありますが、次の点で別物です。

観点GHEC の EMUGHES の SAML + SCIM
アカウントの所在GitHub.com / GHE.com の管理ユーザー自社 GHES インスタンス内のユーザー
利用範囲EMU Enterprise 内その GHES インスタンス内
Data Residencyとの関係GHE.com では必須関係なし
Copilotの認証アカウントそのまま利用可能GHES アカウントとは別に Cloud 側アカウントが必要

「IdP でユーザーを自動作成したい」という要件には GHES の SCIM が使えますが、「GitHub Cloud 上の管理ユーザーとして Copilot や Cloud 機能も同じ ID で統制したい」という要件では、Cloud 側の個人アカウントまたは EMU も別途設計する必要があります。

3. GHES 利用者が Copilot を使うときの管理境界

GitHub Copilot は GHES appliance の中で推論する機能ではありません。IDE の拡張機能や CLI から GitHub の Copilot サービスへ接続して利用します。

そのため GHES のリポジトリで Copilot を使う場合でも、利用者は次の 2 つの ID を持つ構成になります。

  1. GHES へサインインし、リポジトリへアクセスするための GHES アカウント
  2. Copilot ライセンスを受け取り、IDE から Copilot へ認証するための Cloud 側 GitHub アカウント

この 2 つは、同じ企業メールアドレスや同じ IdP を使っていても、GitHub 上では別のアカウントとして管理されます。

Copilot Business 専用 Enterprise という選択肢

GitHub 公式ドキュメントでは、Cloud 側の Organization や Enterprise でユーザーをまだ管理していない企業向けに、Copilot Business のライセンス管理専用 Enterpriseを作る方法が案内されています。これは GHES 利用企業に必須の構成ではなく、Copilot だけを集中管理するための選択肢です。

この専用 Enterprise では、次の 2 通りから ID 方式を選べます。

ユーザーを Organization へ所属させず、Enterprise へ直接追加し、ユーザーまたは Enterprise Team 単位で Copilot Business ライセンスを付与できます。この方式なら、Copilot のためだけに GitHub Enterprise ライセンスを各ユーザーへ付与する必要はありません。

開発者
  ├─ GHES アカウント ── 自社 GHES のリポジトリ・Issue・PR へアクセス
  └─ Cloud 側アカウント ── Copilot Business のライセンス・ポリシーを受け取る
                               └─ IDE / CLI から Copilot サービスへ接続

つまり、Copilot のライセンスとポリシーは GHES の Enterprise Settings ではなく、Cloud 側の Enterprise Settings にある AI Controls で管理すると考えるのが分かりやすいです。

なお、GitHub Enterprise プランでは GitHub Enterprise Cloud と GitHub Enterprise Server の両方を利用できます。すでに契約に紐づく Cloud 側 Enterprise がある場合、その Enterprise を Copilot 管理にも使うのか、Copilot 専用 Enterprise を分けるのかは、契約と ID 設計によって変わります。ここは GitHub の営業担当へ確認した方が安全です。

また、Copilot Business と Copilot Enterprise の差分には、GitHub.com 上のリポジトリや Pull Request を前提とする機能が含まれます。コードの正本を GHES にだけ置く場合、上位プランの機能をすべて利用できるとは限りません。プラン名だけで選ばず、利用したい機能が GHES リポジトリにも適用できるかを機能単位で確認する必要があります。

4. Copilot ポリシーは Organization ごとに分けられるか

結論から言うと、Cloud 側に Organization を作れば分けられます。ただし、必ず Organization が必要なわけではありません。

Organization を作らない場合

Organization を作る場合

公式の Copilot Business 専用 Enterprise 手順では、初期構成時に「Organization を作らない」よう案内されています。Copilot ライセンスだけを管理したいなら、まず Enterprise 直下のユーザー / Team 割り当てから始めるのがシンプルです。

一方で、server-managed settings を .github-private リポジトリから配布するなど、リポジトリを使う集中設定には Organization が必要です。この場合は、その Organization を作成・管理するユーザーに GitHub Enterprise ライセンスが必要になります。MDM やファイル配布で managed settings を展開する方法もあります。

複数 Organization のポリシー競合に注意

同じユーザーが複数 Organization から Copilot ライセンスを受け取り、それぞれのポリシーが異なる場合、多くの機能は もっとも制限の弱いポリシー が適用されます。

一方、公開コードに一致する候補、GitHub 以外のリポジトリに対する semantic indexing、Copilot Metrics API、ライセンスを持たないメンバーへの Copilot code review など、一部のポリシーにはもっとも制限の強い設定が適用されます。

「厳しい Organization へ入れたから、そのユーザーの Copilot 全体も厳しくなる」とは限りません。厳格な統制が必要なら、Enterprise レベルで明示的に強制し、Organization へ安易に委譲しない方が安全です。

5. 設定しても効かない Copilot ポリシーがある

Copilot は IDE、CLI、GitHub.com、Copilot cloud agent、Copilot code review など複数の利用場面があります。同じポリシーでも、すべての機能に適用されるわけではありません。

代表的な例です。

ポリシー / 制御適用されない、または制約がある機能
コンテンツ除外(Content exclusion)Copilot CLI、Copilot cloud agent、IDE 内 Copilot Chat の Edit Mode / Agent Mode では未対応
Copilot can search the webCopilot cloud agent のインターネット接続を制御しない
Custom modelsCopilot cloud agent、Copilot code review では未対応
MCP Registry URL / Registry server への制限Copilot cloud agent には適用されない
Suggestions matching public codeCLI や GitHub.com Chat など、inline suggestion 以外には同じ形で適用されない

特にコンテンツ除外(Content exclusion)は注意が必要です。

Cloud 側の Enterprise / Organization 設定では、GHES を含む任意の Git リモート URL を指定して、特定のファイルやパスを Copilot のコンテキストから除外できます。通常の inline suggestion や対応する Copilot Chat では適用されますが、Copilot Chat の Edit Mode / Agent Mode、Copilot CLI、Copilot cloud agent にはコンテンツ除外が適用されません

「除外ポリシーを設定したから、すべての Copilot 機能からそのファイルが除外される」と考えるのは危険です。導入時は機能単位で許可し、利用する機能ごとにポリシーの対応表を確認する必要があります。

6. GHES で Copilot cloud agent は使えるのか

ここでは、次の 2 つを分けて考える必要があります。

IDEのAgent Mode

IDE の中でローカルファイルを読み、コマンドを実行し、コードを変更する機能です。GHES リポジトリをローカルへクローンしている場合でも、Cloud 側アカウントで Copilot へ認証できれば利用できます。

ただし前述のとおり、Agent Mode ではコンテンツ除外がサポートされません。ネットワーク、ターミナル実行、MCP、承認操作など、クライアント側の統制を別途設計する必要があります。

Copilot cloud agent

Copilot cloud agent は GitHub 上の Issue や Chat から作業を委譲し、GitHub Actions で動く一時的な開発環境の中でブランチ作成、変更、テスト、Pull Request 作成を行う機能です。

公式の管理手順は、GitHub.com 上の次のリソースを前提にしています。

GitHub 公式ドキュメントでは、Copilot cloud agent は GitHub にホストされたリポジトリだけで動作すると説明されています。また、管理手順は GitHub.com 上の Enterprise、Organization、リポジトリを前提としており、GHES 3.21 のドキュメントには Copilot cloud agent の機能ページがありません。この記事では、GHES だけに存在するリポジトリは Copilot cloud agent の対象外として整理します。

そのため、現時点では次の整理が安全です。

Copilot cloud agent を要件に含める場合は、リポジトリの正本をどこに置くか、Cloud へ何を複製してよいかを先に決め、GitHub の営業またはサポートへ最新の GHES 対応状況を確認する必要があります。

観点IDE の Agent ModeCopilot cloud agent
実行場所開発者のローカル開発環境GitHub Actions による一時的な開発環境
対象コードローカルにクローンしたリポジトリGitHub.com 上の対象リポジトリ
GHES リポジトリローカルへクローンすれば利用可能GHES だけにあるリポジトリは対象外
作業結果ローカルファイルを直接変更ブランチを作成し、Pull Request として提案
コンテンツ除外適用されない適用されない
主な統制点Client 設定、managed settings、実行承認、MCPEnterprise / Organization / リポジトリの許可、agent firewall、MCP

7. その他の GitHub 製品で出る主な制約

GitHub Actions

GHES でも GitHub Actions は利用できます。ただし Cloud 版と運用モデルが大きく異なります。

GHES には主要な公式 Action が同梱されていますが、リリース時点のスナップショットです。完全閉域では Action 本体だけでなく、setup-*が取得するツールキャッシュ、パッケージマネージャー、コンテナレジストリなども社内へミラーする必要があります。

GitHub Codespaces

Codespaces は GitHub が Cloud 上でホストする開発環境です。GHES 3.21 のドキュメントには Codespaces の機能ページがなく、GHES リポジトリから Codespaces を作る構成は確認できません。

GHES で同様の体験が必要なら、Dev Container を使ったローカル開発環境、社内 VDI、または別の自己ホスト型開発環境を検討することになります。

Dependabot

GHES でも Dependabot alerts / updates を利用できますが、構成要件があります。

GitHub Code Security / Secret Protection

GHES でも、Code Security と Secret Protection の主要機能を利用できます。

ただし GitHub.com で先に登場した AI 支援や新しい管理画面が、同じタイミングで GHES に入るとは限りません。導入時は「GitHub Enterprise」という製品名だけで判断せず、利用予定の GHES バージョンを選択した公式ドキュメントに、その機能ページが存在するかを確認するのが確実です。

GitHub Connectと完全閉域のトレードオフ

機能GHES 内だけで完結Cloud / 外向き接続が必要
リポジトリ / Issue / Pull Request可能不要
主要な bundled Action可能不要
GitHub.com / Marketplace の Action手動同期なら持ち込み可能自動利用は GitHub Connect + outbound 接続
Dependabot alert脆弱性データを GHES 内で評価Advisory Database の同期に GitHub Connect
Dependabot updateself-hosted runner で実行通常は package registry への接続が必要
IDE の Copilotローカルファイルを編集Copilot サービスと Cloud 側アカウントが必要
Copilot cloud agent / CodespacesGHES 内では完結しないCloud 側 Organization / リポジトリ / コンピューティング環境が前提

GHES を選ぶときは、単に「Cloud かオンプレミスか」ではなく、機能ごとに 完全閉域、限定的な outbound 接続、Cloud 併用 のどれを許可するかを整理する必要があります。

8. 導入前に確認したいこと

最後に、要件整理で使えそうな質問を並べます。

データとネットワーク

IDとライセンス

Copilot

運用

まとめ

今回調べてみて、GitHub Enterprise Cloud と GitHub Enterprise Server の違いは、「コードをどこに置くか」だけではないとあらためて感じました。

GHES では、リポジトリ、Issue、Pull Request、ユーザーを自社管理の環境へ置けます。SAML + SCIM を使えば、EMU ではないものの、IdP から GHES アカウントの作成・停止や Team membership も管理できます。

一方で Copilot は Cloud サービスです。GHES 利用者が Copilot を使う場合、GHES アカウントとは別に Cloud 側アカウントとライセンスが必要になり、ポリシーも Cloud 側 Enterprise / Organization で管理します。

Organization を使ったポリシー分離は可能ですが、Copilot 専用 Enterprise なら Organization なしで直接ライセンスを配る選択肢もあります。複数 Organization にまたがるポリシーは、多くの場合「もっとも制限の弱い設定」が適用されるため、強い統制が必要な項目は Enterprise レベルで固定した方がよさそうです。

また、IDE の Agent Mode と Copilot cloud agent は別物です。IDE の Agent Mode はローカルにクローンした GHES リポジトリでも利用できますが、Copilot cloud agent は Cloud 側 Organization、リポジトリ、GitHub Actions を前提とします。Copilot cloud agent を使うためにコードを Cloud へ複製するなら、そもそもの「オンプレミスへ閉じたい」という要件と衝突します。

GHES を選ぶときは、次の 3 段階で考えると整理しやすそうです。

  1. 絶対に外へ出せないデータは何か
  2. 限定的な outbound 接続を許可できる機能は何か
  3. Cloud 併用を許可して得たい開発体験は何か

GHES を選ぶことは「Cloud を使わない」ことではなく、自社で所有する境界と、Cloud サービスへ委ねる境界を、機能ごとに明示的に決めることなのだと思います。

公式情報源

GitHub Enterprise ServerとID管理

GitHub Copilot

ActionsとSecurity