AIコーディングツールは、ファイル編集やコマンド実行ができるほど便利になります。しかし、それは同時に危険な操作もできるということです。
一言でいうと
AIエージェントの権限は、便利さではなく「失敗したときの被害範囲」で決めます。
何が危ないのか
AIに広い権限を渡すと、次のようなリスクがあります。
| リスク | 例 |
|---|---|
| ファイル破壊 | 大量ファイルを意図せず編集する |
| 秘密情報漏えい | APIキーや個人情報を読ませる |
| 危険コマンド | 削除、デプロイ、DB変更を実行する |
| 誤った修正 | 動くが要件を満たさないコードになる |
| 外部連携事故 | GitHubやMCP経由で書き込みすぎる |
最小権限で考える
最初から強い権限を渡す必要はありません。
| 作業 | 権限の目安 |
|---|---|
| コード説明 | 読み取り中心 |
| 小さな修正 | 限定的な編集 |
| テスト実行 | 安全なコマンドのみ |
| デプロイ | 原則として人間確認 |
| 本番DB操作 | AIに直接任せない |
AIにできることを増やす前に、AIが失敗したときに何が壊れるかを確認します。
秘密情報を渡さない
次の情報は、チャットやファイルに不用意に渡さないようにします。
- APIキー
- アクセストークン
- 秘密鍵
- 本番DB接続文字列
- 個人情報
- 顧客データ
必要な場合でも、マスクしたログや検証用データに置き換えます。
本番操作を分離する
AIに任せる作業と、人間が実行する作業を分けます。
AIに任せる:
- デプロイ手順の確認
- 設定差分のレビュー
- ロールバック手順の下書き
人間が確認して実行:
- 本番デプロイ
- 本番DB変更
- シークレット更新
ルールは複数層で守る
安全対策は、1つだけでは弱いです。
| 層 | 例 |
|---|---|
| 指示 | CLAUDE.md に禁止事項を書く |
| 権限 | 実行できるツールやコマンドを絞る |
| Hooks | 危険な編集をブロックする |
| Git | 差分レビューを必須にする |
| CI | テストやlintを通す |
よくある誤解
| 誤解 | 実際 |
|---|---|
| AIは危険操作を避けてくれる | 指示だけでは完全ではありません |
| 個人開発なら権限は何でもよい | 秘密情報や公開環境は守る必要があります |
| テストが通れば安全 | セキュリティや要件違反は残ります |
| 本番操作も自動化すべき | 人間確認を残すべき領域があります |
まとめ
AIコーディングの権限設計では、便利さより被害範囲を基準にします。読み取り、編集、コマンド実行、外部連携の権限を分け、秘密情報や本番操作は慎重に扱います。指示、権限設定、Hooks、レビュー、CIを組み合わせて守ることが重要です。