🔐
Self-Hosted runner with Github App token
短く
- self-hosted-runner 用 registration-token 発行は、Appのtokenを使う時、runner scopeが repo単位かorg単位でかなり違う
- 2024年までは
actions: read and write
が付いていれば良かったらしいが、そうではない - repo単位ならば、App の tokenでやることはほぼ無理、なぜなら
repoのadmin:read and write
が必要だから、あきらめてPATが現実解 - org単位ならば、org用の
Self-hosted runners: read and write
が設定出来るので adminみたいなクソでかい権限は不要
ちょっとだけ説明
- App自体は、個人 or Orgかどっちかに作る、仕事で使う場合、実質Orgに作るはず
- Appを上記のどっちに作るかは、今回あんまり関係無くどちらも同じ問題を抱える
- Runnerは、Orgに登録するか、Repoに登録するか
- Runner登録時に
registration-token
というAPIを叩く - このAPIは
actions
下にあるから、Appへの権限としてはactions: read and write
が必要なのは直感で分かる、が それだけだと足りない - Runnerを Repoに個別登録するには、Appが
Repo の admin: read and write
も無いとだめ、Appが個人かOrg所有かは関係無い - Runnerを Orgに登録するには Appが
Org の Self-hosted runners: read and write
も無いとだめ
結論/たぶん管理者目線
- 特定のチームが自分でSelf-hosted を立てたいと言った場合は、
PATでやれ
が第一候補 - もしくはOrg単位で Self-hosted を立ててるところが要望聞いて代わりに作ってあげる
- Runner Scopeが Repo でも Orgでも、権限範囲がデカすぎて局所権限とならない
- RepoならAdminが付いてしまうので、インストール出来る・出来ないである程度抑制は出来るが、Appアクセス出来るユーザーが権限プロモート状態になり得る
- Org単位ならば、権限譲渡はできるが、
余計なことして既存のRunnerを潰すんじゃねーぞ
とすごむ程度でいいのか?(俺は良いとは言えない)
- そのうち repo単位での
Self-hosted runners
の権限が出来ると期待したい
ちなみに俺はGithubの管理者はやったことないので、もっと別の解はあるかもしれん。PAT絶対、殺すマンにはなれなかった。
Discussion