Claudeへの権限
Claudeはファイルの読み書き、コマンドの実行、外部サービスへの操作を、許可された範囲で実行します。どこまで許可するかは、操作が取り消せるかどうかで判断します。
取り消せる操作と取り消せない操作
コードの編集やcommitは、履歴が残るため戻せます。一方で、実行した時点で外部へ影響が出る操作は戻せません。メール送信、SNSへの投稿、外部APIへの書き込みは、送った事実を消せません。リポジトリのpublic化は、複製が残るため取り消せません(リポジトリの公開範囲)。データベースの削除や誤ったmigration(データベース構造の変更手順。構造の観点)は、バックアップがなければ戻せません。force push(履歴の強制上書き)は、他の人やAIの作業を巻き戻してしまいます。
弊社では、この種の操作の前に確認を求める設定から始めることを基本にしています。すべてを自動実行する設定は開発速度を上げますが、上の操作が確認なしで実行されることと引き換えです。
実行前に説明してもらう
曖昧な依頼のまま強い権限を渡すと、Claudeがどこまでを依頼に含めるか予測できません。取り消せない操作の前には、対象と影響を説明してもらってから承認します。
このコマンドを実行すると何が起きる?元に戻せる?
削除対象の一覧を先に見せて
プログラムの実行は、自分の権限を渡すこと
ブラウザの中で動くWebページのコードは、砂場(sandbox)に閉じ込められていて、あなたのファイルには触れません。一方、Node.jsやBunのような実行環境で動かすプログラムに、この壁はありません。ファイルの読み書き、パソコンの操作、HTTP通信のAPIが標準で備わっており、実行した人ができることは何でもできます。
つまり悪意のあるプログラムを一度実行すると、書類や写真の読み取り、.envやSSH鍵といった秘密情報の収集(トークン・APIキー)、集めたものをHTTP通信で外部へ送ること、ファイルの削除や改変まで、技術的にはすべて可能です。実行した瞬間に起きるため、後から気づいても手遅れです。
だから、確認の順序は「どんな機能か」より先に「誰が配っているか」です。野良のSkill、出所不明のMCPサーバー、SNSで流れてきた便利なツールをそのまま実行しない理由はこれです。ライブラリはインストールしただけで付属の処理が実行されることがあるため、インストールも実行に含めて考えます(依存関係)。
このツールを実行する前にコードを読んで、ファイルアクセスと外部通信が何をしているか説明して
Skill・MCPサーバー・拡張機能
Claudeの手足を増やすMCPサーバーや拡張機能は、有効にした時点でファイルへのアクセスや外部通信の範囲が広がります。提供元、アクセスする範囲、通信先を確認してから有効にします。Skill(Claudeに読み込ませる手順書)はそれ自体が権限を持つわけではありませんが、同じ注意が必要です。
理由は、Claudeが読み込んだ文章の中の指示に影響されることがあるためです(prompt injection)。信頼できない配布元のSkillやMCPサーバーは、便利な機能の形をした命令文をClaudeへ渡す経路になり得ます。WebページやPDFをClaudeに読んでもらう場合も、その内容が指示として作用し得ることは知っておきます。
このMCPサーバーを追加する前に、提供元と、何にアクセスしてどこへ通信するか説明して
権限を広げる順序
作り始めは確認を求める設定のまま進めます。同じリポジトリで運用が安定し、実行される操作が予測できるようになってから、繰り返す定型操作に限って自動実行を許可します。逆の順序、つまり最初に全自動にして事故が起きてから絞る運用は、最初の事故を防げません。