LabHub

ブログ

GitHub Actions ARC 運用ガイド: Ephemeral Runner、Scale Set、セキュリティ境界

한국어English日本語

GitHub Actions ARC 運用ガイド

はじめに

GitHub Actions を組織規模で運用し始めると、self-hosted runner は単なるコスト最適化ではなく、実行隔離とセキュリティ境界の設計対象になります。特に ARC を Kubernetes 上で使うと、重要な問いは次のようになります。

この記事では GitHub の ARC 公式ドキュメントを基に、運用判断に必要な観点を整理します。

なぜ ephemeral runner が安全な既定値になりやすいのか

長寿命 runner は始めやすい一方で、時間とともに状態が蓄積します。

ephemeral runner は短いライフサイクル後に破棄されるため、次の利点があります。

Scale set は workload と trust boundary で分ける

ARC 導入時の典型的な失敗は、すべての保存庫と workload を 1 つの巨大 scale set にまとめることです。管理は単純に見えても、セキュリティ境界と優先度制御が弱くなります。

推奨される分離基準:

例:

scale set用途分離理由
public-ci外部寄稿 PR の検証untrusted code を隔離
internal-build内部 build と test制御された package と cache アクセス
deploy-opsdeployment と運用 workflow強い資格情報と承認境界が必要

セキュリティは runner 本体より周辺境界で決まる

runner セキュリティはイメージ更新だけでは足りません。重要なのは周辺の実行境界です。

特に untrusted pull request 用 runner と deploy credential を持つ runner を同じ境界に置くのは避けるべきです。

イメージ戦略は起動速度と清潔性のバランス

ephemeral runner ではイメージ設計が重要です。空に近すぎると毎回インストールコストがかかり、重すぎると pull が遅くなります。

現実的なバランス:

ネットワークとシークレットは最小権限で

ARC runner は CI workload ですが、実際にはかなり強い権限が付きやすい実行環境です。次を推奨します。

本番で見るべき指標

運用チェックリスト

よくあるアンチパターン

すべての保存庫を 1 つの runner group に入れる

一見シンプルですが、セキュリティと優先度制御が崩れます。

状態を多く残す長寿命 runner

見かけ上は速くても、drift と汚染のリスクが増えます。

deploy credential と外部 PR 検証を同じ境界で処理する

最も避けたい構成の一つです。

まとめ

ARC 運用の本質は Kubernetes 上で runner を動かす技術ではなく、どの job をどの信頼境界で動かすかという運用モデルです。ephemeral runner、分離された scale set、最小権限のネットワークと secret 戦略がその中心になります。

References

コメント

まだコメントはありません。

ログインするとコメントできます