AIエージェントにsetupコマンドを実行させる前の安全確認|npm install・pip install・curlを分ける
AIエージェントにnpm install、pip install、pnpm install、Docker build、curlやwgetを実行させる前に、postinstall、prepare、setup.py、外部通信、秘密情報、権限を確認する実務チェックです。
公開 2026.07.01 / 更新 2026.08.10
この記事のポイント
- installやsetupはコード実行として扱う
- postinstall、prepare、setup.py、Dockerfile、workflowを先に読む
- curl | sh や外部取得は、内容・送信先・必要性が分かるまで実行しない
setup script・maintenance script・agent phaseを別の実行段階として見る
Cloud environmentでは、依存を入れる準備段階と、agentがterminalで編集・test・検証する段階を同じshellや同じ権限として扱いません。setup scriptsは別Bash sessionで動き、そこでのexportはagent phaseへ自動的には残りません。cached containerの再開ではmaintenance scriptが動く可能性もあるため、setupだけでなくmaintenanceもコード実行としてレビューします。
| 段階・設定 | 公式Docsの説明 | 安全な確認 |
|---|---|---|
| checkout | containerを作り、選択したbranchまたはcommit SHAをcheckoutする | 対象repo、branch、SHA、変更開始点をtaskごとに確認する |
| setup / maintenance | setup scriptを実行し、cached container再開時はoptional maintenance scriptも実行できる | 両方のscript、依存、外部取得、secret参照、生成物を先に読む |
| agent phase | terminal commandをloopで実行し、編集・check・validationを試みる | 完了メッセージではなくdiff、test、未実行範囲をレビューする |
| environment variable | setup scriptsとagent phaseを含むchat全体で設定される | 通常の環境変数にsecretを入れず、agentに見えてよい値だけを置く |
| secret | 暗号化され、task execution時に復号され、setup scriptsだけで使える。agent phase前に削除される | secretを使うsetupの出力・副作用・依存scriptを確認し、agent用変数と混ぜない |
| runtime / image | universal imageに共通toolがあり、PythonやNodeなどのpackage versionをpinできる | 必要なruntime versionと追加installを記録し、再現性を優先する |
| cache | container stateを最大12時間cacheし、変更時は自動invalidateできる。Business / Enterpriseでは利用者間で共有される | 古い依存や他利用者の状態を前提にせず、必要ならReset cacheを選ぶ |
| proxy | outbound internet trafficはHTTP/HTTPS network proxyを通る | proxyをnetwork停止の代替と誤解せず、送信先・method・ログを別に確認する |
Cloud environmentを使う前の停止条件
- taskが読むrepo、branch、commit SHA、変更範囲を固定し、default branchのcached stateをそのまま信頼しない。
- setup scriptとmaintenance scriptを別々に読み、install hook、外部取得、shell command、生成ファイル、secret参照を確認する。
- 通常のenvironment variableはchat全体でagentから見える前提にし、secretを使う場合もsetupの実行結果や依存scriptへ流出しないか確認する。
- setup scriptのexportがagent phaseへ残ると仮定せず、永続化が必要な非秘密設定だけをenvironment settingsや`~/.bashrc`へ置く。
- universal imageとpinned runtimeを確認し、setupで追加するpackage・version・license・脆弱性を記録する。
- 最大12時間のcontainer cache、maintenance script、cache invalidate条件を作業手順へ書き、互換性が崩れたらReset cacheで止める。
- Business / Enterpriseのshared cacheでは利用者間の境界を過信せず、個人の認証状態や秘密をcache・dotfile・生成物へ残さない。
- proxy、agent internet access、setup networkを別々に確認し、proxyがあることだけで外部送信・依存取得・prompt injectionのリスクが消えたと判断しない。
Codex cloud environmentsのFAQ
Codex cloudのsecretはagent phaseでも使えますか?
公式Docsでは、secretはsetup scriptsだけで使え、securityのためagent phase開始前に削除されると説明されています。ただし、setupで実行される依存scriptやログに秘密が残らないかは別に確認します。
setup scriptでexportすればagentにも環境変数が残りますか?
残るとは扱いません。setup scriptsはagentと別Bash sessionで動くため、exportはagent phaseへ自動的にpersistしません。必要な非秘密設定はenvironment settingsや`~/.bashrc`で明示します。
cacheがあるので前回の環境をそのまま信頼できますか?
信頼しません。最大12時間のcacheではsetup・maintenance・branch・依存状態が作業の前提になります。script、environment variable、secretの変更や互換性問題ではinvalidateまたはReset cacheを確認します。