Instiq
第4章 · Enterprise 向け Actions の管理·v1.0.0·更新 2026/6/15·読了目安 約16分

変更要約: GH-200 第4章を新規作成(ガバナンス=利用ポリシー無効/全許可/GitHub製/検証済み/許可リスト・SHA ピン留め必須化・再利用コンポーネントのアクセス設定・フォークPR承認・波及、ランナーの大規模管理=GitHubホスト/セルフホスト・ランナーグループ・IP許可リスト・プリインストール/toolcache/setup-*・トラブルシュート、暗号化シークレットと変数=組織/リポジトリ/環境のスコープと優先順位・secrets/vars・マスキング・REST API 管理)

4.2ランナーの大規模管理

この節の要点

GitHub ホスト型ランナーとセルフホストランナーの違いと使い分け、ランナーグループによるアクセス制御、IP 許可リストとネットワーク設定、プリインストールされたソフトウェア/ツールバージョンの把握と実行時の追加インストール、そしてランナーの監視とトラブルシュートを理解します。

ワークフローのジョブは ランナー の上で実行されます。GH-200 では、GitHub ホスト型ランナーセルフホストランナー の違いを正しく理解し、要件に応じて選び、組織で安全に管理することが問われます。GitHub ホスト型は GitHub が用意・更新・破棄まで管理する使い捨ての仮想環境で、ジョブごとにクリーンです。セルフホストは自分のマシン/クラウドにランナーアプリを入れて登録するもので、特殊なハードウェア・社内ネットワークアクセス・大きなキャッシュなどが必要なときに使います。

観点GitHub ホスト型セルフホスト
管理GitHub が管理・使い捨て自分で構築・保守
環境ジョブごとにクリーン状態が残りうる
向くケース一般的な CI・素早い開始特殊HW・社内NW・大規模キャッシュ
課金利用分課金(無料枠あり)自前インフラ費用

4.2.1ランナーグループとアクセス制御

セルフホストランナーは ランナーグループ にまとめ、「どの組織/リポジトリがそのランナーを使えるか」を制御します。これにより、機密性の高い本番デプロイ用ランナーを特定リポジトリだけに限定する、といった アクセス制御 が可能です。誰でも使えるセルフホストランナーは、悪意ある PR が機密マシン上でコードを実行する温床になり得るため、公開リポジトリではセルフホストランナーの利用に注意します(GitHub も非推奨)。ラベル を付けて runs-on: で対象ランナーを指定し、適切なグループに振り分けます。

4.2.2IP 許可リストとネットワーク

組織は IP 許可リスト を設定して、許可した IP 範囲からのみアクセスを受け付けられます。GitHub ホスト型ランナーを使う場合、その送信元 IP は変動するため、固定したいときは より大きな(larger)ランナー の静的 IP 範囲や、自前ネットワーク内の セルフホストランナー を使います。社内リソース(オンプレ DB など)にアクセスする必要があるジョブは、ネットワーク到達性の観点からセルフホスト(または適切なネットワーク構成)を選ぶのが定石です。

4.2.3プリインストールソフトと実行時インストール

GitHub ホスト型ランナーには、多くの言語ランタイム・CLI・ビルドツールが プリインストール されています。実際のバージョンは ランナーイメージのリリースノートツールキャッシュ(toolcache) で確認できます。必要なツールが無い/別バージョンが要る場合は、setup-* アクションactions/setup-node 等)、パッケージマネージャー、キャッシュ、コンテナイメージなどで 実行時にインストール します。セルフホストでは カスタムイメージ に必要物を焼き込んでおく方法もあります。なお、windows-latest の Windows Server 2025 移行や ubuntu-20.04 の廃止のような イメージ更新 でビルドが壊れることがある点に注意します。

4.2.4ランナーの監視とトラブルシュート

セルフホストランナーは、オンライン/オフラインの状態、キューに積まれたジョブが 実行されない(idle なランナーが無い・ラベル不一致) といった問題を監視します。よくある原因は、ランナーアプリの停止、必要な ラベルruns-on: の不一致、ネットワーク/認証の問題、ディスク不足です。ランナーの 診断ログ を確認し、必要に応じて再登録します。GitHub ホスト型では、混雑による待機や 同時実行数の上限(concurrency 制限) がボトルネックになることがあります。

試験ポイント

頻出:
GitHub ホスト型=使い捨て・クリーン・素早いセルフホスト=特殊HW/社内NW/大規模キャッシュ(状態が残りうる)。
②セルフホストはランナーグループでアクセス制御、公開リポジトリでの使用は危険
③固定 IP/社内アクセス=larger ランナーの静的 IP かセルフホスト、IP 許可リスト
④プリインストール版はリリースノート/toolcacheで確認、不足は setup-* アクション等で実行時インストール。
⑤ジョブが動かない=ラベル不一致/idle ランナー無しを疑う。

注意

混同・注意:
①セルフホストランナーは状態が残るためジョブが汚染され得る——クリーンさが要るなら GitHub ホスト型か使い捨て構成。
②公開リポジトリでセルフホストを使うと、悪意ある PR がマシン上でコードを実行する危険。
runs-on: のラベルがランナーのラベルと一致しないとジョブはキューで止まる。
④GitHub ホスト型の送信元 IP は変動——固定前提の設計は破綻する。

GitHub ホスト型・セルフホスト・ランナーグループの図。
用途で選び、グループで統制

4.2.5この節のまとめ

  • GitHub ホスト型=使い捨て/クリーン/素早い、セルフホスト=特殊HW/社内NW/大規模キャッシュ(状態が残りうる)
  • セルフホストはランナーグループでアクセス制御、公開リポジトリでの使用は危険。IP 許可リストで送信元を制限
  • プリインストール版はリリースノート/toolcache で確認、不足は setup-* アクション等で実行時インストール
  • ジョブが動かない時はラベル不一致/idle ランナー無し/ランナー停止を診断、イメージ更新による破壊に注意

進捗の記録にはログインが必要です。

理解度チェック

(軽い確認用)

Q1. ジョブがオンプレミスのデータベースにアクセスする必要があり、特殊なビルドツールも常駐させたいです。適切なランナーはどれですか?

Q2. 本番デプロイ用のセルフホストランナーを、限られたリポジトリだけが使えるように制御したいです。何を使いますか?

Q3. GitHub ホスト型ランナーに必要な Node のバージョンが入っているか分からず、無ければ特定版を使いたいです。最適な方法はどれですか?

Q4. セルフホストランナーへ送ったジョブがキューに溜まったまま実行されません。まず疑うべき原因はどれですか?

Q5. 公開(public)リポジトリでセルフホストランナーを使うことが一般に推奨されない理由はどれですか?

Q6. 組織のセキュリティ要件で、GitHub への接続を特定の IP 範囲からのみに制限したいです。使う機能はどれですか?

理解度を確認第4章「Enterprise 向け Actions の管理」の問題を解く

学習の記録を残しませんか

参考書はすべて無料で読めます。無料登録すると、問題集での演習・既読と進捗の記録・間違えた問題の復習・ハイライトが使えます。