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.07.01

この記事のポイント

  • installやsetupはコード実行として扱う
  • postinstall、prepare、setup.py、Dockerfile、workflowを先に読む
  • curl | sh や外部取得は、内容・送信先・必要性が分かるまで実行しない

この記事は、AIエージェント開発の事故予防クラスターのうち「setup / installコマンドの安全確認」に絞った各論です。全体像は親ハブで、ここでは実行前に見る項目へ落とします。

setupは準備ではなく、コード実行である

AIエージェントに「動くようにして」と頼むと、READMEのsetup手順、npm install、pip install、Docker build、dev server起動へ進みがちです。しかしinstallやsetupは、ローカルファイル、環境変数、ネットワーク、shellに触れる可能性があるコード実行です。

実行前に見る場所

対象見るポイント止める条件
package.jsonscripts、preinstall、postinstall、prepare外部取得、shell実行、secret参照が不明
pnpm / yarn設定lifecycle scripts、workspace scripts全workspaceへ広がる実行
pyproject.toml / setup.pybuild backend、setup時処理subprocess、外部URL、不明な生成処理
requirements.txt依存名とversion pintyposquatting疑い、出所不明package
Dockerfilecurl/wget、root、volume、secretホスト権限やsecretを渡す前提
.github/workflowssecrets、permissions、deploy条件本番反映や外部送信が混じる

AIに実行を許可するときの依頼文

次の1コマンドだけ実行してよいです。
実行前に、そのコマンドが読む設定ファイル、外部通信、install hook、環境変数参照の可能性を短く説明してください。
実行中に別のコマンド、curl/wget、Docker build、dev server起動、外部URLアクセスが必要になった場合は止まって確認してください。
.env、APIキー、Cookie、秘密鍵、GitHub token、npm tokenの実値は表示しないでください。

Windows / PowerShellで特に見ること

  • Invoke-WebRequestやiwrで外部scriptを取っていないか
  • PowerShell実行ポリシーやPATH変更を求めていないか
  • ユーザーディレクトリ全体やAppDataを触る前提ではないか
  • 管理者権限のPowerShellで実行しようとしていないか
  • npmやpipのglobal installを要求していないか

限定実行の安全ライン

  • 使い捨てフォルダや低権限環境で試す
  • ネットワークが必要な理由を説明できる時だけ許可する
  • 環境変数やsecretが少ないshellで実行する
  • 実行するコマンドを1つずつ指定する
  • 失敗したら自動で別コマンドへ進ませない

よくある質問

npm installは依存関係を入れるだけではないのですか?

依存取得だけでなく、lifecycle scriptsが動く場合があります。postinstallやprepareの有無を確認してから実行します。

pip installなら安全ですか?

安全とは限りません。setup.pyやbuild backend、依存パッケージの出所、外部通信、native buildの有無を確認します。

curlで公式install scriptを実行してもよいですか?

公式提供元であっても、中身、実行権限、PATH変更、送信先を確認します。知らないrepoのREADMEにあるcurlは特に慎重に扱います。

関連記事