◉CLAUDE LABEN
●2.1.293 — v2.1.293 で Claude Haiku 5.5 が既定の Haiku モデルに(1M コンテキスト)●SONNET 4.5 — Claude API での提供終了は 11/30、残り53日。移行先は Sonnet 5.5●API CACHE — Sonnet 5.5 のキャッシュ読み取りが $0.10/Mtok に値下げ(10/07)●Q&A — 毎回読み込む指示ファイルが肥大化したとき、何から削るかという問いが出ています●HAIKU 5.5 — Haiku 4.5 向けコードは budget_tokens が 400 エラーになる点に注意●NEW — Pro を払ったのに無料のまま。買った場所で見る画面が変わります●2.1.293 — v2.1.293 で Claude Haiku 5.5 が既定の Haiku モデルに(1M コンテキスト)●SONNET 4.5 — Claude API での提供終了は 11/30、残り53日。移行先は Sonnet 5.5●API CACHE — Sonnet 5.5 のキャッシュ読み取りが $0.10/Mtok に値下げ(10/07)●Q&A — 毎回読み込む指示ファイルが肥大化したとき、何から削るかという問いが出ています●HAIKU 5.5 — Haiku 4.5 向けコードは budget_tokens が 400 エラーになる点に注意●NEW — Pro を払ったのに無料のまま。買った場所で見る画面が変わります
記事一覧/Claude Code
⟐ Claude Code/2026-06-25上級

サンドボックスはコードを動かせても、認証ファイルは読ませない — Claude Code の sandbox.credentials で秘密の露出面を絞る

Claude Code のサンドボックスは既定で ~/.aws/credentials やトークン環境変数を読めてしまいます。v2.1.187 で入った sandbox.credentials を使い、無人運用の秘密の露出面をOS強制で絞る設定と検証手順を実装込みで整理します。

claude-code132sandboxsecurity10credentialsautomation55secrets

✦ プレミアム記事

毎日決まった時刻に Claude Code を無人で走らせて、ビルドとテストをサンドボックス内で回しています。ある日ふと、サンドボックスの読み取り範囲を /sandbox の Config タブで眺めていて、手が止まりました。書き込みは作業ディレクトリと一時領域に絞られているのに、読み取りはマシン全体に開いたままで、その中に ~/.aws/credentials も ~/.ssh/ も含まれていたのです。エージェントが流し込む npm test の子プロセスが、原理的にはこれらを読めてしまう状態でした。

サンドボックスは「コードを安全に動かす」ための仕組みだと素朴に思い込んでいたのですが、既定の読み取りポリシーは想像よりずっと広いものでした。v2.1.187 で追加された sandbox.credentials を使って、この読み取りの露出面をOS強制レベルで絞った実作業を、個人開発で複数サイトを無人運用している私自身の経験として共有します。何が止まって何が止まらないのかを正確に押さえないと、安心したつもりで穴を残すので、その線引きを中心に書きます。

既定の読み取りはなぜマシン全体に開いているのか

サンドボックスの既定の振る舞いは、書き込みと読み取りで非対称です。書き込みは作業ディレクトリとそのサブディレクトリ、それに $TMPDIR が指すセッション一時領域だけに絞られます。一方、読み取りは一部の拒否ディレクトリを除いて「マシン全体」に開いています。

この非対称には理由があります。ビルドやテストは、ホームディレクトリ下のツールキャッシュ、システムの共有ライブラリ、グローバルな設定ファイルなど、作業ディレクトリの外を読めないと動かないことが多いからです。読み取りを作業ディレクトリだけに絞ると、ほとんどのツールチェーンが壊れます。だから既定は読み取りを広く開け、書き込みだけを厳しく閉じる設計になっています。

問題は、その「広く開いた読み取り」の中に認証情報が含まれている点です。公式ドキュメントも明記していますが、既定の読み取りポリシーは ~/.aws/credentials や ~/.ssh/ の読み取りを依然として許します。無人で回すパイプラインでは、ここが地味に効いてきます。エージェントが生成・実行するコマンドは毎回同じとは限らず、何らかの拍子に認証ファイルを読むコマンドが流れたとき、サンドボックス自体はそれを止めません。

