CLAUDE LABEN
SLACK — Claude TagがSlackでベータ提供。チャンネルで@Claudeにタスクを委譲し、ツール・データ・コードベースを接続できますSECURITY — Claude Codeにsandbox.credentials設定が追加。認証ファイルや秘密の環境変数の読み取りをブロックできますFIX — リモートMCPツール呼び出しの5分ハングを修正。応答なしで止まらずエラーで中断しますMCP — 組織向けMCPコネクタがOktaプロビジョニングに対応。初回ログインでゼロタッチ接続できますMODEL — Claude Fable 5は100万トークン文脈・常時アダプティブ思考・128K出力を備えますLINEUP — 主力はOpus 4.8・Sonnet 4.6・Haiku 4.5。用途に応じて使い分けられますSLACK — Claude TagがSlackでベータ提供。チャンネルで@Claudeにタスクを委譲し、ツール・データ・コードベースを接続できますSECURITY — Claude Codeにsandbox.credentials設定が追加。認証ファイルや秘密の環境変数の読み取りをブロックできますFIX — リモートMCPツール呼び出しの5分ハングを修正。応答なしで止まらずエラーで中断しますMCP — 組織向けMCPコネクタがOktaプロビジョニングに対応。初回ログインでゼロタッチ接続できますMODEL — Claude Fable 5は100万トークン文脈・常時アダプティブ思考・128K出力を備えますLINEUP — 主力はOpus 4.8・Sonnet 4.6・Haiku 4.5。用途に応じて使い分けられます
記事一覧/Claude Code
Claude Code/2026-06-25上級

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

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

claude-code121sandbox2security7credentialsautomation42secrets2

プレミアム記事

毎日決まった時刻に 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-06-18
Claude Code に /cd が来た — キャッシュを温存したまま複数リポジトリを横断する運用設計
Claude Code に追加された /cd で作業ディレクトリを移すと、プロンプトキャッシュを作り直さずにセッションを別リポジトリへ運べます。複数リポジトリを順に処理する運用での設計判断と落とし穴をまとめました。
Claude Code2026-06-18
無人で動くエージェントに渡すMCPツールを絞り込む — ポリシー強制で権限を deny-by-default にする
無人実行のClaude Codeエージェントは、許可ダイアログに頼れないぶんツールの届く範囲がそのまま事故の範囲になります。MCPサーバーとツールを deny-by-default で締め、必要なものだけを許可リストで渡す構成を実例つきでまとめました。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →