2026年に報告されたCVEは、1日あたり前年比131%増加しています。
← 用語集に戻る

CIランナー

CIランナーとは、CI/CDパイプラインのジョブを実行するマシンです。CIサービスからジョブを受け取り、ステップを実行して、結果を報告します。

最終更新日:2026年11月11日

CIランナーとは、CI/CDパイプラインのジョブを実行する物理または仮想のマシンです。CIサービスからジョブを受け取り、コードをチェックアウトし、ステップを実行して、結果を報告します。JenkinsやAzure Pipelinesでは同じものをエージェントと呼び、ほかのシステムではエグゼキューターと呼びます。

GitHub Actionsでのランナーの仕組み

どのランナーがジョブを受け取るかは、ワークフローのruns-onラベルで決まります。GitHubはジョブのラベルとグループに一致するオンラインのランナーを探し、どのランナーにも受け取られなかったジョブはキューに残り、24時間後に失敗します(GitHubのセルフホストランナーのリファレンス)。ランナーアプリケーションはHTTPSでGitHubに外向きに接続してジョブを受け取り、ジョブの実行中はログをストリーミングで返し、エフェメラルランナーの場合は終了後に破棄されます。

GitHubはコントロールプレーンで、リポジトリ、ワークフローファイル、シークレットの保存、ログ、チェックを保持します。実際の作業を行うのはランナーです。

ランナーの3つの種類

ランナーには、新しいマシンで1つのジョブだけを実行するエフェメラル型と、同じマシンで多くのジョブを実行する永続型があります。エフェメラルランナーのほうが安全です。あるジョブが残したファイルや認証情報が、次のジョブに一切届かないからです。

ランナーがセキュリティ上重要な理由

ランナーは、ソースコード、シークレット、ダウンロードされた依存関係が一か所に集まる場所です。ジョブのトークンやクラウドの認証情報を保持し、パッケージのインストールスクリプトをすべて実行し、ビルドが行うネットワーク接続をすべて行います。侵害された依存関係は、ランナーの権限で動作します。

つまり、ランナーはセキュリティ境界です。ジョブ同士を分離し、エグレスポリシーでランナーの到達先を制限し、各ジョブが取得したものを記録してください。

CRACI

CRACIはGitHub Actionsのランナーです。ワークフローはGitHubに置いたまま、runs-on: craciでジョブを移せ、実行結果も引き続きGitHubに表示されます。各ジョブは、エグレスポリシーのもとでそれぞれ分離された仮想マシンで実行され、取得したもののSBOMを生成します。CRACIのランナーとCRACIとGitHubホステッドランナーの比較をご覧ください。

CRACIは現在、GitHub Actions向けのLinuxジョブのみを実行します。GitLab CI、Jenkins、Windows、macOS向けのランナーは、各ベンダーから提供されるものか、セルフホストで用意することになります。