sandbox.credentials が止めるもの、止めないもの

sandbox.credentials は、サンドボックス内のコマンドがアクセスしてはいけない認証ファイルと環境変数を宣言する設定です。動きは2系統に分かれます。

ひとつは files。ここに挙げたパスは、サンドボックス内での読み取りが拒否されます。これは filesystem.denyRead がかけるのと同じ読み取りブロックです。もうひとつは envVars。ここに挙げた環境変数は、サンドボックス化された各コマンドの実行前に unset されます。認証ファイルの読み取り拒否と、秘密の環境変数の除去を、ひとつの credentials ブロックにまとめて書けるのが要点です。

逆に、止まらないものを正確に把握しておく必要があります。次の表は、sandbox.credentials の効果範囲を整理したものです。

対象sandbox.credentials の効果
サンドボックス化された Bash コマンドとその子プロセスfiles は読み取り拒否、envVars は実行前に unset
Read / Edit / Write の組み込みファイルツール対象外(サンドボックスではなく権限システムで制御)
MCP サーバー経由のアクセス対象外
ネットワーク経由の流出対象外(ドメイン許可リストとプロキシで別途制御)
サンドボックスを無効化して動くコマンド対象外(通常の権限フローに従う)

つまり sandbox.credentials は「サンドボックス化された Bash の読み取り経路」だけを塞ぐ部品です。組み込みの Read ツールで認証ファイルを開かれることや、許可した広いドメインへ中身を送られることは、別のレイヤーで守る必要があります。ここを混同すると、片側だけ閉じて安心してしまう、というのが無人運用でハマりやすい落とし穴です。本番運用では、この線引きを取り違えると検知も難しくなります。私の場合は、まず「サンドボックスのBash読み取り」という一枚だけを sandbox.credentials で固める、と役割を割り切って考えています。秘匿情報のハンドリングを通しで設計したい場合は、トラスト境界の切り分けを扱ったClaude Code のシークレット管理とトラスト境界設計も併せて読むと、sandbox.credentials がどのレイヤーの部品なのかが立体的に見えてきます。

✦

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
✦サンドボックスの既定読み取りがマシン全体に開いていて認証ファイルまで見える、という見落としを構造から理解できる
✦files の denyRead と envVars の unset を分けて書く sandbox.credentials の Before/After 設定をそのまま流用できる
✦設定が効いているかをサンドボックス内で確かめる検証コマンドと、回帰を見張る最小の番人を持ち帰れる
Stripe による安全な決済 · いつでもキャンセル可能
✦

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Claude Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • ✦コピー&ペーストで使える実装コード付き
  • ✦毎日新しい上級ガイドを追加
  • ✦¥580/月 または ¥2,480 の永久アクセス
メンバーシップを見る →

関連記事

⟐ Claude Code2026-08-28
名前に混ざった見えない文字を、プラグインを入れる前に洗い出す小さなスクリプト
プラグインやスキルの名前に不可視文字や制御文字が混ざっていても、ターミナルの一覧では見分けがつきません。実際に6つの紛らわしい名前を並べて ls の出力を比べ、導入前に走らせる点検スクリプトと、その点検が拾えない範囲までを整理しました。
⟐ Claude Code2026-04-30
Claude Code Skills を組み合わせる設計術 — 単一スキルでは届かない自動化を作る
Claude Code の Skills を1つずつ作るところから一歩進み、複数スキルを連携させて自動化を組む設計手法をお伝えします。Pipeline・条件分岐・メタスキルの3パターンとよくある落とし穴を実装例付きで詳述します。
⟐ Claude Code2026-03-28
Claude Code × Playwright で E2E テストを本番運用に乗せる — 落とし穴と導入の判断基準
Claude Code と Playwright を組み合わせて E2E テストを本番運用するための実装パターンと、導入効果の測り方。Cloudflare Workers/Pages preview deployment 下での落とし穴と、個人開発者がテストを導入する判断基準まで踏み込んで解説します。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます