ITSUKI.
技術710 文字2 分

Day 14|Sandbox — 許可を、実際の制約に変える

#Codex#ソースコードリーディング#図解

この章しょうの答こたえ

権限けんげんの設定せっていを、実行環境じっこうかんきょうが強制きょうせいできる制約せいやくへ変換へんかんする。

「この操作そうさを認みとめる」という判断はんだんだけでは、プロセスが触ふれられる範囲はんいは決きまりません。Sandbox では、ファイルやネットワークへのアクセス条件じょうけんが、どのように実行環境じっこうかんきょうへ渡わたされるかを見みます。

01|図でつかむ

図14|Sandbox

Approval は実行じっこう判断はんだん、Sandbox は実行じっこう範囲はんい。両者りょうしゃの役割やくわりを分わける。

02|3つのポイントで理解する

1. 設定を具体的な許可範囲にする

PermissionProfile やファイルシステムの方針ほうしんから、どこを読よめるか・書かけるかなどを追おいます。プロジェクトのパスだけでなく、例外れいがいや保護ほご対象たいしょうも確認かくにんします。

2. 実行環境ごとの実装を見る

SandboxManager などの選択せんたく処理しょりから、OS や実行方式じっこうほうしきに対応たいおうする実装じっそうへ進すすみます。設定せってい名めいが同おなじでも、内部ないぶで使つかう仕組しくみまで同おなじとは限かぎりません。

3. 失敗の理由を切り分ける

コマンド自身じしんのエラー、承認しょうにんの拒否きょひ、環境かんきょうによるアクセス拒否きょひを区別くべつします。Sandbox が無効むこうな環境かんきょうもあるため、実際じっさいに選えらばれた設定せっていを前提ぜんていに判断はんだんします。

03|ソースで確かめる

以下いかの検索けんさくは Codex リポジトリのルートで実行じっこうします。最初さいしょに対象たいしょう commit を記録きろくし、検索結果けんさくけっかから定義ていぎと呼び出よびだし元もとを一ひとつずつ開ひらいてください。

git rev-parse --short HEAD
rg -n "SandboxManager|SandboxType" codex-rs

読よむ入口いりぐち: codex-rs/sandboxing/src/manager.rs 。リンク先さきは照合しょうごうに使つかった固定こてい commit のファイルです。手元てもとの版はんと異ことなる場合ばあいは、上うえの検索語けんさくごから探さがし直なおします。

小さく試す

権限けんげん設定せっていから Sandbox の選択せんたくまでを追おい、ファイルアクセスの制約せいやくがどこで渡わたされるかを探さがします。

04|30秒で復習

  • 承認しょうにんとアクセス制約せいやくは別べつの役割やくわり。
  • 設定せっていは実行環境じっこうかんきょうに合あう形かたちへ変換へんかんされる。
  • 失敗しっぱい原因げんいんを判断はんだん・環境かんきょう・コマンドに分わける。

全ぜん30章しょうの目次もくじへ