リファレンスdevcontainerセットアップと関連するDockerfileは、そのまま使用することも、ニーズに合わせてカスタマイズすることもできる事前設定済みの開発コンテナを提供します。このdevcontainerは、Visual Studio CodeのDev Containers拡張機能および類似のツールと連携します。

コンテナの強化されたセキュリティ対策(分離とファイアウォールルール)により、claude --dangerously-skip-permissionsを実行して、無人操作での権限プロンプトをバイパスできます。

devcontainerは実質的な保護を提供しますが、すべての攻撃に対して完全に免疫のあるシステムは存在しません。 --dangerously-skip-permissionsで実行された場合、devcontainerは悪意のあるプロジェクトがClaude Codeの認証情報を含むdevcontainer内でアクセス可能なものを流出させることを防ぐことはできません。 信頼できるリポジトリで開発する場合にのみdevcontainerを使用することをお勧めします。 常に適切なセキュリティプラクティスを維持し、Claudeの活動を監視してください。

主な機能

  • 本番対応のNode.js: 必須の開発依存関係を含むNode.js 20上に構築
  • 設計によるセキュリティ: 必要なサービスのみへのネットワークアクセスを制限するカスタムファイアウォール
  • 開発者フレンドリーなツール: git、生産性向上機能付きZSH、fzfなどを含む
  • シームレスなVS Code統合: 事前設定された拡張機能と最適化された設定
  • セッション永続化: コンテナの再起動間でコマンド履歴と設定を保持
  • どこでも動作: macOS、Windows、Linuxの開発環境と互換性

4ステップで始める

  1. VS CodeとRemote - Containers拡張機能をインストール
  2. Claude Codeリファレンス実装リポジトリをクローン
  3. VS Codeでリポジトリを開く
  4. プロンプトが表示されたら、「Reopen in Container」をクリック(またはコマンドパレットを使用:Cmd+Shift+P → “Remote-Containers: Reopen in Container”)

設定の詳細

devcontainerセットアップは3つの主要コンポーネントで構成されています:

  • devcontainer.json: コンテナ設定、拡張機能、ボリュームマウントを制御
  • Dockerfile: コンテナイメージとインストールされたツールを定義
  • init-firewall.sh: ネットワークセキュリティルールを確立

セキュリティ機能

コンテナは、ファイアウォール設定による多層セキュリティアプローチを実装しています:

  • 精密なアクセス制御: ホワイトリストに登録されたドメインのみへのアウトバウンド接続を制限(npmレジストリ、GitHub、Anthropic APIなど)
  • 許可されたアウトバウンド接続: ファイアウォールはアウトバウンドDNSおよびSSH接続を許可
  • デフォルト拒否ポリシー: その他すべての外部ネットワークアクセスをブロック
  • 起動時検証: コンテナ初期化時にファイアウォールルールを検証
  • 分離: メインシステムから分離された安全な開発環境を作成

カスタマイゼーションオプション

devcontainer設定は、ニーズに適応できるよう設計されています:

  • ワークフローに基づいてVS Code拡張機能を追加または削除
  • 異なるハードウェア環境に対するリソース割り当ての変更
  • ネットワークアクセス権限の調整
  • シェル設定と開発者ツールのカスタマイズ

使用例

安全なクライアント作業

devcontainerを使用して異なるクライアントプロジェクトを分離し、環境間でコードと認証情報が混在しないようにします。

チームオンボーディング

新しいチームメンバーは、必要なすべてのツールと設定が事前インストールされた完全に設定された開発環境を数分で取得できます。

一貫したCI/CD環境

CI/CDパイプラインでdevcontainer設定をミラーリングして、開発環境と本番環境が一致することを確保します。

関連リソース