権限とセキュリティの管理
Claude Codeの権限システム、ツールアクセス、セキュリティ保護について学びます。
Claude Codeは、パワーと安全性のバランスを取るために階層化された権限システムを使用します:
ツールタイプ | 例 | 承認が必要 | 「はい、次回から確認しない」の動作 |
---|---|---|---|
読み取り専用 | ファイル読み取り、LS、Grep | いいえ | 該当なし |
Bashコマンド | シェル実行 | はい | プロジェクトディレクトリとコマンドごとに永続的 |
ファイル変更 | ファイルの編集/書き込み | はい | セッション終了まで |
Claudeが利用可能なツール
Claude Codeは、コードベースを理解し変更するのに役立つ強力なツール群にアクセスできます:
ツール | 説明 | 必要な権限 |
---|---|---|
Agent | 複雑な複数ステップのタスクを処理するサブエージェントを実行 | いいえ |
Bash | 環境内でシェルコマンドを実行 | はい |
Glob | パターンマッチングに基づいてファイルを検索 | いいえ |
Grep | ファイル内容のパターン検索 | いいえ |
LS | ファイルとディレクトリの一覧表示 | いいえ |
Read | ファイルの内容を読み取り | いいえ |
Edit | 特定のファイルに対して的確な編集を実行 | はい |
Write | ファイルの作成または上書き | はい |
NotebookEdit | Jupyterノートブックのセルを変更 | はい |
NotebookRead | Jupyterノートブックの内容を読み取りと表示 | いいえ |
WebFetch | 指定されたURLからコンテンツを取得 | はい |
権限ルールは/allowed-tools
または権限設定で設定できます。
プロンプトインジェクションからの保護
プロンプトインジェクションは、攻撃者が悪意のあるテキストを挿入してAIアシスタントの指示を上書きまたは操作しようとする手法です。Claude Codeはこれらの攻撃に対していくつかの保護機能を備えています:
- 権限システム:機密性の高い操作には明示的な承認が必要
- コンテキスト認識分析:リクエスト全体を分析して潜在的に有害な指示を検出
- 入力サニタイズ:ユーザー入力を処理してコマンドインジェクションを防止
- コマンドブロックリスト:
curl
やwget
のようなウェブから任意のコンテンツを取得する危険なコマンドをブロック
信頼できないコンテンツを扱う際のベストプラクティス:
- 承認前にコマンドを確認
- 信頼できないコンテンツを直接Claudeにパイプしない
- 重要なファイルへの変更提案を確認
- 不審な動作は
/bug
で報告
これらの保護機能は大幅にリスクを軽減しますが、完全にすべての攻撃から免れるシステムはありません。 AIツールを使用する際は、常に適切なセキュリティプラクティスを維持してください。
ネットワークアクセスの設定
Claude Codeには以下へのアクセスが必要です:
- api.anthropic.com
- statsig.anthropic.com
- sentry.io
コンテナ化された環境でClaude Codeを使用する際は、これらのURLをホワイトリストに登録してください。
開発コンテナのリファレンス実装
Claude Codeは、一貫性のある安全な環境を必要とするチーム向けに開発コンテナ設定を提供します。この事前設定されたdevcontainer設定は、VS CodeのRemote - Containers拡張機能や同様のツールとシームレスに連携します。
コンテナの強化されたセキュリティ対策(分離とファイアウォールルール)により、無人運用のためにclaude --dangerously-skip-permissions
を実行して権限プロンプトをバイパスできます。ニーズに合わせてカスタマイズ可能なリファレンス実装を提供しています。
devcontainerは実質的な保護を提供しますが、完全にすべての攻撃から免れるシステムはありません。 常に適切なセキュリティプラクティスを維持し、Claudeの活動を監視してください。
主な機能
- 本番環境対応Node.js:必要な開発依存関係を備えたNode.js 20をベースに構築
- セキュリティバイデザイン:必要なサービスのみにネットワークアクセスを制限するカスタムファイアウォール
- 開発者フレンドリーなツール:git、生産性向上機能付きZSH、fzfなどを含む
- VS Codeとのシームレスな統合:事前設定された拡張機能と最適化された設定
- セッション永続性:コンテナの再起動間でコマンド履歴と設定を保持
- どこでも動作:macOS、Windows、Linux開発環境と互換
4ステップで始める
- VS CodeとRemote - Containers拡張機能をインストール
- Claude Codeリファレンス実装リポジトリをクローン
- VS Codeでリポジトリを開く
- プロンプトが表示されたら、「コンテナで再度開く」をクリック(またはコマンドパレット:Cmd+Shift+P →「Remote-Containers: コンテナで再度開く」を使用)
設定の内訳
devcontainerのセットアップは3つの主要コンポーネントで構成されています:
- devcontainer.json:コンテナ設定、拡張機能、ボリュームマウントを制御
- Dockerfile:コンテナイメージとインストールされるツールを定義
- init-firewall.sh:ネットワークセキュリティルールを確立
セキュリティ機能
コンテナはファイアウォール設定で多層的なセキュリティアプローチを実装しています:
- 精密なアクセス制御:ホワイトリストに登録されたドメイン(npmレジストリ、GitHub、Anthropic APIなど)のみに外部接続を制限
- デフォルト拒否ポリシー:その他のすべての外部ネットワークアクセスをブロック
- 起動時の検証:コンテナ初期化時にファイアウォールルールを検証
- 分離:メインシステムから分離された安全な開発環境を作成
カスタマイズオプション
devcontainerの設定はニーズに合わせて適応できるように設計されています:
- ワークフローに基づいてVS Code拡張機能を追加または削除
- 異なるハードウェア環境のためのリソース割り当ての変更
- ネットワークアクセス権限の調整
- シェル設定と開発ツールのカスタマイズ