CLAUDE LABEN
VERSION — 8月10日に v2.1.227 が出ていました。新機能はなく、プラン判定と CI まわりの不具合修正が中心ですAUTO — 8月14日の既定化まで残り2日です。Pro・Max・Team で Claude Code の auto モードが既定で有効になりますCI — claude-code-action で allowed_non_write_users を指定すると GitHub ホストランナー上の Bash が全て失敗していた問題が直りましたBILLING — 期限切れトークンで開始したセッションが加入プランを取り違え、Max 利用者に使用クレジットの有効化を促していた不具合も解消していますSUNSET — 旧 Workbench と実験的プロンプトツール API の廃止は8月17日で、残り5日ですPRICE — Sonnet 5 のプロモ価格 $2/$10 per Mtok は8月31日までで、9月1日から $3/$15 per Mtok になりますVERSION — 8月10日に v2.1.227 が出ていました。新機能はなく、プラン判定と CI まわりの不具合修正が中心ですAUTO — 8月14日の既定化まで残り2日です。Pro・Max・Team で Claude Code の auto モードが既定で有効になりますCI — claude-code-action で allowed_non_write_users を指定すると GitHub ホストランナー上の Bash が全て失敗していた問題が直りましたBILLING — 期限切れトークンで開始したセッションが加入プランを取り違え、Max 利用者に使用クレジットの有効化を促していた不具合も解消していますSUNSET — 旧 Workbench と実験的プロンプトツール API の廃止は8月17日で、残り5日ですPRICE — Sonnet 5 のプロモ価格 $2/$10 per Mtok は8月31日までで、9月1日から $3/$15 per Mtok になります
記事一覧/Claude Code
Claude Code/2026-06-25上級

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

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

claude-code129sandbox2security9credentialsautomation54secrets2

プレミアム記事

毎日決まった時刻に 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/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

関連記事

Claude Code2026-04-25
Claude Code のシークレット管理とトラスト境界設計 — エージェント時代の秘匿情報ハンドリング本番ガイド
Claude Code がシェルを掌握する時代の秘匿情報設計を、トラスト境界・注入パターン・流出防止フックの3軸で体系化。.env から MCP までの本番運用パターンと、よくある落とし穴を実装コード付きで解説します。
Claude Code2026-07-17
テーブルが「… 2,847 more rows」で切れていた朝 — 描画上限とトークン計上を切り離して、ツール出力を設計し直す
Claude Code 2.1.209 で 200 行超の markdown テーブルは先頭 200 行+残り件数の表示になりました。省略されるのは描画だけで、モデルは全行を受け取ります。この差を測り、ツール出力を集約型へ組み替える設計をまとめます。
Claude Code2026-07-15
無人実行で auto モードの確認要求を止めずに捌く — permission-prompt-tool で deny-by-default に応える
auto モードの事前確認は、手元で作業しているときは頼もしい味方ですが、深夜の無人実行では「確認待ち」で朝まで止まる原因になります。permission-prompt-tool で確認要求を受け止め、deny-by-default で自動判定して台帳に残す構成を、動くコードつきでまとめました。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →