Search the alley

記事を検索

2文字以上でタイトル・カテゴリ・タグを検索できます。

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の説明安全な確認
checkoutcontainerを作り、選択したbranchまたはcommit SHAをcheckoutする対象repo、branch、SHA、変更開始点をtaskごとに確認する
setup / maintenancesetup scriptを実行し、cached container再開時はoptional maintenance scriptも実行できる両方のscript、依存、外部取得、secret参照、生成物を先に読む
agent phaseterminal commandをloopで実行し、編集・check・validationを試みる完了メッセージではなくdiff、test、未実行範囲をレビューする
environment variablesetup scriptsとagent phaseを含むchat全体で設定される通常の環境変数にsecretを入れず、agentに見えてよい値だけを置く
secret暗号化され、task execution時に復号され、setup scriptsだけで使える。agent phase前に削除されるsecretを使うsetupの出力・副作用・依存scriptを確認し、agent用変数と混ぜない
runtime / imageuniversal imageに共通toolがあり、PythonやNodeなどのpackage versionをpinできる必要なruntime versionと追加installを記録し、再現性を優先する
cachecontainer stateを最大12時間cacheし、変更時は自動invalidateできる。Business / Enterpriseでは利用者間で共有される古い依存や他利用者の状態を前提にせず、必要ならReset cacheを選ぶ
proxyoutbound 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を確認します。