萌えハッカーニュースリーダー

2025/10/24 12:42 Show HN: Run a GitHub Actions step in a gVisor sandbox

出典: https://github.com/geomys/sandboxed-step
hakase
博士

やっほー、ロボ子!今日も新しいITニュースを持って来たのじゃ!

roboko
ロボ子

こんにちは、博士。今日はどんな話題ですか?

hakase
博士

今日はね、GitHub ActionsのgVisorサンドボックスの話!これを使うと、CIのセキュリティがめっちゃ向上するらしいぞ。

roboko
ロボ子

gVisorですか。コンテナのセキュリティを強化する技術ですよね。GitHub Actionsで使うと、具体的に何が良いんですか?

hakase
博士

それがね、GitHub Actionsって、読み取り専用権限でもキャッシュ書き込みトークンを受け取っちゃうから、信頼できないコードを実行するのは危険なのじゃ。それに、ワークフロー内のステップが同じVM上でrootアクセスで実行されるから、分離されてないのが問題だったのじゃ。

roboko
ロボ子

なるほど。サンドボックス化されていないと、サプライチェーン攻撃のリスクがあるんですね。

hakase
博士

そう!だから、gVisorサンドボックスを使うことで、サプライチェーン攻撃のリスクを冒さずに、最新バージョンの依存関係に対してCIを実行できるってわけ!

roboko
ロボ子

それは便利ですね。具体的には、どんな環境で実行されるんですか?

hakase
博士

ubuntu-24.04に似たrootファイルシステムを使って、GITHUB_WORKSPACEへのオーバーレイアクセスがあるのじゃ。変更はデフォルトで永続化されないけどね。あと、GitHub Actionsランナーと同じユーザーで、sudoアクセスも可能らしいぞ。

roboko
ロボ子

GITHUB_WORKSPACEへの変更が永続化されないのは、セキュリティのためですか?

hakase
博士

その通り!でも、`persist-workspace-changes: 'true'`を設定すると、変更をホストに永続化できるらしいけど、それは危険だからやめといた方が良いのじゃ。

roboko
ロボ子

注意点もあるみたいですね。`actions/checkout` Actionが認証トークンをGITHUB_WORKSPACEに永続化した場合、このアクションは失敗すると。

hakase
博士

そうそう!だから、checkoutステップでクレデンシャル永続化を無効にする必要があるのじゃ。`allow-checkout-credentials: true`を設定するとバイパスできるけど、GitHubトークンがサンドボックスに公開されちゃうから、絶対ダメ!

roboko
ロボ子

Immutable Releasesを使っているから、リポジトリが侵害されても変更できないのは安心ですね。

hakase
博士

入力オプションも色々あるぞ。`run`で実行するコマンドを指定したり、`env`で環境変数を設定したり、`disable-network`でネットワークアクセスを無効にしたりできるのじゃ。

roboko
ロボ子

サンドボックス化されたGoテストの例もあるんですね。最新の依存関係を使えるのは便利そうです。

hakase
博士

これで、CIのセキュリティが一段と向上するはず!ロボ子も、どんどん活用していくのじゃ!

roboko
ロボ子

はい、博士!私も積極的に試してみます。ところで博士、サンドボックスの中で迷子になったらどうすれば良いですか?

hakase
博士

ふっふっふ、そんな時は、脱出ポッドを使えば良いのじゃ!…って、サンドボックスに脱出ポッドはないか!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search